PHP : pb insertion SQL sur données calculées [Résolu/Fermé]
A voir également:
- PHP : pb insertion SQL sur données calculées
- PHP : pb insertion SQL sur données calculées ✓ - Forum - PHP
- Insert Sql base de données ✓ - Forum - LibreOffice / OpenOffice
- [PHP/SQL] Plusieurs données dans même champ. ✓ - Forum - PHP
- [PHP=>XML]Insertion des données dans XML ✓ - Forum - PHP
- Insertion variable PHP dans base SQL ✓ - Forum - PHP
1 réponse
dariumis
- Messages postés
- 571
- Date d'inscription
- mardi 16 mars 2010
- Statut
- Membre
- Dernière intervention
- 18 avril 2018
Salut, mais tes deux variables sont des chaines de caractères dans ta base??? Le seul truc possible que je vois, serait que dans ton select il ne trouve pas $_POST['parent'] donc déjà je ferais un echo de la requête select et je l'executerais direct dans la base pour voir ce quelle retourne. Puis je ferais un echo de: $attach_left et $attach_top juste apres ces ligne pour voir si elle existent bien.
$attach_top = intval($attach['top'])+100; $attach_left = intval($attach['left'])+300;
Merci !
Si si, le programme va jusqu'au bout et l'insert se fait.
J'ai ajouté le intval parce que j'ai eu un doute sur le retour - à savoir retour de chaîne de caractères de sql - mais l'effet au final est justement sans effet - avec ou sans, ça change rien ! :-(
Le 300 (width) et 50 (height), ce sont des données que je définie en dur - mais qui par la suite seront traités comme left et top.
Je pense que mon problème vient de la BDD - je suis très surpris de devoir passer les paramètres left et top de l'insert avec des quotes en italiques. (je ne sais pas comment ça s'appelle). :-)
Merci d'avance.
Yann.
Je suis convaincu que si tu met ça:
Le résultat que tu obtiendra seras 150 et 50 au lieu du 300, 100 que tu obtiens généralement, et tous ça car en fait $attach['left'] et $attach['top'], ne contiennent rien, donc ça peut venir soit que tu récupère mal tes variable avec cette ligne (moi j'utilise PDO) :
soit que ton select ne retourne rien, pour le vérifier faut faire un echo du select et l'éxecuter dans phpmyadmin si tu utilise MySQL.
Edit ou alors ton insert ne s'execute pas et tu t'en rend pas compte car si dans ta requête "300","50" étaient des chaines de caractère inséré en dure elles se présenterais de cette manière.
.... \'"300"\',\'"50"\' .....
Pareil, fais un echo de ton insert et execute le dans phpmyadmin.
Je sais pas ce que c'est ?
J'ai recréé la table en BDD et remplaçant "left" par "gauche" et "top" par "haut".
Je pense que left était mal interprété dans la requête - il en faisait une fonction et non une colonne. Et depuis, ça marche !! :-)
Merci en tout cas !
@+
Yann.