Erreur requête pour MIN

Résolu
Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006 - 5 avril 2006 à 10:48
Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006 - 5 avril 2006 à 17:53
Bonjour

Voici mon problème : j'ai crée un formulaire où lorsqu'un
utilisateur entre
un artiste et/ou un titre, le requête affiche dans un
tableau la date,
l'artiste, le titre et une position (de 1 à 100).

Je
voudrais afficher la position minimale (il peut y en avoir plusieurs pour
un
artiste ayant le même titre - seul la date change). Seulement je n'arrive

pas :(

Qu'est-ce qui n'irait pas ? Il y aurait un problème au niveau
de la ligne :
while($result =
mysql_fetch_array($results))

Voici la requête :

if
( $allcriteres == "oui")
$operateur="AND";
else

$operateur="OR";
if ($artiste != "")
$finrequete .= " artiste LIKE
'%$artiste%'";
if ($titre != "")
if ($finrequete !=
"")
$finrequete .= " $operateur (titre LIKE '%$titre%')";

else
$finrequete .= " (titre LIKE '%$titre%')";
if
($finrequete != "")
$sql="SELECT * FROM charts WHERE $finrequete ORDER BY
`date` ASC" ;
else
$sql="SELECT * FROM charts ORDER BY `date`
ASC" ;

// Meilleure position
$requete="SELECT MIN(position)
FROM charts";
$results = mysql_query($requete);


$result=mysql_query($sql, $db) or die('Erreur de requete');
echo "Il y a
".mysql_num_rows($result)." résultats.";
if($result)
//si il n'y a
pas de résultats
{
if(mysql_num_rows($result)==0) echo
"<center>Pas de

Résultat</center>";
else
{
echo
"<center> Résultat(s) </center>
";

//
début du tableau
echo '<center>'.\"\n\";
// première ligne on affiche les titres prénom
et surnom dans 2 colonnes
echo '----
';
echo 'Date, ';
echo
'Artiste, ';
echo
'Titre, ';

echo 'Position, ';
echo
''.\"\n\";

// lecture et affichage des résultats sur 2
colonnes, 1 résultat par
ligne.
while($row =
mysql_fetch_array($result))
{
echo '----
';
echo ''.$row['date'].', ';
echo
''.$row['artiste'].', ';
echo
''.$row['titre'].', ';

echo ''.$row['position'].', ';

echo
''.\"\n\";
}
echo '
</center>'."\n";
// fin
du tableau.
while($result = mysql_fetch_array($results))
{

echo
$result["Max"];
}
}
mysql_free_result($result);
}
;

Merci
d'avance

10 réponses

Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006
5 avril 2006 à 17:53
En fait c'est résolu (désolé pour les 3 messages postés à la suite )


// lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne.



$meilleure_position = 50;



while($row = mysql_fetch_array($result)) {

echo '<tr>';

echo '<td bgcolor="#CCCCCC">'.$row['date'].'</td>';

echo '<td bgcolor="#CCCCCC">'.$row['artiste'].'</td>';

echo '<td bgcolor="#CCCCCC">'.$row['titre'].'</td>';

echo '<td bgcolor="#CCCCCC">'.$row['position'].'</td>';

echo '</tr>'."\n";



// si la position est meilleure que la précédente, on l'attribut comme nouvelle meilleure position

$meilleure_position = ($row['position']<$meilleure_position) ? $row['position']: $meilleure_position;

}

echo '</table></center>'."\n";

// fin du tableau.



echo "<center> Plus forte position : </center>";

echo '<center><td bgcolor ="#CCCCCC">'.$meilleure_position.'</td></center>';




}

// mysql_free_result($result);

}

?>
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 avril 2006 à 11:03
Hello

Affiche $sql, à mon avis la requête est foireuse.
0
Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006
5 avril 2006 à 11:15
Je ne pense pas, car sans si j'enlève ce qu'il y a après //Fin du tableau, cela marche sans problème
0
sidf Messages postés 1216 Date d'inscription mardi 20 décembre 2005 Statut Membre Dernière intervention 18 octobre 2012 5
5 avril 2006 à 11:54
salut
tu as dejà utilisé la variable $result pour autre chose
essaie une autre variable (mais je ne jurerai de rien)
...
while($result2 = mysql_fetch_array($results))
{
echo $result2["Max"];
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006
5 avril 2006 à 12:48
Non, ça ne donne rien
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 avril 2006 à 13:18
Mais tu veux faire quoi au juste...?
Moi je vois :
$requete="SELECT MIN(position) FROM charts";
$results = mysql_query($requete);

puis

while($result = mysql_fetch_array($results))
{
echo $result["Max"];
}

D'où sors 'Max'...???

Maintenant :

$requete="SELECT MIN(position) as minpos FROM charts";
$results = mysql_query($requete);
while($result = mysql_fetch_array($results))
{
echo $result['minpos'];
}

Mais je ne vois pas où tu veux en venir...
0
Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006
5 avril 2006 à 13:37
Oui désolé c'est un peu le bordel vu que je suis très débutant
Comme je l'ai énoncé, j'ai crée un formulaire où lorsqu'un utilisateur entre un artiste et/ou un titre, le requête affiche dans un tableau date / l'artiste / le titre / position (de 1 à 100).

Dans ce tableau affiché, je voudrais extraire la valeur minimale de la colonne position et l'afficher après le tableau comme tel :
"Plus forte position : 'position_min' "
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
5 avril 2006 à 14:08
Ca :
$requete="SELECT MIN(position) as minpos FROM charts";
$results = mysql_query($requete);
while($result = mysql_fetch_array($results))
{
echo $result['minpos'];
}

t'affichera lma position min de ta table charts.
0
Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006
5 avril 2006 à 17:04
Merci mais je ne voulais pas qu'il me retourne la position mininimale de toutes les entrées de de la colonne position se trouvant dans la table charts mais seulement dans les positions affichée par ma requête.

Je te donne le lien de mon site : http://frenchcharts.free.fr/resultat.php
Dans artiste, cherche Jumpy, je voudrais qu'il m'affiche Meilleur position : 33
0
Hakunamatata67 Messages postés 7 Date d'inscription mercredi 5 avril 2006 Statut Membre Dernière intervention 5 avril 2006
5 avril 2006 à 17:05
0
Rejoignez-nous