affichage d'une requete PHP qui bloque à 1 résultat

Mammouth du PHP | 804 Messages

25 janv. 2008, 16:50

Bonjour,

Depuis ce matin je planche sur un code, je crois que j'y suis depuis
trop longtemps et commence à plus y voir trop claire, peu être une
aide extérieur serait la solution.

Mon code représente un listing d’événement, ou en même temps
j'affiche les membres déjà inscrit grâce à une JOINTURE, le résultat
est bien celui que je voulais mais malheureusement il m'affiche 1 seul evenement ?

Quelqu’un voix une erreur grossière qui m'échapperait ?

merci d'avance

if(isset($_POST["listecompete"])){
$cc = $_POST["meting"];
$age = $_POST["agemembre"];

header('Content-Type: text/html; charset=ISO-8859-1');
require("config.php");
mysql_connect($SQL_HOST,$SQL_Compte,$SQL_Password);
mysql_select_db($SQL_Database);

$query = mysql_query("SELECT evenements.*,inscriptions.id_even 
FROM evenements 
LEFT JOIN inscriptions ON inscriptions.id_even=id_evenement
WHERE age_mini < $age AND age_max >=$age && etat=\"0\" && critere=\"$cc\" LIMIT 10");
$num_rows = mysql_num_rows($query);

// à activer si trop de membre connectés
//sleep(5); 

echo "<table class='table-titre-classement'><tr>
<td colspan='3' class='td-titre-classement'> $num_rows evenement(s) disponible dans cette catégorie</td>
</tr></table><br>
";


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

				//modulo pour récupérer l'age dans le bon format
				$annee1 = ($row['age_mini'] - $row['age_mini'] % 12) / 12; 
				$annee2 = ($row['age_max'] - $row['age_max'] % 12) / 12; 
				$DB_id_evenement = $row['id_evenement'];

				//requete pour lister les membres déjà inscrits
						$query = mysql_query("SELECT inscriptions.*,member.ID,member.nam 
						FROM inscriptions 
						LEFT JOIN member ON member.ID = inscriptions.id_member
						WHERE id_even=$DB_id_evenement");
						$nbcle =  mysql_num_rows($query);
						
						while($row = mysql_fetch_array($query)){
						$DB_ID = $row['ID'];
						$DB_nam = $row['nam'];
						$listmember[$DB_nam] = "$DB_ID";
						}
						
						foreach($listmember as $DB_ID => $DB_nam)
						{
						$lesmembers .= "$DB_ID  $DB_nam<br>";
						}


		
	echo "<table class=\"table-titre-classement\" id=\"tan\">
	<tr>
	<td colspan=\"4\" class=\"td-titre-classement\"> $row[nom_evenement] </td>
	</tr>
	<tr align=\"left\" valign=\"middle\"> 
	<td width=\"30%\" rowspan=\"2\"><br><br>$row[maxnb] places<br><strong>De</strong> $annee1<strong>&agrave;</strong> $annee2 an(s)</td>
	<td height=\"25\" colspan=\"2\" class=\"td-titre-interne\">$row[descriptif]</td>
	</tr>
	<tr align=\"left\" valign=\"middle\"> 
	<td width=\"68%\" height=\"25\">$nbcle déjà inscrits  <br>$lesmembers</td>
	<td width=\"1%\"><input type=\"submit\" value=\"inscrire\"> </td>
	</tr></table><hr>";
	}


}
mysql_close();
Modifié en dernier par dogmongo le 25 janv. 2008, 17:16, modifié 1 fois.

Eléphant du PHP | 445 Messages

25 janv. 2008, 16:54

Peux tu nous passer le code en entier car tu as une accolade fermante en trop.
Juste au dessus de mysql_close()

Edit : Tu utilises la meme variable ($row) pour tes 2 requetes.
Puis sors tes variables de tes chaines tu y gagneras en temps d'execution.
Modifié en dernier par h0_noMan le 25 janv. 2008, 17:01, modifié 2 fois.

Mammouth du PHP | 804 Messages

25 janv. 2008, 16:58

il est en entier :!:
j'ai peur de ne pas te comprendre :?:

Eléphant du PHP | 445 Messages

25 janv. 2008, 17:09

Comptes le nombre d'accolades et indente ton code tu verras aisnis qu'il y en a une en trop.

Mammouth du PHP | 804 Messages

25 janv. 2008, 17:14

autant pour moi

au début du code il y a la vérification de la variable POST

j'ai corrigé mon code dans le premier post
if(isset($_POST["listecompete"])){ 



j'ai renomé le $query de ma deuxieme requete en $query2 tout les evenements s'affiche mais la probleme c'est que maintenant , les membres se cumule et multipli les evenements , un vraix basard :shock: :?