nouvelle question sur array()

Mammouth du PHP | 19672 Messages

03 oct. 2005, 11:41

N'allons pas plus loin, le problème est là: si le champ est en VARCHAR, il faut encadrerla valeur d'apostrophes, sinon, il sera lu comme un entier et ne sera pas inséré.

Donc le code de génération doit être modifié comme suit:
$sql = "INSERT INTO sommaire (id_journ,page,desc) VALUES ";
/* On ajoute les valeurs */
for($i = 0; $i<$nb_lignes; $i++)
{
    $sql .= "('". $id_new ."','".$tableau_1[$i]."','".$tableau_2[$i]."')";
    $sql .= ($i < ($nb_lignes - 1)) ? ", " : null;
}
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 18 Messages

03 oct. 2005, 11:53

apparement sa viendrait de la variable $desc
car si je l enleve et que je m en occupe pas
sa marche ..
/* On initialise la requête SQL */
$sql = "INSERT INTO sommaire (id_journ,page) VALUES ";
/* On ajoute les valeurs */
for($i = 0; $i<$nb_lignes; $i++)
{
    $sql .= "($id_new,'".$tableau_1[$i]."')";
    $sql .= ($i < ($nb_lignes - 1)) ? ", " : null;
}
là il m insere bien

Code : Tout sélectionner

Requete generee:INSERT INTO sommaire (id_journ,page) VALUES (64,'page 1'), (64,'page 2')

Eléphanteau du PHP | 18 Messages

03 oct. 2005, 11:56

N'allons pas plus loin, le problème est là: si le champ est en VARCHAR, il faut encadrerla valeur d'apostrophes, sinon, il sera lu comme un entier et ne sera pas inséré.

Donc le code de génération doit être modifié comme suit:
$sql = "INSERT INTO sommaire (id_journ,page,desc) VALUES ";
/* On ajoute les valeurs */
for($i = 0; $i<$nb_lignes; $i++)
{
    $sql .= "('". $id_new ."','".$tableau_1[$i]."','".$tableau_2[$i]."')";
    $sql .= ($i < ($nb_lignes - 1)) ? ", " : null;
}
je viens d'essayer et ..

Code : Tout sélectionner

Requete generee:INSERT INTO sommaire (id_journ,page,desc) VALUES ('65','page 1','aaa'), ('65','page 2','bbb') Erreur d'insertion : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'desc) VALUES ('65','page 1','aaa'), ('65','page 2','bbb')' at line 1
sa m angoisse la :(

Mammouth du PHP | 19672 Messages

03 oct. 2005, 11:57

:shock: C'est quand même pas normal et ça ne règle pas le problème si tu ne peux pas insérer de texte.... Il doit sûrement y avoir une boulette ailleurs, j'en suis convaincu, mais quoi, mystère :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 oct. 2005, 12:00

Je viens d'arriver et je n'ai pas suivi tout le post mais selon le message d'erreur, le problème se situe au niveau de

Code : Tout sélectionner

(id_journ,page,desc)
est-ce que tu es sûr de la syntaxe des champs ???
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 18 Messages

03 oct. 2005, 12:08

oui zeus, absolument, c est bien la 1ere chose que j ai verifié et re re re re verifié :)

je suis pantois

@ cyrano : si tu veux te pencher sur le bleme en peu plus en profondeur, je t envoie les accés par mp .. je t en serai trés reconnaissant .. car j ai beau chercher une autre maniere de faire , j en trouve pas ...

suis dépité la ...

Mammouth du PHP | 19672 Messages

03 oct. 2005, 12:11

Envoie toujours, mais je ne promets rien :?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

03 oct. 2005, 12:59

Bon, la solution, un peu dingue, mais ça a réglé le problème:

Il faut protéger les noms de la table et celui des champs avec des `

La requête de base devient donc:
$sql = "INSERT INTO `sommaire` ( `id_journ` , `page` , `desc` ) VALUES ";
Problème résolu :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: