Vous n'êtes pas identifié(e).
Pages :: 1
Bonjour,
Je suis novice en Php et Mysql.
Je dois préparer un site pour une association de généalogie.
Les membres de l'association feront des recherches sur les actes de naissances, mariage et décès. Ils rechercheront soit l'année, soit un nom soit les deux l'année et le nom.
J'ai mis un bouton radio pour les actes, un de ces 3 boutons doit être obligatoirement coché.
J'ai réussi à faire la recherche par année.
Mais je n'arrive pas à faire la recherche soit par année, soit par nom ou les 2.
Voici des exemples, soit faire une recherche sur l'année 1786, soit sur le nom Dupont et enfin voire s'il existe un Dupont en 1786.
Je pense que mon problème vient de la ligne 32 :$resultn = mysql_query("SELECT * from ".$tablen. " WHERE (annee=) OR (nom LIKE '%) OR ((annee=) AND (nom LIKE '%))".$_GET["an"],$connect), et particulièrement du .$_GET["an"].
lors de la recherche dans mon formulaire j'ai aucune réponse
mais quand j'écris ce code $resultn = mysql_query("SELECT * from ".$tablen." WHERE annee=".$_GET["an"], $connect)
lors de la recherche dans mon formulaire j'ai les réponses correspondantes à l'année, c'est normal.
Je fais mes tests en local avec Wamp et j'écris mon code avec Notepad++
Merci de votre aide
Voici mon code
<input name="acte" checked="checked" value="nai" type="radio">Naissances
<input name="acte" value="mar" type="radio">Mariages
<input name="acte" value="dec" type="radio">Décès
<br>
<br>
<input name="rch" value="annee" type="checkbox">Année
:<input name="an" value="" type="text"><br>
<br>
<input name="rch" value="nom" type="checkbox">Nom
:<input name="no" value="" type="text"><br>
<br>
<br>
<input name="Recherche" value="Lancer la recherche" type="submit"></form>
<?php $adress = "localhost";
$portdb = "3306"; $userdb = "root"; $pssdb = ""; $datab = "agbcr"; $tablen = "naissance";$tablem = "mariage";$tabled = "deces";
$tbl_res = "";
$acte = "";if($_GET["acte"] == "nai") { $connect = mysql_connect($adress,$userdb,'') or die("Erreur de connexion au serveur."); mysql_select_db($datab,$connect) or die ("erreur de connexion base"); $resultn = mysql_query("SELECT * from ".$tablen. " WHERE (annee=) OR (nom LIKE '%) OR ((annee=) AND (nom LIKE '%))".$_GET["an"],$connect);}
else if($_GET["acte"] == "mar"){ $connect = mysql_connect($adress,$userdb,'') or die("Erreur de connexion au serveur."); mysql_select_db($datab,$connect) or die ("erreur de connexion base"); $resultm = mysql_query("SELECT * from ".$tablem." WHERE annee=".$_GET["an"], $connect); }
else if($_GET["acte"] == "dec"){ $connect = mysql_connect($adress,$userdb,'') or die("Erreur de connexion au serveur."); mysql_select_db($datab,$connect) or die ("erreur de connexion base"); $resultd = mysql_query("SELECT * from ".$tabled." WHERE annee=".$_GET["an"], $connect); }
if($resultn){ $i=0; while ( $row = mysql_fetch_array($resultn) ){ if($i % 2 == 0){ $color = "#E8F2FF"; }else{ $color = ""; } $nom = $row[2]; $date = $row[4]; $pere = $row[5]; $mere = $row[6]; $prof = $row[7]; $cote = $row[8]; $photo = $row[9];; $tbl_res .= "<tr style=\"background-color:".$color.";\"><td>".$nom."</td><td>".$date."</td><td>".$pere."</td><td>".$mere."</td><td>".$prof."</td><td>".$cote."</td><td>".$photo."</td></tr>"; $i = $i+1; } mysql_close(); echo "Nombre de résultat trouvé, pour la recherche naissance: ".$i."<br>"; echo ' <table cellspacing="0" cellpadding="2" style="border:0; font-family:verdana; font-size:8pt;"> <tr style="background-color:#CDCDCD;"> <td>nom </td> <td>date de naissance </td> <td>père </td ><td>mère </td> <td>profession du père </td> <td>cote </td> <td>photo </td> </tr>'.$tbl_res.'</table>'; }
else if($resultm){ $i=0; while ( $row = mysql_fetch_array($resultm) ){ if($i % 2 == 0){ $color = "#E8F2FF"; }else{ $color = ""; } $nom = $row[2]; $date = $row[4]; $pere = $row[5]; $mere = $row[6]; $prof = $row[7]; $cote = $row[8]; $photo = $row[9];; $tbl_res .= "<tr style=\"background-color:".$color.";\"><td>".$nom."</td><td>".$date."</td><td>".$pere."</td><td>".$mere."</td><td>".$prof."</td><td>".$cote."</td><td>".$photo."</td></tr>"; $i = $i+1; } mysql_close(); echo "Nombre de résultat trouvé, pour la recherche mariage: ".$i."<br>"; echo ' <table cellspacing="0" cellpadding="2" style="border:0; font-family:verdana; font-size:8pt;"> <tr style="background-color:#CDCDCD;"> <td>nom </td> <td>date de naissance </td> <td>père </td ><td>mère </td> <td>profession du père </td> <td>cote </td> <td>photo </td> </tr>'.$tbl_res.'</table>'; }
else if($resultd){ $i=0; while ( $row = mysql_fetch_array($resultd) ){ if($i % 2 == 0){ $color = "#E8F2FF"; }else{ $color = ""; } $nom = $row[2]; $date = $row[4]; $pere = $row[5]; $mere = $row[6]; $prof = $row[7]; $cote = $row[8]; $photo = $row[9];; $tbl_res .= "<tr style=\"background-color:".$color.";\"><td>".$nom."</td><td>".$date."</td><td>".$pere."</td><td>".$mere."</td><td>".$prof."</td><td>".$cote."</td><td>".$photo."</td></tr>"; $i = $i+1; } mysql_close(); echo "Nombre de résultat trouvé, pour la recherche décès:".$i."<br>"; echo ' <table cellspacing="0" cellpadding="2" style="border:0; font-family:verdana; font-size:8pt;"> <tr style="background-color:#CDCDCD;"> <td>nom </td> <td>date de naissance </td> <td>père </td ><td>mère </td> <td>profession du père </td> <td>cote </td> <td>photo </td> </tr>'.$tbl_res.'</table>'; } ?>
<br>
<br><br>
<br>
</body></html>
Hors ligne
Es-tu sûr que cette syntaxe est possible ?
Pour ma part c'est la première fois que je la vois, bon je suis pas une référence pour autant mais bon...
Qu'arrive-t-il si tu la testes directement dans le sgbd avec des valeurs statiques ?
Hors ligne
Bonsoir,
je vais chercher dans ce sens.
Je vous tiens au courant.
Hors ligne
est ce que tu as resolu ton probleme moi aussi je cherche
Hors ligne
Bonjour,
Bien qu'on ait déjà répondu a quelqu'un qui utilisait la même syntaxe que toi (:)) au niveau de ses requêtes mySQL et qui par conséquent avait le même problème que toi, voici la bonne syntaxe à adopter bien qu'au niveau du $_GET plusieurs écritures sont possibles pour que ca fonctionne.
$resultn = mysql_query("SELECT * from ".$tablen. " WHERE (annee=) OR (nom LIKE '%) OR ((annee=) AND (nom LIKE '%))".$_GET["an"],$connect),
PS: Si tu n'as pas eu de réponse c'est parcequ'il est demandé de parcourir le forum pour voir si la question à poser ne l'a pas déjà été au préalable, ce qui est le cas ici.
Dernière modification par Jc (16-05-2010 20:02:26)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Pages :: 1