Problème avec requete sql

Résolu
Signaler
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Salut à tous,

Voilà mon problème.....J'ai 2 tables dans ma base, La 1ère "maisons" La 2ème "clients"
Je voudrais mettre dans des variables, pour les afficher ensuite, les champs :
id, prix, propriétaire, adresse et mandat de la table "maisons"
et le champ nom de la table "clients" en sachant que propriétaire contient un chiffre
correspondant à l'id du champ nom ....j'espère que je suis clair;

Voici mon script qui ne fonctionne pas

<?php


$sql="SELECT maisons.id.prix.proprietaire.adresse.mandat,clients.id.nom WHERE maisons.proprietaire=clients.id " ;$resultat @mysql_db_query($dbname,$sql,$id_link) or die ('Erreur['.mysql_errno().']> '.mysql_error());
while ($affiche_array = mysql_fetch_array($resultat))
{
$mandat = $affiche_array['mandat'];
$prix = $affiche_array['prix'];
$proprietaire = $affiche_array['proprietaire'];
$adresse = $affiche_array['adresse'];
$nom = $affiche_array['nom'];
$id = $affiche_array['id'];


?>

Si vous avez une idée n'hésiter pas.....

9 réponses

Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Merci pour ton aide Anthomicro, mais j'ai entièrement reformulé ma requete, et ça fonctionne pour info voilà le sript :

<?php


$sql="SELECT * FROM maisons ORDER BY id DESC LIMIT 0,10 ";$clients @mysql_db_query($dbname,$sql,$id_link) or die ('Erreur['.mysql_errno().']> '.mysql_error());
while ($maisons = mysql_fetch_array($clients))
{
$id = $maisons['id'];
$prix = $maisons['prix'];
$adresse = $maisons['adresse'];
$mandat = $maisons['mandat'];
?>
<td><?php echo stripslashes($mandat); ?></td>
<td>><?php echo "";


$sql='SELECT id,nom FROM clients WHERRE id='.$maisons['proprietaire'];$resultat @mysql_db_query($dbname,$sql,$id_link) or die ('Erreur['.mysql_errno().']> '.mysql_error());
while ($row = mysql_fetch_row($resultat))
{
echo $row['1'];
}
echo ""; ?></td>
<td><?php echo stripslashes($adresse); ?></td>
<td><?php echo stripslashes($prix).'?'; ?></td>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

pour sélectionner des champs de plusieurs tables :

SELECT t1.champ1 AS t1c1,t2.champ1 AS t2c1,t3.champ1 AS t3c1 FROM table1 t1,table2 t2, table3 t3...

pour le fetch_array tu pourras récupérer $row['t1c1'] etc...

sinon le fetch_row s'applique et est plus rapide.

a +

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

merci du coup de main mais rien ne s'inscrit ????

Voici mon script :

$sql="SELECT t1.id AS t1c1,t1.prix AS t1c2,t1.proprietaire AS t1c3,t1.adresse AS t1c4,t1.mandat AS t1c5,t2.id AS t2c1,t2.nom AS t2c2 FROM maisons t1,clients t2 WHERE 't1c3'='t2c1' LIMIT 0,10";
$resultat @mysql_db_query($dbname,$sql,$id_link) or die ('Erreur['.mysql_errno().']> '.mysql_error());
while ($row = mysql_fetch_row($resultat))
{
id = $row['t1c1']


?>
<tr class="police6" bgcolor="#FFFFFF">
<td><?php echo $row['t1c5']; ?></td>
<td>><?php echo "";echo $row['t2c2'];; echo ""; ?></td>
<td><?php echo $row['t1c4']; ?></td>
<td><?php echo $row['t1c2'].'?'; ?></td>
<?php
}
?>

Danc il doit y avoir une erreur quelque part....merci de votre aide
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
là faut utiliser un fetch_array() dans le cas présent car t'appelles les indices par leur nom, l'avantage de fetch_row() c'est qu'on appelle les indices par un numéro ce qui est plus rapide à traiter.

$row[0] etc...

bon ensuite id = $row['t1c1']

$id et pas id
<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

J'ai fais les modifs mais le résultat est le même....??

<?php


$sql="SELECT t1.id AS t1c1,t1.prix AS t1c2,t1.proprietaire AS t1c3,t1.adresse AS t1c4,t1.mandat AS t1c5,t2.id AS t2c1,t2.nom AS t2c2 FROM maisons t1,clients t2 WHERE 't1c3'='t2c1' LIMIT 0,10";
$resultat @mysql_db_query($dbname,$sql,$id_link) or die ('Erreur['.mysql_errno().']> '.mysql_error());

while ($row = mysql_fetch_array($resultat))
{
$id = $row['t1c1'];
?>

<td><?php echo $row['t1c5']; ?></td>
<td>><?php echo "";echo $row['t2c2']; echo ""; ?></td>
<td><?php echo $row['t1c4']; ?></td>
<td><?php echo $row['t1c2'].'?'; ?></td>
<?php
}
?>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
bon bah ta requête renvoit 0 enregistrements alors ;-) (à moins qu'elle ne t'affiche une erreur)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
42
Date d'inscription
mardi 25 octobre 2005
Statut
Membre
Dernière intervention
1 décembre 2008

Pas d'erreur affiché et il y a deux enregistrement dans la table "maisons" et 12 dans "clients"
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Je ne vois pas d'où l'erreur pourrait provenir :-(

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Corrige-le au minimum alors :

<?php mysql_connect('hote','user','passe');
mysql_select_db('base');

$clients = mysql_query('SELECT m.id,m.prix,m.adresse,m.mandat,c.id AS cid,c.nom FROM maisons m,clients c WHERE c.id=m.proprietaire ORDER BY m.id DESC LIMIT 10') or die ('Erreur['.mysql_errno().'] => '.mysql_error());

mysql_close();

while ($maisons = mysql_fetch_array($clients))
{
$id = $maisons['id'];
$prix = $maisons['prix'];

if(get_magic_quotes_runtime()===1)
{
$maisons['adresse']=stripslashes($maisons['adresse']);
$maisons['mandat']=stripslashes($maisons['mandat']);
}

$adresse = $maisons['adresse'];
$mandat = $maisons['mandat'];

echo '<td>',$mandat,'</td>
<td> >[affiche_maisons.php?maisons=',$id,' ',$maisons['cid'],'] </td>,$adresse,'</td><td>',$prix,' ?</td>';

}

ça devrait marcher si tu n'as pas plusieurs clients par id de maison ;-)
<hr size ="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>