Problème dans ma boucle [Résolu]

Signaler
Messages postés
500
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
13 avril 2021
-
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
-
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

Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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++){
....


Messages postés
500
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
13 avril 2021
1
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"]
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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
Messages postés
500
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
13 avril 2021
1
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
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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...)
Messages postés
500
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
13 avril 2021
1
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] => )
Messages postés
500
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
13 avril 2021
1
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());

}



}

}

}
}
?>
Messages postés
32986
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
18 juin 2021
351
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.