Récupérer données

Répondre
carmodelisme
le 22/12/2010 à 11:31
carmodelisme
Bonjour

Je m'initie au PHP et Mysql, donc débutant.

J'ai créé un formulaire pour faire une recherche multicritères dans une base de donnée MYSQL (nom, prénom, age, adresse, code postal)
Pas de problème.
L'utilisateur choisi les critères de recherche.
Je teste si la requête est bonne. Jusque là pas de problème.

Admettons que l'utilisateur recherche le prénom TOTO et le nom TATA sur la base. S'ils existent, je voudrais récupérer tous les champs de la ligne où se trouvent TOTO et TATA pour les afficher en retour.
Quelle est la fonction qui permet de faire cela.
Merci à vous
carmodelisme
le 22/12/2010 à 15:39
carmodelisme
Merci Beaucoup.

J'arrive maintenant à récupérer les données... mais elles s'affichent en double...
Pourquoi ?
Je mets le code complet que j'ai "pompé" en partie sur internet...

<?php
$nom = $_POST['nom'];
$champ1 = "nom";
$possesseur = $_POST['possesseur'];
$champ2 = "possesseur";
$prix = $_POST['prix'];
$champ3 = "prix";

if($_POST['et_ou1'] == 'AND')
{
if(empty($_POST['nom']))
{
$nom = 1;
$champ1 = 1;
}
}
else
{
if(empty($_POST['nom']))
{
$nom = 1;
$champ1 = 2;
}
}

if($_POST['et_ou1'] == 'AND')
{
if(empty($_POST['possesseur']))
{
$possesseur = 1;
$champ2 = 1;
}
}
else
{
if(empty($_POST['possesseur']))
{
$possesseur = 1;
$champ2 = 2;
}
}

if($_POST['et_ou2'] == 'AND')
{
if(empty($_POST['prix']))
{
$prix = 1;
$champ3 = 1;
}
}
else
{
if(empty($_POST['prix']))
{
$prix = 1;
$champ3 = 2;
}
}

$host = 'xxx';
$user = 'xxx';
$pass = 'xx';
$db = 'xxx';
$tables = 'xxx';

// connection à la DB
mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$select = "SELECT * FROM $tables WHERE $champ1 = '$nom' ".$_POST["et_ou1"]." $champ2 = '$possesseur' ".$_POST["et_ou2"]." $champ3 = $prix";

if($nom=="" AND $possesseur=="" AND $prix=="")
echo 'Vous devez preciser en moins un critére de recherche !!';
else
{
$result = mysql_query($select) or die ('Erreur : '.mysql_error());
$total = mysql_num_rows($result);

if($total)
{
echo "<table width=\"932\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<!--DWLayoutTable-->
<tr>
<td width=\"15\" height=\"19\">&nbsp;</td>
<td width=\"300\">&nbsp;</td>
<td width=\"9\">&nbsp;</td>
<td width=\"100\">&nbsp;</td>
<td width=\"12\">&nbsp;</td>
<td width=\"70\">&nbsp;</td>
<td width=\"9\">&nbsp;</td>
<td width=\"50\">&nbsp;</td>
<td width=\"9\">&nbsp;</td>
<td width=\"140\">&nbsp;</td>
<td width=\"9\">&nbsp;</td>
<td width=\"200\">&nbsp;</td>
<td width=\"9\">&nbsp;</td>
</tr>";
echo "<tr>
<td height=\"22\">&nbsp;</td>
<td align=\"center\" valign=\"top\" bgcolor=\"#6699FF\"><b>nom</b>&nbsp;</td>
<td>&nbsp;</td>
<td align=\"center\"valign=\"top\" bgcolor=\"#6699FF\"><b>possesseur</b>&nbsp;</td>
<td>&nbsp;</td>
<td align=\"center\"valign=\"top\" bgcolor=\"#6699FF\"><b>Console</b>&nbsp;</td>
<td>&nbsp;</td>
<td align=\"center\"valign=\"top\" bgcolor=\"#6699FF\"><b>prix</b>&nbsp;</td>
<td>&nbsp;</td>
<td align=\"center\"valign=\"top\" bgcolor=\"#6699FF\"><b>Nbre Joueurs Max</b>&nbsp;</td>
<td>&nbsp;</td>
<td align=\"center\"valign=\"top\" bgcolor=\"#6699FF\"><b>Commentaires</b>&nbsp;</td>
<td>&nbsp;</td>
</tr>";
echo "<tr>
<td height=\"22\">&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr>";
while($row = mysql_fetch_array($result))
{
echo '<td height="22">&nbsp;</td>
<td align="center" valign="top">'.$row['nom'].'&nbsp;</td>
<td>&nbsp;</td>
<td align="center" valign="top">'.$row['possesseur'].'&nbsp;</td>
<td>&nbsp;</td>
<td align="center" valign="top">'.$row['console'].'&nbsp;</td>
<td>&nbsp;</td>
<td align="center" valign="top">'.$row['prix'].'&nbsp;</td>
<td>&nbsp;</td>
<td align="center" valign="top">'.$row['nbre_joueurs_max'].'&nbsp;</td>
<td>&nbsp;</td>
<td align="center" valign="top">'.$row['commentaires'].'&nbsp;</td>
<td>&nbsp;</td>
</tr>';
}
echo '<tr>
<td height="157">&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>';
}
else echo '<div align="center"><span class="Style1">Aucun r&eacute;sulat ne corresponds &agrave; votre recherche !!... </span>
</div>';

mysql_free_result($result);
mysql_close();
}
?>
LA GLOBULE
le 23/12/2010 à 11:10
LA GLOBULE
Il faut surement faire un group by sur ta requete SQL afin d'éliminer les doublons.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours