Pb affichage d'une recherche mysql

Résolu
Eyeron Messages postés 12 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 22 mars 2010 - 13 janv. 2010 à 12:54
Eyeron Messages postés 12 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 22 mars 2010 - 13 janv. 2010 à 16:10
[i]Bonjour,

j'ai une table avec les champs suivants:
id
prenom
nom
discipline
perfs
commentaire

J'ai une page de recherche avec un formulaire classique:/i
<form action= "clients_recherche2.php" method="post">
Rechercher par discipline,
----
Nom de la discipline :, ,
----
OU,
----
Rechercher par nom du client,
----
Nom :, ,

----
,

</form>

Puis on arrive sur la page clients_recherche2 :
<?php
$discipline =$_POST['discipline_r'];
$nom=$_POST['nom_r'];

mysql_connect("localhost", "root", "");
mysql_select_db("performances");

if (empty($discipline))
{
$req1=mysql_query("SELECT * FROM clients WHERE nom='".$nom."' ");
$req = mysql_fetch_array($req1);
$discipline=$req['discipline'];
$nom=$req['nom'];
$id=$req['id'];
$prenom=$req['prenom'];
$perfs=$req['perfs'];
$commentaire=$req['commentaire'];
$count=mysql_num_rows($req1);
}
else
{
$req1=mysql_query("SELECT * FROM clients WHERE discipline='".$discipline."'");
$req = mysql_fetch_array($req1);
$discipline=$req['discipline'];
$nom=$req['nom'];
$id=$req['id'];
$prenom=$req['prenom'];
$perfs=$req['perfs'];
$commentaire=$req['commentaire'];
$count=mysql_num_rows($req1);
}

{
?>

[i]Ensuite j'affiche dans une table le résultat.
Cependant un client peut avoir des perfs dans plusieurs disciplines.
C'est pour ça que je définis la variable $count

Mais pour afficher je ne sais pas comment faire... Pour le moment j'utilise un if:/i

<?php
if ($count== 1) {
?>


ID, <?php echo $id ?>,
----
Nom de la Discipline, <?php echo $boulangerie ?>,
----
Prénom, <?php echo $prenom ?>,
----
Nom, <?php echo $nom ?>,
----
Performance, <?php echo $perfs ?>,
----
Commentaire, <?php echo $commentaire ?>

<?php } ?>

<?php
if ($count == 2)
{
?>

[i]ect...

Je sais qu'on peut passer par: for ($i = 1 ; $i <= $nombre_elements ; $i++)

Mais je sais pas comment on fait pour calculer le nombre de colonnes à afficher...

Si quelqu'un peut me répondre (je ne sais pas si ma demande est assez claire ?!!!)

Merci !
/i

3 réponses

phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
13 janv. 2010 à 15:40
Bonjour,

Alors plusieurs choses :

Ta condition if-else peut être effectuer uniquement sur la ligne $req1 donc inutile de retranscrire à chaque fois les lignes qui suivent après :
if (empty($discipline)) 
{ 
$req1=mysql_query("SELECT * FROM clients WHERE nom='".$nom."' "); 
} 
else 
{ 
$req1=mysql_query("SELECT * FROM clients WHERE discipline='".$discipline."'"); 
}


- Ensuite, inutile de redéfinir les variables : $nom et $discipline puisqu'elles ont déjà été définie en amont $_POST[]


Après pour, récupérer les champs nécessaires ta variable $count n'est pas utile, pour cela faudrait faire une boucle while :
<?php
if (empty($discipline)) 
{ 
$req1=mysql_query("SELECT * FROM clients WHERE nom='".$nom."' "); 
} 
else 
{ 
$req1=mysql_query("SELECT * FROM clients WHERE discipline='".$discipline."'");  
}

if(mysql_num_rows($req1)>0)
{
while($req = mysql_fetch_array($req1)) 
{
$discipline;
$nom;
$id=$req['id']; 
$prenom=$req['prenom']; 
$perfs=$req['perfs']; 
$commentaire=$req['commentaire']; 
?>
ID,  <?php echo $id ?>,
----
Nom de la Discipline,  <?php echo $boulangerie ?>,
----
Prénom,  <?php echo $prenom ?>,
----
Nom,  <?php echo $nom ?>,
----
Performance,  <?php echo $perfs ?>,
----
Commentaire,  <?php echo $commentaire ?>
 

<?php
}
}
else
{
print "Tu n'existe pas !";
}?>


Voilà, je pense avoir tout dit...sauf pour les problèmes de sécu !
______________________________________________________________________
3
Eyeron Messages postés 12 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 22 mars 2010
13 janv. 2010 à 12:57
Oops j'ai fait une erreur
<tr> <td class="font14_b"> Nom de la Discipline </td> <td class="font14"> <?php echo $boulangerie ?></td></tr>

C'est bien sur $discipline (je crois qu'il faut que j'aille me chercher à manger la !!!!)
0
Eyeron Messages postés 12 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 22 mars 2010
13 janv. 2010 à 16:10
Super merci ;)
0
Rejoignez-nous