8796 sujets

Développement web côté serveur, CMS

Salut à tous , voila mon problème.

J'ai une page agenda concert , sur cette page j'affiche les concerts à venir.
J'aimerais afficher un message "Pas de concerts prévus pour le moment." si aucun concerts n'est à venir.

Voici donc ma requête sql (avec système de pagination) :
$req_totale = "SELECT * FROM t_agenda";
$result_total = mysql_query($req_totale);
$combien = mysql_num_rows($result_total);
mysql_free_result($result_total);

$page = 1;
$range = 5;
$nombre_pages_agenda = ceil($combien/$range);
if (isset($_GET["page"])) {
	$page = $_GET["page"];
}
if (isset($_GET["range"])) {
	$range = $_GET["range"];
}
$a = ($page-1)*$range;
$b = ($a+$range)-1;

$req_partielle_a = "SELECT * FROM t_agenda WHERE date>=CURDATE() ORDER BY date DESC LIMIT ".$a.",".$range."";
$result_partiel_a = mysql_query($req_partielle_a);


Et ma fonction php :
if ($result_partiel_a) {

while ($ligne=mysql_fetch_array($result_partiel_a)) { 
echo '<table width=100% cellspacing="5">

<tr>
    <td width="75" align="left" valign="top"><p><a href="media/agenda_';
 echo $ligne ["agenda_id"] ;
 echo '.jpg" rel="lightbox" title="';
 echo stripslashes ($ligne["agenda_lieu"]) ;
 echo 'Le ';
 echo date("d/m/Y", strtotime($ligne["date"]));
 echo '"><img src="media/agenda_';
 echo $ligne ["agenda_id"] ;
 echo '.jpg" alt="Le ';
 echo stripslashes ($ligne["date"]) ;
 echo '" width="75" height="100" /></a></p>
    </td>
<td align="left" valign="top">
<p><b>Quand ?</b> <br />
Le ';
echo date("d/m/Y", strtotime($ligne["date"]));
echo '</p>

<p><b>Ou ?</b> <br />';
echo stripslashes ($ligne["agenda_lieu"]) ;
echo '</p><br />
<br />
<p><a href="index.php?p=agendaview&id=';
echo $ligne ["agenda_id"] ;
echo '" title="Voir la description compl&egrave;te" class="lien_news">Voir la description compl&egrave;te &gt;&gt;</a></p>
</td>

</tr>

</table>
<hr />';
}   mysql_free_result($result_partiel_a);


 
 }
 else { echo "<p>Pas de concert pour le moment.</p>" ; }
 
 


Ma boucle s'affiche très bien, mais pas mon message dans le else.

Je fait une erreur quelque part , mais je n'arrive pas à trouver ou. Si vous avez une idée je suis preneur, bien à vous, merci Smiley cligne
Modifié par Rastahigh (27 May 2011 - 12:58)
Il faut que tu compte le nombre de résultat retournés par ta requête.

if( mysql_num_rows($result_partiel_a) > 0 ) {
    // affichage de la liste des éléments
}
else {
    // aucun élément à afficher
}


Dans le code que tu donnes if($result_partiel_a) sera toujours vrai à moins que la requête n'ai échouée.
a écrit :
Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.