OVH Cloud OVH Cloud

Prob syntaxe MIN

1 réponse
Avatar
Comte Hans Suisse
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><b>Pas de
Résultat</b></center>";
else
{
echo "<center><b>Résultat(s)</b></center><br>";

// début du tableau
echo '<center><table bgcolor="#FFFFFF">'."\n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Date</FONT></FONT></u></b></td>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Artiste</FONT></FONT></u></b></td>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Titre</FONT></FONT></u></b></td>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Position</FONT></FONT></u></b></td>';
echo '</tr>'."\n";

// lecture et affichage des résultats sur 2 colonnes, 1 résultat par
ligne.
while($row = mysql_fetch_array($result))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['date'].'</FONT></FONT></td>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['artiste'].'</FONT></FONT></td>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['titre'].'</FONT></FONT></td>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['position'].'</FONT></FONT></td>';

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


Merci d'avance

1 réponse

Avatar
Synopsis
C'est du PHP...
Vous travailez avec mySQL ( et en quelle version) ou avec SQL Server ?


"Comte Hans Suisse" a écrit dans le message de
news:443370a8$0$11332$
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><b>Pas de
Résultat</b></center>";
else
{
echo "<center><b>Résultat(s)</b></center><br>";

// début du tableau
echo '<center><table bgcolor="#FFFFFF">'."n";
// première ligne on affiche les titres prénom et surnom dans 2 colonnes
echo '<tr>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Date</FONT></FONT></u></b></td>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Artiste</FONT></FONT></u></b></td>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Titre</FONT></FONT></u></b></td>';
echo '<td bgcolor="#669999"><b><u><FONT face="Verdana"><FONT
size=2>Position</FONT></FONT></u></b></td>';
echo '</tr>'."n";

// lecture et affichage des résultats sur 2 colonnes, 1 résultat par
ligne.
while($row = mysql_fetch_array($result))
{
echo '<tr>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['date'].'</FONT></FONT></td>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['artiste'].'</FONT></FONT></td>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['titre'].'</FONT></FONT></td>';
echo '<td bgcolor="#CCCCCC"><FONT face="Tahoma"><FONT
size=1>'.$row['position'].'</FONT></FONT></td>';

echo '</tr>'."n";
}
echo '</table></center>'."n";
// fin du tableau.
while($result = mysql_fetch_array($results))
{
echo $result["Max"];
}
}
mysql_free_result($result);
}
;


Merci d'avance