A voir également:
- [php/sql] afficher une sous-requête
- Easy php - Télécharger - Divers Web & Internet
- Afficher appdata - Guide
- Afficher mot de passe wifi android - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
9 réponses
Kentin76250
Messages postés
235
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
12 novembre 2014
5
2 juin 2009 à 15:09
2 juin 2009 à 15:09
bonjour,
Une question tu veux afficher quoi à l'arrivé
tu veux les pays des livres ?? je dois commencer a fatiguer ^^
je fais une pose dans mon boulot donc va y je vais voir sauf si plus fort arrive ^^
kent'z
Une question tu veux afficher quoi à l'arrivé
tu veux les pays des livres ?? je dois commencer a fatiguer ^^
je fais une pose dans mon boulot donc va y je vais voir sauf si plus fort arrive ^^
kent'z
Kentin76250
Messages postés
235
Date d'inscription
lundi 3 décembre 2007
Statut
Membre
Dernière intervention
12 novembre 2014
5
2 juin 2009 à 15:16
2 juin 2009 à 15:16
Juste comme ca je reflechi tkt euh le "ON" tu as essayé de le mettre en "IN"?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour
Je n'ai pas cherché à tout comprendre, mais..
Dans le as 'name' il me semble bien qu'il ne faut pas d'apostrophes mais des accents graves ou rien du tout : as `name` ou as name . Je suis étonné que tu n'aies pas d'erreur à ce niveau
Ton while ($nompays = mysql_fetch_array($pays) ) devrait être suivi d'une accolade { qui se referme après l'affichage du nom de pays. D'ailleurs, ce devrait être un if plutôt qu'un while, tu ne devrais avoir qu'un seul pays possible, donc pas de boucle, non ?
Je n'ai pas cherché à tout comprendre, mais..
Dans le as 'name' il me semble bien qu'il ne faut pas d'apostrophes mais des accents graves ou rien du tout : as `name` ou as name . Je suis étonné que tu n'aies pas d'erreur à ce niveau
Ton while ($nompays = mysql_fetch_array($pays) ) devrait être suivi d'une accolade { qui se referme après l'affichage du nom de pays. D'ailleurs, ce devrait être un if plutôt qu'un while, tu ne devrais avoir qu'un seul pays possible, donc pas de boucle, non ?
J'ai modifié mon code ainisi :
<?php
mysql_connect("127.0.0.1", "root", "");
mysql_select_db("autourdumonde");
$reponse = mysql_query("SELECT * FROM book LIMIT 0, 100") or die(mysql_error());
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<?php
$pays = mysql_query("SELECT book.Country, country.Country, country.Name as name FROM book LEFT JOIN country ON book.Country = country.Country") or die(mysql_error());
if ($nompays = mysql_fetch_array($pays) )
?>
<strong><FONT SIZE=3><?php echo $donnees['Title']; ?></font></strong>
<strong>Pays</strong> : <?php echo $nompays['name']; ?><br />
<?php
}
mysql_close();
?>
Cela affiche maintenant un nom de pays, mais toujours le même, à savoir le 1er de la table 'country'
<?php
mysql_connect("127.0.0.1", "root", "");
mysql_select_db("autourdumonde");
$reponse = mysql_query("SELECT * FROM book LIMIT 0, 100") or die(mysql_error());
while ($donnees = mysql_fetch_array($reponse) )
{
?>
<?php
$pays = mysql_query("SELECT book.Country, country.Country, country.Name as name FROM book LEFT JOIN country ON book.Country = country.Country") or die(mysql_error());
if ($nompays = mysql_fetch_array($pays) )
?>
<strong><FONT SIZE=3><?php echo $donnees['Title']; ?></font></strong>
<strong>Pays</strong> : <?php echo $nompays['name']; ?><br />
<?php
}
mysql_close();
?>
Cela affiche maintenant un nom de pays, mais toujours le même, à savoir le 1er de la table 'country'
P@t@ch0n
Messages postés
565
Date d'inscription
mercredi 15 avril 2009
Statut
Membre
Dernière intervention
28 décembre 2009
85
2 juin 2009 à 15:52
2 juin 2009 à 15:52
Sers-toi d'une jointure.
$query = ' SELECT Title, Country, name FROM book JOIN country USING(Country) ORDER BY name, Title'; $reponse = mysql_query($sql) or exit(mysql_error()); $name = ''; while( $donnees = mysql_fetch_array($reponse) ) { if( $donnees['country'] != $pays ) { $name = $donnees['name']; echo '<h3>' . $pays . '</h3>'; } echo $donnees['Title']; }Par contre nomme autrement les champs et tables, tu as trop de risque de confusion là.
OK
Tu veux le faire en deux requêtes ou en une seule ? Car si tu le fais en deux requêtes, tu n'a pas besoin de jointure, il suffit de faire comme 2ème requête :
$pays = mysql_query("SELECT Name FROM country WHERE Country = $donnees[Country]") or die(mysql_error());
Pour le faire en 1 seule requête, je ne suis pas assez sûr de moi pour l'écrire sans faire d'essais et je n'ai pas le temps de créer les tables, mais ça doit ressembler à
$pays = mysql_query("SELECT book.Title as titre, book.Country, country.Country, country.Name as name FROM book LEFT JOIN country ON book.Country = country.Country") or die(mysql_error());
et là c'est bien un while qu'il faut derrière car tu as plusieurs réponses
Tu veux le faire en deux requêtes ou en une seule ? Car si tu le fais en deux requêtes, tu n'a pas besoin de jointure, il suffit de faire comme 2ème requête :
$pays = mysql_query("SELECT Name FROM country WHERE Country = $donnees[Country]") or die(mysql_error());
Pour le faire en 1 seule requête, je ne suis pas assez sûr de moi pour l'écrire sans faire d'essais et je n'ai pas le temps de créer les tables, mais ça doit ressembler à
$pays = mysql_query("SELECT book.Title as titre, book.Country, country.Country, country.Name as name FROM book LEFT JOIN country ON book.Country = country.Country") or die(mysql_error());
et là c'est bien un while qu'il faut derrière car tu as plusieurs réponses