Page 1 sur 1

Requete d'affichage sql/php

Posté : 25 nov. 2010, 06:05
par rouly67
Bonjour,

J'ai une petite question concernant une requête en PHP.

J'ai une base de données d'évènements, et je voudrais afficher en page d'accueil de mon site le prochain evenements à venir.
Pour l'instant j'ai une fonction qui affiche l'évènement du jour et "Pas d'évènement" s'il n'y a rien...
function affichageEvent()
	{
		$c = connection("base");
		$sql = "select * from table where date='".date("Y-m-d")."'";
		$res = execution($c,$sql);
		$nbEvent = mysql_num_rows($res);
		
		if($nbEvent>0)
		{
			for($i=0;$i<$nbEvent;$i++)
			{
				while($l = mysql_fetch_array($res))
				{
					$presentation="";
					$sql_asso = "select * from table where id='".$l['organisateur_evt']."'";
					$resAsso = execution($c,$sql_asso);
					$asso = mysql_fetch_array($resAsso);
							
					if($l['groupe_evt']!=null || $l['groupe_evt']!=0)
					{
						$gp = explode("_",$l['groupe_evt']);
						for($i=0;$i<sizeof($gp)-1;$i++)
						{
							if($gp[$i]!="" || $gp[$i]!=null)
							{
								$sg = "select * from table where id=".$gp[$i];
								$rg = mysql_fetch_array(execution($c,$sg));
								$presentation.=strtoupper($rg['nom_groupe']). " + ";
							}
						}
						if($gp[sizeof($gp)-1]!="" || $gp[sizeof($gp)-1]!=null)
						{
							$ag = "select * from table where id=".$gp[sizeof($gp)-1];
							$rg = mysql_fetch_array(execution($c,$ag));
							$presentation.=strtoupper($rg['nom_groupe']);
						}
					}
					
				}
			}
		}
		else
		{
			echo "Pas d'&eacute;v&egrave;nement";
		}
		mysql_close($c);
	}
Pouvez-vous m'aider ?

Re: Requete d'affichage sql/php

Posté : 25 nov. 2010, 09:44
par xTG
$sql = "select * from table where date >= '".date("Y-m-d")."' limit 1";
On recherche tous les évènements du jour ou à venir et on ne sélectionne que le premier.

Re: Requete d'affichage sql/php

Posté : 25 nov. 2010, 12:14
par rouly67
Merci de votre réponse.
J'ai essayé votre proposition, cela m'affiche toujours la même chose : l'évènement du jour, sinon un message précisant qu'il n'y a rien dans la base.

Re: Requete d'affichage sql/php

Posté : 25 nov. 2010, 14:43
par xTG
Es-tu sûr d'avoir utilisé de bonnes valeurs pour ton essai ?
Car je viens de tester sur une table créée pour l'exemple avec un code de récupération et aucun soucis.

Re: Requete d'affichage sql/php

Posté : 25 nov. 2010, 20:39
par rouly67
ben oui il me semble :
<?php
function affichageAujourdhui()
	{
		$c = connection("base");
		$sql = "select * from evenements where date_evt='".date("Y-m-d")."' limit 1";
		$res = execution($c,$sql);
		$nbEvenement = mysql_num_rows($res);
		
		if($nbEvenement>0)
		{
			for($i=0;$i<$nbEvenement;$i++)
			{
				while($l = mysql_fetch_array($res))
				{
					$presentationGroupe="";
					$sql_asso = "select * from association where id_asso='".$l['organisateur_evt']."'";
					$resAsso = execution($c,$sql_asso);
					$asso = mysql_fetch_array($resAsso);
							
					if($l['groupe_evt']!=null || $l['groupe_evt']!=0)
					{
						$gp = explode("_",$l['groupe_evt']);
						for($i=0;$i<sizeof($gp)-1;$i++)
						{
							if($gp[$i]!="" || $gp[$i]!=null)
							{
								$sg = "select * from groupe where id_groupe=".$gp[$i];
								$rg = mysql_fetch_array(execution($c,$sg));
								$presentationGroupe.=strtoupper($rg['nom_groupe']). " + ";
							}
						}
						if($gp[sizeof($gp)-1]!="" || $gp[sizeof($gp)-1]!=null)
						{
							$ag = "select * from groupe where id_groupe=".$gp[sizeof($gp)-1];
							$rg = mysql_fetch_array(execution($c,$ag));
							$presentationGroupe.=strtoupper($rg['nom_groupe']);
						}
					}
					echo "<p class='titre'>".$l['intitule_evt']."</p>";
					
					if($asso['nom_asso']!=null)
					{
						echo "Organisateur : ".utf8_decode($asso['nom_asso']).'<br /><br />';
					}
					echo"Heure :&nbsp;".$l['heure_evt'];
					
					if($l['prix_evt']!=0 && $l['prix_evt']!=null)
					{
						echo "<br /><br />Prix : ".$l['prix_evt']."&euro;";
					}
					else
					{
						echo "<br /><br />Prix : Prix libre / Gratuit"; 
					}
					if(isset($presentationGroupe))
					{
						echo "<br /><br />Line-up :".$presentationGroupe."";
					}
					
					
					
					if($l['commentaire_evt']!=null)
					{
						echo "<br />Commentaire : ".nl2br($l['commentaire_evt']).'<br />';
					}
					
				}
			}
		}
		else
		{
			echo "<div>aucun &eacute;v&egrave;nement à venir...</div>";
		}
		mysql_close($c);
	}

?>

Re: Requete d'affichage sql/php

Posté : 25 nov. 2010, 20:51
par devlop78
1. Le for et le while se marchent sur le pied.
2. Tu as 0 ou 1 résultat, aucune boucle n'est donc nécessaire.

$nbEvenement = mysql_num_rows($res);

Si $nbEvenement == 0 alors afficher "Pas de nouveaux éléments"
Sinon, $l = mysql_fetch_array($res) etc

Re: Requete d'affichage sql/php

Posté : 25 nov. 2010, 21:03
par rouly67
2. Tu as 0 ou 1 résultat, aucune boucle n'est donc nécessaire.
Ben justement vu qu'avant cela affichait l'evenement du jour, il y avait effectivement 0 ou 1 résultat.
Mais la du coup je veux afficher le prochain event, parmis toutes celles à venir.