Rechercher : dans
Par :

[PHP/MYSQL] Recherche sur une base de donnée

Dernière réponse le 8 fév 2008 à 09:04:50 ekudarius, le 3 fév 2008 à 15:48:13 
 Signaler ce message aux modérateurs

Bonjour,

Je m'explique je compte créer une page html avec formulaire ou je rentrerait des champs qui pas la page php enregistrera les données dans la base de donnée.

Lorsqu'une personnes viendra sur une autres page html ou il aura un champ pour entrer un texte alors la pge php prendra la donnée rentré puis la compara avec celle dans la base de donnée puis affichera toute les infos atribué à ce texte.

J'avou c'est flou mais bon ^^

Donc le problème est que je ne sais pas comment effectuer la recherche :(

Pour plus d'info demandé

merci d'avance

Configuration: Windows XP
Internet Explorer 7.0

1

ilan27, le 3 fév 2008 à 16:27:42

Bonjour,
Je te propose un rapide algorithme:
_Ouvre ta bdd,
_Selection en Sql pour les champs qui ressemblent au texte entré (je ne sais pas si c'est bien ça que tu souhaites faire):
$req=mysql_query("SELECT * FROM matable WHERE lechamp_quetuveux_ex:texte, info... LIKE ('".$variable_qui_contient_letexte_entré."')");
$res=mysql_fetch_array($req);
_Afficher les résultats

C'est ce que tu voulais?

Répondre à ilan27

2

ekudarius, le 3 fév 2008 à 16:34:46

Oué c'est sa mais si tu pourait détailler un peu plus ;)

Sinon voila ce que je veu un peu plus détaillé ^^

Une page admin avec 3 champs de formulaire.
Je rentre un nom, un numéro et un url.

Ensuite un utilisateur viens sur mon site et tombe sur une page avec un champs de formulaire seulement.
Il tape un nom et donc on compare se nom avec se rentré dans la base de doné.
Si il est présent dans la bdd alors on affiche les 3 champs à l'utilisateur.

Peut ètre plus précis ? :P

Répondre à ekudarius

3

ilan27, le 3 fév 2008 à 16:43:35

Ok, c'est une recherche sur la bdd quoi.

mysql_connect("","","");
mysql_select_db("");
//Tu mets tes "coordonnées"

$req=mysql_query("SELECT * FROM matable WHERE nom LIKE ('".$_POST['nom']."')");
while($res=mysql_fetch_array($req)){
echo $res['nom']." - ".$res['numero']." - ".$res['url']."<br>";
}

Dis-moi si ça marche

Répondre à ilan27

4

ekudarius, le 3 fév 2008 à 16:46:56

Ok mais je peu pas tester de suite donc ce soir ou demain soir ;)

merci ^^

Répondre à ekudarius

5

ekudarius, le 3 fév 2008 à 20:08:25
  • +2

Petit problème :

Parse error: syntax error, unexpected $end in *********/recherche.php on line 37

line 37 : </html>

je vois pas :(

Répondre à ekudarius

6

Alain_42, le 4 fév 2008 à 10:31:51

Il te manque certainement une }

verifies bien qu'a chaque {
tu as bien une }

Répondre à Alain_42

7

ilan27, le 5 fév 2008 à 19:13:12

Tu avais cette erreur avant le code de recherche?
Et $end, c'est quoi?
Comme dit Alain, il doit manquer un caractère important du style ';' ')' '}' ...

Répondre à ilan27

8

chefchef, le 5 fév 2008 à 21:09:39

Bonsoir
je veux faire une recherche par quelques lettres ou par un code dans une table utilisateurs.
je m'explique: l'admin doit faire la recherche dans la table utilisateur en entrant queques lettres seulement des noms ou bien le code-utilisateur.et toutes une liste contenant les noms qui débutent par ces lettre sera récupérer de la base.
comment dois je procéder?
merci

Répondre à chefchef

9

Alain_42, le 6 fév 2008 à 10:09:57

Tu mets dans ta requette

"SELECT * FROM ta_table WHERE champ LIKE ".$critere."%'"

$critere c'est les premières caractères tapés

Répondre à Alain_42

10

chefchef, le 6 fév 2008 à 11:52:41

J'ai appliquer ce que vous m'avez proposé mais il 'y'a une erreur
Erreur de syntaxe près de '' à la ligne 1
voici le code

$nom=$_POST['nom'];

//connexion à la base
$connection= mysql_connect("localhost","root","");
mysql_select_db("projet");
//la requete
$requete= "select * from utilisateur where NOMUTILISATEUR LIKE ".$nom."%";
$resultat= mysql_query($requete,$connection) or die(mysql_error());
echo $resultat ;

Répondre à chefchef

11

Alain_42, le 6 fév 2008 à 22:57:45

Bonsoir,

qqs pb de ' dans la requette, et pour faire l'extraction il manque la boucle while(.....

et es tu sur que NOMUTILISATEUR est en majuscules dans ta table utilisateur ?


$requete= "SELECT * FROM utilisateur WHERE NOMUTILISATEUR LIKE '".$nom."%'";
$resultat= mysql_query($requete,$connection) or die(mysql_error());
mysql_close();
while($ligne=mysql_fetch_array($resultat){
	echo $ligne['NOMUTILISATEUR']."br>" ;
}

Répondre à Alain_42

12

chefchef, le 7 fév 2008 à 08:01:59

Ce code m'a afficher le nom de l'utilisateur alors que je voulais afficher toutes les informations
qui se trouvent dans la table utilisateur

Répondre à chefchef

13

Alain_42, le 7 fév 2008 à 09:14:10

Bonjour,

$donnees est un array qui contient toutes les infos d'une ligne de ta table

alors pour afficher le reste


echo "Nom: ".$ligne['NOMUTILISATEUR']." Autre champ: ".$ligne['autre_champ']." Un autre champ: ".$ligne['un_autre_champ']."br>" ;


//etc..

je ne connais pas le libellé de tes autres champs alors tu remplaces.

@lain

Répondre à Alain_42

14

tono, le 7 fév 2008 à 16:34:29

Merci pour l'info sur la recherche dans une BD ca m'a bien servi!!!

j'ai galéré toute la matiné et je viens de tombé sur cette page.
je suis heureux, grace a vous j'ai fini mon projet ou presque!

un grand merci!!!!!! ^^

Répondre à tono

15

chefchef, le 7 fév 2008 à 19:32:17

Merci ton code marche tres bien .
comment pourrai je les afficher dans un formulaire pour que je puisse apporter des modifications?

Répondre à chefchef

16

Alain_42, le 7 fév 2008 à 20:58:22
  • +1

$requete= "SELECT * FROM utilisateur WHERE NOMUTILISATEUR LIKE '".$nom."%'";
$resultat= mysql_query($requete,$connection) or die(mysql_error());
mysql_close();
?>
<form name="ma_form" method="post" action="script_traitement.php">
<table>
<?php
while($ligne=mysql_fetch_array($resultat){
	echo "<tr>";// debut nouvelle ligne
	echo "<td>Nom utilisateur:</td><td><input type=\"text\" name=\"nom_util\" value=\"$ligne['NOMUTILISATEUR']\"></td>";
	echo"</tr>";//fin 
	echo "<tr>";// debut nouvelle ligne
	echo "<td>autre Champ:</td><td><input type=\"text\" name=\"autre_champ\" value=\"$ligne['autre_champ']\"></td>";
	echo"</tr>";//fin 
	echo "<tr>";// debut nouvelle ligne
	echo "<td>un autre Champ:</td><td><input type=\"text\" name=\"un_autre_champ\" value=\"$ligne['un_autre_champ']\"></td>";
	echo"</tr>";//fin
	echo "-----------------------------------------------------------"; //séparateur
}
?>
</table>
</form>

Répondre à Alain_42

17

chefchef, le 7 fév 2008 à 21:51:54

J'ai appliqué le code(il manquait une parenthese apres $resultat)
on me signale cette erreur
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in c:\program files\easyphp1-7\www\site\md_rechercher_client.php on line 19
il s'agit d'un espace blanc je pense mais ou?

Répondre à chefchef

18

Alain_42, le 7 fév 2008 à 22:13:41

Que contient la ligne 19 ?

l'erreur est peut être ligne au dessus

Répondre à Alain_42

19

chefchef, le 8 fév 2008 à 08:09:38

Voila la ligne 19
echo "<td> Nom utilisateur:</td><td><input type=\"text\" name=\"nom_util\" value=\"$ligne['NOMUTILISATEUR']\"></td>";


merci pour tout

Répondre à chefchef