PHP pb sur une condition dans une boucle

Fermé
woody67 - 11 avril 2009 à 21:32
 Profil bloqué - 12 avril 2009 à 22:44
Bonjour,

Attention Programmeur débutant.

<?php


//Test pour vérifier que l'id correpondant à $_GET['id']+1 existe dans la table $_GET['table'].
mysql_connect("localhost", "root", "") or exit (mysql_error()); //connexion base image
mysql_select_db("images") or exit (mysql_error());
$id=$_GET['id']; //définition variable id

do //boucle pour récupérer id suivant en s'assurant de son existence dans la base
{
$id++;
$retour=mysql_query('SELECT id FROM '.$_GET['table'].' WHERE id= '.$id) or die(mysql_error());
$donnees=mysql_fetch_array($retour) or die(mysql_error());
$var=$donnees['id'];


} while (!isset($var));



echo 'valeurVar= '.$var.'<br />';
echo 'valeurId+1= '.$id.'<br />';
mysql_close();

?>
Le script fonctionne tant que l'id existe dans la table mais s'arrète quand l'id n'existe pas et sans donner de message d'erreur. En effet je souhaite une incrémentation de l'id tant que la condition (!isset($var)) est vrai,c'est à dire tant que $donnees['id'] n'existe pas.
A voir également:

2 réponses

Profil bloqué
12 avril 2009 à 04:37
do //boucle pour récupérer id suivant en s'assurant de son existence dans la base
{ <=====??????
$id++;
$retour=mysql_query('SELECT id FROM '.$_GET['table'].' WHERE id= '.$id) or die(mysql_error());
$donnees=mysql_fetch_array($retour) or die(mysql_error());
$var=$donnees['id'];


}<======????
il faut les enlever
0
bonjour ryuzuke,

Merci d'avoir répondu à mon problème. Cependant je ne pense pas qu'enlever les accolades soit une bonne idée
puisque elles font parti de la syntaxe d'une boucle avec do. En fait mon problème vient du fait que lorsque un id est absent de la base de données je souhaite relancer la boucle pour aller voir si l'id suivant existe. D'où la condition while (!isset($var)).Ce qui pose problème c'est l'interprétation de la variable $var quand donnees['id']
n'existe pas.
0
Profil bloqué
12 avril 2009 à 22:44
bonjour
$var devrai corrspendre a NULL quant l'id n existe pas

utilise un echo $var ; avant le while pour voire un peut mieu
0