Insert into ne fonctionne pas
Résolu/Fermé
christian820
Messages postés
12
Date d'inscription
lundi 13 août 2012
Statut
Membre
Dernière intervention
15 novembre 2015
-
22 août 2012 à 22:59
Utilisateur anonyme - 24 août 2012 à 14:31
Utilisateur anonyme - 24 août 2012 à 14:31
A voir également:
- Insert into ne fonctionne pas
- Touche insert - Guide
- Disk boot failure insert system disk and press enter - Guide
- Reboot and select proper boot device or insert boot media in selected boot device and press a key - Forum Windows
- Accéder à la fonction secondaire "insert" de ma touche "Delete" - Forum PC portable
- Insert boot disk and press any key ✓ - Forum Windows
12 réponses
epitale
Messages postés
3943
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
27 octobre 2017
915
22 août 2012 à 23:10
22 août 2012 à 23:10
bonsoir christian820,
pas si simple de tout suivre mais respectes tu bien :
$req = "INSERT INTO nomtable (nomchamp1, ch2, ch3)
VALUES ( '$valpourch1', '$valch2', '$valch3') " ;
pas si simple de tout suivre mais respectes tu bien :
$req = "INSERT INTO nomtable (nomchamp1, ch2, ch3)
VALUES ( '$valpourch1', '$valch2', '$valch3') " ;
Webster95
Messages postés
553
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
9 juillet 2013
142
Modifié par Webster95 le 23/08/2012 à 01:39
Modifié par Webster95 le 23/08/2012 à 01:39
une petite correction s'impose ici:
Dans la requéte VALUES est appelé, mais pas VALUE !
"Le meilleur antivirus reste l'utilisateur"
Dans la requéte VALUES est appelé, mais pas VALUE !
$req="INSERT INTO actes VALUES('','".$TypeActe."', ---------------------------------------- '".$PrenomMereConjoint."','".$PhotoActe."')";
"Le meilleur antivirus reste l'utilisateur"
christian820
Messages postés
12
Date d'inscription
lundi 13 août 2012
Statut
Membre
Dernière intervention
15 novembre 2015
1
23 août 2012 à 09:01
23 août 2012 à 09:01
Bonjour Webster95,
Merci pour ta réponse.
Effectivement, il y avait cette faute!
Je l'ai corrigée, et j'ai toujours le même résultat.
Christian
Merci pour ta réponse.
Effectivement, il y avait cette faute!
Je l'ai corrigée, et j'ai toujours le même résultat.
Christian
Utilisateur anonyme
23 août 2012 à 10:24
23 août 2012 à 10:24
Bonjour
Tu ne te connectes pas correctement à ton serveur, et tu ne sélectionnes pas la base de données !
Tu as dû reprendre un code destiné aux fonctions mysqli et non pas mysql
Tu ne te connectes pas correctement à ton serveur, et tu ne sélectionnes pas la base de données !
mysql_connect("localhost", "root", "") or die (mysql_error()); mysql_select_db("chrisvia") or die (mysql_error());
Tu as dû reprendre un code destiné aux fonctions mysqli et non pas mysql
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Le Père,
Merci pour ta réponse,
J'ai modifié le script de connexion au serveur, mai j'ai toujours le même problème . J'ai aucun message de non connexion au serveur.
Pour voir, j'ai ajouté un echo juste entre le while et la requête insert,
echo $TypeActe, $DateActe, $Nom, $Prenom, ......... ;
et il m'affiche la première ligne du fichier (qui en contient 14).
Je nage complètement!
Christian
Merci pour ta réponse,
J'ai modifié le script de connexion au serveur, mai j'ai toujours le même problème . J'ai aucun message de non connexion au serveur.
Pour voir, j'ai ajouté un echo juste entre le while et la requête insert,
echo $TypeActe, $DateActe, $Nom, $Prenom, ......... ;
et il m'affiche la première ligne du fichier (qui en contient 14).
Je nage complètement!
Christian
Webster95
Messages postés
553
Date d'inscription
lundi 5 novembre 2007
Statut
Membre
Dernière intervention
9 juillet 2013
142
23 août 2012 à 11:18
23 août 2012 à 11:18
Essaye de faire un echo de ta requete:
Ensuite, copie cette requete sur PhpMyAdmin et regarde l'erreur que tu retourne MySQL
echo $req;
Ensuite, copie cette requete sur PhpMyAdmin et regarde l'erreur que tu retourne MySQL
Utilisateur anonyme
23 août 2012 à 11:43
23 août 2012 à 11:43
C'est normal que tu ne voies que la première ligne
Tu fais une seule fois le $champ=explode("\t",$ligne); : tu ne le refais pas à chaque fois que tu lis une ligne ! donc $champ[0], etc... ne changent jamais.
D'ailleurs, pourquoi lire une première ligne en dehors de la boucle et les autres dans la boucle ? La logique m'échappe
De même, pourquoi faire le INSERT qu'après avoir tout lu ? tu ne vas insérer que la dernière ligne comme ça.
Tu fais une seule fois le $champ=explode("\t",$ligne); : tu ne le refais pas à chaque fois que tu lis une ligne ! donc $champ[0], etc... ne changent jamais.
D'ailleurs, pourquoi lire une première ligne en dehors de la boucle et les autres dans la boucle ? La logique m'échappe
De même, pourquoi faire le INSERT qu'après avoir tout lu ? tu ne vas insérer que la dernière ligne comme ça.
Le pere,
Merci pour tes réponses.
La connection à la base nese faisait pas suite à une virgule manquante entre deux champs values; problème détecté grace à ta methode .
Pour le reste, problème.
Si j'ai bien compris, tu mets $champ=explode("\t",$ligne); après l'accolade ouvante du while et le insezrt into avant l'accolade fermante .
J'ai testé et j'obtiens lo'insertion de ... 14 fois la preliere ligne! (le fichier à traiter contient 14 lignes).
J'ai bataillé tout l'après-midi la-dessus, revu la doc, mais je suis dans l'impasse.
Je pense à une incrémentation du $champ, mais j'ai pas trouvé la solution.
Merci de ton aide.
Christian
Merci pour tes réponses.
La connection à la base nese faisait pas suite à une virgule manquante entre deux champs values; problème détecté grace à ta methode .
Pour le reste, problème.
Si j'ai bien compris, tu mets $champ=explode("\t",$ligne); après l'accolade ouvante du while et le insezrt into avant l'accolade fermante .
J'ai testé et j'obtiens lo'insertion de ... 14 fois la preliere ligne! (le fichier à traiter contient 14 lignes).
J'ai bataillé tout l'après-midi la-dessus, revu la doc, mais je suis dans l'impasse.
Je pense à une incrémentation du $champ, mais j'ai pas trouvé la solution.
Merci de ton aide.
Christian
Utilisateur anonyme
23 août 2012 à 22:59
23 août 2012 à 22:59
La connection à la base nese faisait pas suite à une virgule manquante entre deux champs values; problème détecté grace à ta methode .
Il n'y a aucun champ "values" dans la connexion, je ne vois pas de quoi tu parles.
j'obtiens lo'insertion de ... 14 fois la preliere ligne! Tu es désespérant... Tu ne comprends donc vraiment pas ce que tu écris ?
Le $champ=explode("\t",$ligne); te redonne 14 fois la même chose parce que tu ne modifies jamais la valeur de $ligne. Donc chaque fois que tu l' "explodes", tu retrouves la même chose.
Quand tu lis ta ligne avec fgets, si tu ne mets pas $ligne=fgets..., le résultat de de la lecture est simplement jeté à la poubelle. Il faut mettre le résultat de la lecture dans $ligne pour avoir effectivement la nouvelle ligne à chaque lecture et en faire un explode pour récupérer les morceaux
Il n'y a aucun champ "values" dans la connexion, je ne vois pas de quoi tu parles.
j'obtiens lo'insertion de ... 14 fois la preliere ligne! Tu es désespérant... Tu ne comprends donc vraiment pas ce que tu écris ?
Le $champ=explode("\t",$ligne); te redonne 14 fois la même chose parce que tu ne modifies jamais la valeur de $ligne. Donc chaque fois que tu l' "explodes", tu retrouves la même chose.
Quand tu lis ta ligne avec fgets, si tu ne mets pas $ligne=fgets..., le résultat de de la lecture est simplement jeté à la poubelle. Il faut mettre le résultat de la lecture dans $ligne pour avoir effectivement la nouvelle ligne à chaque lecture et en faire un explode pour récupérer les morceaux
christian820
Messages postés
12
Date d'inscription
lundi 13 août 2012
Statut
Membre
Dernière intervention
15 novembre 2015
1
24 août 2012 à 10:49
24 août 2012 à 10:49
Bonjour le pere,
bon, je ne comprends pas tout, mais j'essaie...
Voilà le code que j'ai modifié:
$lecture = fopen($file,"r");
while (!feof($lecture))
{
$ligne=fgets($lecture);
$champ=explode("\t",$ligne);
$TypeActe=$champ[1];
if ($TypeActe=="")
{
$TypeActe="-";
}
$TypeActe=addslashes($TypeActe);
etc ..............................
mysql_query($req="INSERT INTO actes(TypeActe, DateActe, Nom, ........... PhotoActe) VALUES('".$TypeActe."','".$DateActe."', .....................................'".$PhotoActe."')");
}
Là, les 14 enregistrements s'insèrent bien dans ma base, mais j'ai le message suivant:
Notice: Undefined offset: 1 in C:\wamp\www\Chrisvia\www\GFH\InsereActes.php on line 50
Notice: Undefined offset: 2 in C:\wamp\www\Chrisvia\www\GFH\InsereActes.php on line 57
...................................................... et jusqu'à offset 26 (le fichier à lire cotient 26 champs).
Il s'insère également une ligne vide en fin de fichier: est-ce la cause? Comment l'éviter!
Comment se fait-il qu'il insère bien les données dans leur champ respectif et qu'il me dise qu'il ne reconnait pas l'offset?
La requête mise en sql dans phpmyadmin m'indique une erreur 1024: alors que je n'ai pas défini de message d'erreur particulier.
Donc, on avance doucement!
Christian
bon, je ne comprends pas tout, mais j'essaie...
Voilà le code que j'ai modifié:
$lecture = fopen($file,"r");
while (!feof($lecture))
{
$ligne=fgets($lecture);
$champ=explode("\t",$ligne);
$TypeActe=$champ[1];
if ($TypeActe=="")
{
$TypeActe="-";
}
$TypeActe=addslashes($TypeActe);
etc ..............................
mysql_query($req="INSERT INTO actes(TypeActe, DateActe, Nom, ........... PhotoActe) VALUES('".$TypeActe."','".$DateActe."', .....................................'".$PhotoActe."')");
}
Là, les 14 enregistrements s'insèrent bien dans ma base, mais j'ai le message suivant:
Notice: Undefined offset: 1 in C:\wamp\www\Chrisvia\www\GFH\InsereActes.php on line 50
Notice: Undefined offset: 2 in C:\wamp\www\Chrisvia\www\GFH\InsereActes.php on line 57
...................................................... et jusqu'à offset 26 (le fichier à lire cotient 26 champs).
Il s'insère également une ligne vide en fin de fichier: est-ce la cause? Comment l'éviter!
Comment se fait-il qu'il insère bien les données dans leur champ respectif et qu'il me dise qu'il ne reconnait pas l'offset?
La requête mise en sql dans phpmyadmin m'indique une erreur 1024: alors que je n'ai pas défini de message d'erreur particulier.
Donc, on avance doucement!
Christian
Utilisateur anonyme
24 août 2012 à 11:22
24 août 2012 à 11:22
Il y a probablement une ligne vide à la fin de ton fichier.
Quand tu fais un 'explode', de cette dernière ligne, tu ne retrouves pas tes 26 champs
D'où les index non définis, et sans doute un problème dans la requête (même si je ne vois pas lequel)
Pour commencer, éliminer les lignes vides :
Quand tu fais un 'explode', de cette dernière ligne, tu ne retrouves pas tes 26 champs
D'où les index non définis, et sans doute un problème dans la requête (même si je ne vois pas lequel)
Pour commencer, éliminer les lignes vides :
$ligne=fgets($lecture); $champ=explode("\t",$ligne); if (count($champ)!=26) continue; // 'saute' les lignes qui n'ont pas le bon nombre de champs
christian820
Messages postés
12
Date d'inscription
lundi 13 août 2012
Statut
Membre
Dernière intervention
15 novembre 2015
1
24 août 2012 à 14:28
24 août 2012 à 14:28
Bonjour le pere,
C'est parfait!
Merci pour ton aide.
Christian
C'est parfait!
Merci pour ton aide.
Christian