mon while m'ignore le premier enregistrement de ma requete

Eléphant du PHP | 331 Messages

25 juil. 2006, 16:05

Bonjour à tous,

J'ai une requete SELECT qui fonctionne trés bien sous PhpMyAdmin et qui me renvoie 20 enregistrements.

Lorsque je l'utilise en php, je la déclare, et à son utilisation dans un while, il ne me prend jamais en compte le premier enregistrement de la requete.
Pouvez-vous me dire pourquoi ?
Merci

Voici la requete :
<?php
mysql_select_db($database_connexion_bdd_mysql, $connexion_bdd_mysql);
$query_Requete = "SELECT prono_Fusion_Voteur_MatchLigue1.IdVoteur, prono_Voteur.Pseudo, prono_Fusion_Voteur_MatchLigue1.IdMatch, prono_Fusion_Voteur_MatchLigue1.VoteCalcule, prono_Fusion_Voteur_MatchLigue1.NbPointsMarques, prono_Fusion_Voteur_MatchLigue1.ScoreEquipeDom, prono_Fusion_Voteur_MatchLigue1.ScoreEquipeVis, prono_MatchLigue1.ResultatMatch, prono_MatchLigue1.ScoreEquipeDomReel, prono_MatchLigue1.ScoreEquipeVisReel FROM prono_Voteur INNER JOIN (prono_MatchLigue1 INNER JOIN prono_Fusion_Voteur_MatchLigue1 ON prono_MatchLigue1.IdMatch = prono_Fusion_Voteur_MatchLigue1.IdMatch) ON prono_Voteur.IdVoteur = prono_Fusion_Voteur_MatchLigue1.IdVoteur ORDER BY prono_Fusion_Voteur_MatchLigue1.IdVoteur, prono_Fusion_Voteur_MatchLigue1.IdMatch";
$Requete = mysql_query($query_Requete, $connexion_bdd_mysql) or die(mysql_error());
$row_Requete = mysql_fetch_assoc($Requete);
$totalRows_Requete = mysql_num_rows($Requete);
?>
et voici mon calcul à l'aide du while :
<?php

while ($ligne=mysql_fetch_array($Requete))
{ extract($ligne);

if ($VoteCalcule == $ResultatMatch)
	{
		if ($ScoreEquipeDom == $ScoreEquipeDomReel and $ScoreEquipeVis == $ScoreEquipeVisReel)
			{
			$NbPoints = "3";
			}
		else
			{
			$NbPoints = "1";
			}
	}
else
	{
	$NbPoints = "0";
	}
$requete_maj = "UPDATE prono_Fusion_Voteur_MatchLigue1 SET NbPointsMarques = $NbPoints WHERE IdVoteur = $IdVoteur AND IdMatch = $IdMatch";
$maj = mysql_query($requete_maj, $connexion_bdd_mysql) or die(mysql_error());
}
echo "Calcul et mise à jour de la table effectués !";

?>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

25 juil. 2006, 16:13

A cause de ça :
$row_Requete = mysql_fetch_assoc($Requete); 
mysql_fetch_assoc() retourne un tableau associatif qui contient la ligne lue dans le résultat result et déplace le pointeur interne de données.
mysql_fetch_array() va donc commencer au 2ième tuple renvoyé.

Eléphant du PHP | 331 Messages

25 juil. 2006, 16:22

Merci beaucoup ouckileou, ça marche nickel !