Probleme select SQL


hm19000
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 492
Inscription: 2 Oct 2005

Probleme select SQL

Message le Mar Fév 26, 2008 23:09

Bonjour,

J'ai un petit problème que je n'arrive pas résoudre

quand je fait



Code: Tout sélectionner
$requet = mysql_query("SELECT DISTINCT chanteur FROM mabase WHERE genre=\"$genre\" ORDER BY chanteur");


il y a certains chanteurs qui ne s'affichent pas. mais s'affichent quand j'éxecute la requette sur phpmyadmin

mais si je vais

Code: Tout sélectionner
$requet = mysql_query("SELECT chanteur FROM mabase WHERE genre=\"$genre\" ORDER BY chanteur");


Tous les chanteur s'affichent plusieurs fois.

Est-ce que vous avez une idée?

Merci


biddybulle
WRInaute passionné
WRInaute passionné
 
Messages: 1619
Inscription: 30 Mai 2005

Message le Mer Fév 27, 2008 0:15

Le distinct a l'avantage d'éliminer la valeur chanteur en doublon. Donc sous phpmyadmin tu dois voir plusieurs fois la valeur chanteur à l'identique

RomsIW
WRInaute passionné
WRInaute passionné
 
Messages: 1144
Inscription: 25 Mai 2004

Message le Mer Fév 27, 2008 8:33

il y a certains chanteurs qui ne s'affichent pas. mais s'affichent quand j'éxecute la requette sur phpmyadmin

donc c'est ton code (php) qui pose pb, si la requête est la même, les résultats retournés sont les mêmes


hm19000
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 492
Inscription: 2 Oct 2005

Message le Mer Fév 27, 2008 8:47

Voici le code entier en php

Code: Tout sélectionner
<?php
include 'connection.php';
$genre=htmlentities($_GET['genre'], ENT_QUOTES);

$requet = mysql_query("SELECT DISTINCT chanteur FROM mabase WHERE genre=\"$genre\" ORDER BY chanteur");
mysql_close();
$donnee=mysql_fetch_array($requet);

while ($donnee=mysql_fetch_array($requet)) {

$art=str_replace(" ","-",$donnee['chanteur']);

echo '
<li><a href="Artiste/'. $art.'.php" title="'.$donnee['chanteur'].'">   
'.$donnee['chanteur'].'</a>
</li>
';
}
 
?> 


jamalofski
WRInaute discret
WRInaute discret
 
Messages: 219
Inscription: 3 Mar 2007

Re: Probleme select SQL

Message le Mer Fév 27, 2008 9:22

hm19000 a écrit:
Code: Tout sélectionner
$requet = mysql_query("SELECT DISTINCT chanteur FROM mabase WHERE genre="$genre" ORDER BY chanteur");

Je ne vois vraiment rien de particulier dans ta requete, alors moi aussi je vote pour un probleme php lors de la manipulation des données.

à ta place pour en etre sûr je ferai :
Code: Tout sélectionner
$query = "SELECT DISTINCT chanteur FROM mabase WHERE genre="$genre" ORDER BY chanteur";
echo($query);

ensuite tu execute ce qui s'affiche sur phpmydmin. Si tu retrouves tous tes chanteurs alors c'est sûr que c'est un probleme php, Sinon essaye :
Code: Tout sélectionner
$requet = mysql_query("SELECT DISTINCT chanteur FROM mabase WHERE genre='$genre' ORDER BY chanteur");


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: Probleme select SQL

Message le Mer Fév 27, 2008 9:25

jamalofski a écrit:
hm19000 a écrit:
Code: Tout sélectionner
$requet = mysql_query("SELECT DISTINCT chanteur FROM mabase WHERE genre="$genre" ORDER BY chanteur");

Je ne vois vraiment rien de particulier dans ta requete, alors moi aussi je vote pour un probleme php lors de la manipulation des données.

à ta place pour en etre sûr je ferai :
Code: Tout sélectionner
$query = "SELECT DISTINCT chanteur FROM mabase WHERE genre="$genre" ORDER BY chanteur";
echo($query);

ensuite tu execute ce qui s'affiche sur phpmydmin, si tu retrouves tous tes chanteurs alors c'est sûr que c'est un probleme php, sinon essaye :
Code: Tout sélectionner
$requet = mysql_query("SELECT DISTINCT chanteur FROM mabase WHERE genre='$genre' ORDER BY chanteur");


Voire plutôt :

"SELECT DISTINCT chanteur FROM mabase WHERE genre='".mysql_real_escape_string($genre)."' ORDER BY chanteur"


hm19000
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 492
Inscription: 2 Oct 2005

Re: Probleme select SQL

Message le Mer Fév 27, 2008 11:11

Je vient de trouvé le probleme, je ne sais pas comment j'ai mis $donnee=mysql_fetch_array($requet); en double


Code: Tout sélectionner
$donnee=mysql_fetch_array($requet);

while ($donnee=mysql_fetch_array($requet)) {


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 1 invité