Problème d'inserion dans ma table

msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 20 avril 2014 à 01:21
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 - 22 avril 2014 à 12:07
Bonjour,
je sais pas pourquoi mais quand j'exécute ce code il n'y a pas d'i'nsertion.
voici le code
<?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());

}



}

}

}
}
?>

3 réponses

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
21 avril 2014 à 09:48
Bonjour.
Il n'y a pas d'insertion. ..
.. tu as testé ta requête en direct dans ta bdd ?
Tu as ajouté des ECHO dans ton code pour essayer de yrouvrr ce qui n'allait pas ?

C'est quelle partie du code qui ne fonctionne pas ?


0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
21 avril 2014 à 15:08
Bonjour et merci de me répondre .
voici ce qui ce passe avec mon code.

quand je vide la table renseigner et que j'effectue une insertion il n'a pas de problème tout se passe bien .

mais toute les prochaine insertions passent plus .


LA par exemple j'ai vidé la table et j'ai inseré 3 images . il a donc bien insertion des 3 images et j'obtiens bien :

ID => 4

SQL =
SELECT (max(i)+1) AS ID FROM renseigner WHERE pseudo = 'isabelle'
ROW1 =
Array ( [ID] => 4 )


mais toute les prochaines insertions échouent
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
21 avril 2014 à 23:39
mais toute les prochaine insertions passent plus .

NOUS NE POURRONS T'AIDER QUE SI TU PRENDS LA PEINE DE REPONDRE A TOUTES MES QUESTIONS !

- C'est à dire ???
- Tu as des messages d'erreurs ?
- Il se passe quoi dans ta BDD ?
- C'est QUELLE PARTIE DE TON CODE QUI POSE PROBLEME ???
- Tu as testé ta requête en direct dans ta bdd ?
- Tu as ajouté des ECHO dans ton code pour essayer de yrouvrr ce qui n'allait pas (fais voir le code avec ces Echo..) et dis nous ce que ça t'affiche ?
0
msi79 Messages postés 509 Date d'inscription lundi 24 août 2009 Statut Membre Dernière intervention 2 mai 2023 1
22 avril 2014 à 12:07
bonjour,
1. j'ai pas de message d'erreur.
2. dans la BDD lorsqu'elle est vide, le premier enregistrement passe . donc je crois qu'il n'y a pas de problème au niveau de la requête
$sql= "INSERT INTO renseigner(fichier_choisi,pseudo,i,date) VALUES ('$fichier_choisi','".$_SESSION['pseudo']."','$i',NOW())";
$result = mysql_query($sql) or die(mysql_error());
3. la partie du code que je soupçonne c'est bien ici:
 for($i =  $id ; $i <= 1000000; $i++){
surtout la
$i =  $id
a ce niveau voici ce dui s'affiche :
ID => 4
SQL =
SELECT (max(i)+1) AS ID FROM renseigner WHERE pseudo = 'isabelle'
ROW1 =
Array ( [ID] => 4 )
4. plus besoin de tester la BDD en directe puis que je dis que la première insertion passe bien
0
Rejoignez-nous