Problème dans ma boucle

Résolu
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 18 avril 2014 à 01:08
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 18 avril 2014 à 20:26
je veux que le i de la boucle for soit initialisé par un nombre qui le résultat d'une requête.
voici ce que j'ai tenté:
// on crée la requête SQL
$sql = "SELECT (max(id)+1) AS ID
         FROM  renseigner  WHERE pseudo = '".$_SESSION['pseudo']."'
		   ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$liste_etu=mysql_fetch_assoc($req); 
if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre'])){
 $cat = strip_tags(trim($_POST['cat'])); 
  
    for($i =  $liste_etu["ID"]; $i <= 1000000; $i++){
....

7 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
18 avril 2014 à 09:13
Bonjour,

// on crée la requête SQL
$sql = "SELECT (max(id)+1) AS ID
         FROM  renseigner  WHERE pseudo = '".$_SESSION['pseudo']."'
		   ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
mysql_data_seek($req , 1);
$row1 = mysql_fetch_assoc($req );

if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre'])){
 $cat = strip_tags(trim($_POST['cat'])); 
  
    for($i =  $row1["ID"]; $i <= 1000000; $i++){
....


0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
18 avril 2014 à 11:10
bjr merci @jordane45 de me repondre.
ça ne fonctionne toujours pas mais quand je met :
for($i = 1; $i <= 1000000; $i++){
ça fonctionne .
or je veux que
$i
soit initialisé par
 $row1["ID"]
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
Modifié par jordane45 le 18/04/2014 à 13:36
Et que vaut ta variable ?
As tu mis des Echo pour t'assurer qu'elle te retournait bien une valeur ?

$pseudo = isset($_SESSION['pseudo'])?$_SESSION['pseudo']:'';
// on crée la requête SQL
$sql = "SELECT (max(id)+1) AS ID
           FROM  renseigner  
           WHERE pseudo = '".$pseudo."'
     ";
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
mysql_data_seek($req , 1);
$row1 = mysql_fetch_assoc($req );
if ($row1){
  // Récupération de ID et conversion en INT
  $id = (int) ($row1["ID"]);
}else{
 echo " Erreur ! ID ne vaut rien !!";
 echo "<p> SQL = <br>";
 echo  $sql ;
 echo "<br> ROW1 = <br>";
 print_r($row1);
 echo "</p>";
}
if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre']) && isset($id)){
  $cat = strip_tags(trim($_POST['cat'])); 
  for($i =  $id ; $i <= 1000000; $i++){
   echo $i;
   }



Avant de poser une question, merci de lire la charte du site.
Cordialement, Jordane
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
18 avril 2014 à 16:43
je viens de tester le code .
voici ce que j'ai mis:
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
mysql_data_seek($req , 1);
$row1 = mysql_fetch_assoc($req );
if ($row1){
// Récupération de ID et conversion en INT
$id = (int) ($row1["ID"]); echo $id ;
}else{
echo " Erreur ! ID ne vaut rien !!";
echo "<p> SQL = <br>";
echo $sql ;
echo "<br> ROW1 = <br>";
print_r($row1);
echo "</p>";
}
if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre']) && isset($id)){
$cat = strip_tags(trim($_POST['cat']));
for($i = $id ; $i <= 1000000; $i++){
echo $i;

echo $id ;
donne 0
  echo $i;
donne un nombre infini de chiffre
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
18 avril 2014 à 17:41
ben si ID donne 0 ... c'est que ta requête retourne 0.

Tu peux tester :
// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

//----------------------------------------------------
// Au cas ou... testes Une fois avec..et Une fois sans la ligne suivante :
 mysql_data_seek($req , 1);
//----------------------------------------------------

$row1 = mysql_fetch_assoc($req );
if ($row1){
  // Récupération de ID et conversion en INT
  $id = (int) ($row1["ID"]); 

 echo "<br><b> ID => </b>".$id."<br>" ;
 echo "<p><b> SQL = </b><br>";
 echo  $sql ;
 echo "<br> ROW1 = <br>";
 print_r($row1);
 echo "</p>";
}else{
 echo " Erreur ! ID ne vaut rien !!";
 echo "<p> SQL = <br>";
 echo  $sql ;
 echo "<br> ROW1 = <br>";
 print_r($row1);
 echo "</p>";
}



Et pour de qui est de i... infini... ben il t'en affiche au moins :1000000 (vu que c'est ce que tu as mis dans ta boucle...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
18 avril 2014 à 18:20
1. avec ou sans
 mysql_data_seek($req , 1);
ça me met
ID => 0

SQL =
SELECT (max(id)+1) AS ID FROM renseigner WHERE pseudo = ''
ROW1 =
Array ( [ID] => )
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
18 avril 2014 à 18:33
voici ce que ça m affiche maintenant .
ID => 3

SQL =
SELECT (max(i)+1) AS ID FROM renseigner WHERE pseudo = 'msi79'
ROW1 =
Array ( [ID] => 3 )
j'étais content de voire que c'est bon mais du coup plus d'insertion
voici mon code complet.
<?php
// on crée la requête SQL
// on crée la requête SQL
$sql = "SELECT (max(i)+1) AS ID
FROM renseigner
WHERE pseudo = '".$_SESSION['pseudo']."'
";

// on envoie la requête
$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

//----------------------------------------------------
// Au cas ou... testes Une fois avec..et Une fois sans la ligne suivante :
//mysql_data_seek($req , 1);
//----------------------------------------------------

$row1 = mysql_fetch_assoc($req );
if ($row1){
// Récupération de ID et conversion en INT
$id =(int)($row1["ID"]);

echo "<br><b> ID => </b>".$id."<br>" ;
echo "<p><b> SQL = </b><br>";
echo $sql ;
echo "<br> ROW1 = <br>";
print_r($row1);
echo "</p>";
}else{
echo " Erreur ! ID ne vaut rien !!";
echo "<p> SQL = <br>";
echo $sql ;
echo "<br> ROW1 = <br>";
print_r($row1);
echo "</p>";
}
if(isset($_POST['bouton_submit'])&& !empty($_POST['nbre']) && isset($id)){
$cat = strip_tags(trim($_POST['cat']));
for($i = $id ; $i <= 1000000; $i++){
echo $i;

if(isset($_FILES['img'.$i]) && $_FILES['img'.$i]['error'] == 0 && isset($_POST['nbre'])){
//elements pris en parametres
$size_max = 2097152;
$dossier = 'CSS3PhotoGallery/gallery/';
$ext_array = array('jpg', 'png', 'bmp', 'gif','jpeg','doc','csv','xlsx','rtf');
//donnees de $_FILES['']
$name = $_FILES['img'.$i]['name'];
$size = $_FILES['img'.$i]['size'];
$tmp = $_FILES['img'.$i]['tmp_name'];
$error = $_FILES['img'.$i]['error'];
$type_img = $_FILES['img'.$i]['type'];

//verifie s'il y a pas un fichier du meme nom qui a ete uploader
if(file_exists($dossier.$name)){
$erreur = '<div class="error2">un fichier du meme nom exite dejà</div>';
}
//on verifie la taille du fichier
if($size > $size_max){
$erreur = 'image trop lourde veuillez choisir une image de plus ou moins $size_max ko';
}
//on verifie si le fichier a ete mis dans le repertoire temporaire avec la fction is_uploaded_file
if(!is_uploaded_file($tmp)){
$erreur = 'le fichier introuvable';
}
// verification de l'extension
$ext_val = substr(strtolower( $name),strrpos(strtolower( $name), ".")+1);
if(!in_array($ext_val, $ext_array)){
$erreur = "le fichier n'est pas une image ";
}
//verifie si le nom du fichier est valide
if(preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name)){

$erreur = "nom de fichier invalide";
}
//avec move_uploaded_file verifie si le fichier a été deplacé le repertoire de destination
else if(!move_uploaded_file($tmp, $dossier.$name)){
$erreur = " impossible de copier le fichier";
}
if(isset($erreur)){
echo $erreur.'<br/>';

}
else if(!isset($erreur) ){


/*on insere le chemin vers le ficihier uploade*/
$fichier_choisi = $dossier.$name;
// on fait l'INSERT dans la base de données

//$sql= "INSERT INTO renseigner(fichier_choisi,id_victime) VALUES ('$fichier_choisi','$id_victime')";
$sql= "INSERT INTO renseigner(fichier_choisi,pseudo,i) VALUES ('$fichier_choisi','".$_SESSION['pseudo']."','$i')";
$result = mysql_query($sql) or die(mysql_error());
if (!$result) {
die('linsertion n a pas réussie !!! : ' . mysql_error());

}



}

}

}
}
?>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
18 avril 2014 à 20:26
j'étais content de voire que c'est bon mais du coup plus d'insertion
voici mon code complet.

Donc tu as bien ton $i ... ce qui signifie que ta question EST RÉSOLUE ....
Là... tu abordes une nouvelle discussion.
Merci de clôturer ce sujet et d'ouvrir une nouvelle discussion sur le forum.
0
Rejoignez-nous