Ajout d'un tableau dynamique en bdd
Fermé
ismael-ouatt
Messages postés
78
Date d'inscription
mercredi 18 novembre 2015
Statut
Membre
Dernière intervention
26 juillet 2018
-
1 déc. 2016 à 16:58
ismael-ouatt Messages postés 78 Date d'inscription mercredi 18 novembre 2015 Statut Membre Dernière intervention 26 juillet 2018 - 4 déc. 2016 à 13:45
ismael-ouatt Messages postés 78 Date d'inscription mercredi 18 novembre 2015 Statut Membre Dernière intervention 26 juillet 2018 - 4 déc. 2016 à 13:45
A voir également:
- Ajout d'un tableau dynamique en bdd
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier un tableau excel - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
2 réponses
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 735
1 déc. 2016 à 17:38
1 déc. 2016 à 17:38
Bonjour,
Déjà.. comme indiqué dans ta discussion précédente... pourquoi vouloir stocker le calcul en BDD alors qu'il ne s'agit que d'une soustraction .. et donc qu'une simple requete permet de connaitre le résultat....
Ensuite... tu mélanges l'ancienne extension MYSQL considérée comme obsolète... avec du PDO......
Je ne vois d'aillleurs pas dans ton code... le code qui te sert à te connecter à ta BDD.
regardes ici comment faire proprement: https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Déjà.. comme indiqué dans ta discussion précédente... pourquoi vouloir stocker le calcul en BDD alors qu'il ne s'agit que d'une soustraction .. et donc qu'une simple requete permet de connaitre le résultat....
Ensuite... tu mélanges l'ancienne extension MYSQL considérée comme obsolète... avec du PDO......
Je ne vois d'aillleurs pas dans ton code... le code qui te sert à te connecter à ta BDD.
regardes ici comment faire proprement: https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 735
2 déc. 2016 à 14:05
2 déc. 2016 à 14:05
Prenons les soucis un par un
Voir ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Le souci étant que tu as laissé des instructions mysql_.... dans ton code.
Alors que le reste est fait en PDO....
Une fois que tu auras correctement réécris le code... en retirant les appels à de vielles fonctions mysql (et dont que tu laissera tout en PDO)
tous ces messages d'erreur disparaîtront
Puis,
Même si cela est très certainement lié au précédents messages d'erreur (voir ci-dessus)... tu peux tout de même éviter ce genre de message en traitement correctement les array
voir ici :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
Pour finir :
Fais donc un ECHO de la requête ... puis teste la DIRECTEMENT dans ta BDD (via phpMyadmin par exemple)
: Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in .c:\..
Voir ceci :
https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top
Le souci étant que tu as laissé des instructions mysql_.... dans ton code.
Alors que le reste est fait en PDO....
Une fois que tu auras correctement réécris le code... en retirant les appels à de vielles fonctions mysql (et dont que tu laissera tout en PDO)
tous ces messages d'erreur disparaîtront
: Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in .c:\...
Warning: mysql_real_escape_string(): Acc�s refus� pour l'utilisateur: ''@'@localhost' (mot de passe: NON) in c:\...
Warning: mysql_real_escape_string(): A link to the server could not be established in C:\....
Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\.....
Warning: mysql_real_escape_string(): Acc�s refus� pour l'utilisateur: ''@'@localhost' (mot de passe: NON) in C:\.....
Warning: mysql_real_escape_string(): A link to the server could not be established in C:\....
Puis,
Notice: Undefined offset: 2 in C:\w.....
Même si cela est très certainement lié au précédents messages d'erreur (voir ci-dessus)... tu peux tout de même éviter ce genre de message en traitement correctement les array
voir ici :
https://forums.commentcamarche.net/forum/affich-37636387-php-notice-undefined-index
Pour finir :
Erreur :SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de '' � la ligne 1
Requete :INSERT INTO tableau(val_st,val_et)
Fais donc un ECHO de la requête ... puis teste la DIRECTEMENT dans ta BDD (via phpMyadmin par exemple)
ismael-ouatt
Messages postés
78
Date d'inscription
mercredi 18 novembre 2015
Statut
Membre
Dernière intervention
26 juillet 2018
1
Modifié par ismael-ouatt le 3/12/2016 à 11:21
Modifié par ismael-ouatt le 3/12/2016 à 11:21
en cherchant j'ai essayé de modifier mon code en mettant celui ci:
La il ne m'affiche plus d'erreur au chargement de la page mais l'orsque je rentre les données de façon pas à pas et que je valide il maffiche une erreur du genre
Notice: Undefined offset: 2 in C:\wamp64\www\tableau\index.php on line 24
ligne 24:
au départ j'avais mi "=" c'était la meme erreur, j'ai essaié de mettre un ".=" pour voir mais il me met la meme erreur. dans ma requete j'ai tout fait pour remplir tou les champ pour le moment puisque'il m'affichait des erreurs au chargement de la page du genre 'ecart' / 'id_operation' as not a default value. pour le moment, juste pour le test, j'ai inséré des donnée dans ces colonnes, si lecode marche je vais songer à le modifier
merci
$vst=array(); $ve=array(); $ecart=array(); $value = array(); $i = 0; while (isset($_POST['vst'][$i++])) { $vst[].=$_POST['vst'][$i]; } while (isset($_POST['ve'][$i++])) { $ve[].=$_POST['ve'][$i]; } while (isset($_POST['ve'][$i++])) { $ecart[].=$_POST['ecart'][$i]; } $data_vst=implode(";", $vst); $data_ve=implode(";", $ve); $data_ec=implode(";", $ecart); $sql = "INSERT INTO tableau(val_st,val_et,ecart,id_operation) VALUES (?,?,?,?) "; try{ $req=$bdd->prepare($sql); $req->execute(array($data_vst,$data_ve,$data_ec,'1')); }catch(Exception $e){ echo "Erreur :".$e->getMessage(); echo "<br>Requete :".$sql; }
La il ne m'affiche plus d'erreur au chargement de la page mais l'orsque je rentre les données de façon pas à pas et que je valide il maffiche une erreur du genre
Notice: Undefined offset: 2 in C:\wamp64\www\tableau\index.php on line 24
ligne 24:
$vst[].=$_POST['vst'][$i];
au départ j'avais mi "=" c'était la meme erreur, j'ai essaié de mettre un ".=" pour voir mais il me met la meme erreur. dans ma requete j'ai tout fait pour remplir tou les champ pour le moment puisque'il m'affichait des erreurs au chargement de la page du genre 'ecart' / 'id_operation' as not a default value. pour le moment, juste pour le test, j'ai inséré des donnée dans ces colonnes, si lecode marche je vais songer à le modifier
merci
jordane45
Messages postés
38427
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 février 2025
4 735
>
ismael-ouatt
Messages postés
78
Date d'inscription
mercredi 18 novembre 2015
Statut
Membre
Dernière intervention
26 juillet 2018
3 déc. 2016 à 12:14
3 déc. 2016 à 12:14
Où as tu vu que tu devais mettre un "." dans l''instruction
Tu fais n'importe quoi !
Donc...
Commence par remplacer tes blocs while par
Ensuite.. fais des print_r de ces variables pour que tu vois ce qu'elles contiennent et viens nous poster le code modifier + le résultat des print ici
while (isset($_POST['vst'][$i++])) { $vst[].=$_POST['vst'][$i]; }
Tu fais n'importe quoi !
Donc...
Commence par remplacer tes blocs while par
$vst = !empty($_POST['vst']) ? $_POST['vst'] : NULL; $ve = !empty($_POST['ve']) ? $_POST['ve'] : NULL; $ecart = !empty($_POST['ecart']) ? $_POST['ecart'] : NULL;
Ensuite.. fais des print_r de ces variables pour que tu vois ce qu'elles contiennent et viens nous poster le code modifier + le résultat des print ici
ismael-ouatt
Messages postés
78
Date d'inscription
mercredi 18 novembre 2015
Statut
Membre
Dernière intervention
26 juillet 2018
1
4 déc. 2016 à 13:45
4 déc. 2016 à 13:45
désolé pour le temps mis avant de répondre,
en entrant comme valeur 12 dans vst et 11.5 dans ve, j’obtiens comme résultat avec print_r:
Array
(
[0] =>
[1] => 12
)
Array
(
[0] =>
[1] => 11.5
)
lorsque j'ajoute une ligne de plus pour y mettre des valeurs, l'index [0] ne contient aucune valeur, il commence à partir de l'index [1]
merci
en entrant comme valeur 12 dans vst et 11.5 dans ve, j’obtiens comme résultat avec print_r:
Array
(
[0] =>
[1] => 12
)
Array
(
[0] =>
[1] => 11.5
)
lorsque j'ajoute une ligne de plus pour y mettre des valeurs, l'index [0] ne contient aucune valeur, il commence à partir de l'index [1]
merci
Modifié par ismael-ouatt le 1/12/2016 à 18:13
merci, je vais voir avec la gestion des erreur en attendant espérant avoir la reponse à ma question
Modifié par jordane45 le 1/12/2016 à 18:23
A la limite...ça serait plutôt comme ça :
Modifié par ismael-ouatt le 1/12/2016 à 18:52
Erreur :SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de '' � la ligne 1
Requete :INSERT INTO tableau(val_st,val_et) VALUES
je cherche toujours comment remedier à celà
pauvre débutant, ma tete est tellement surchargé avec la fatigue que je n'arrive plus à trouver aussi vite les solution pffffff
1 déc. 2016 à 19:28
En même temps... je ne connais pas mais
2 déc. 2016 à 13:29
je revien sur mon fameux code
voila d'abord desolé pour le $i++, ça m'avait echappé, c'est corigé mais malgré ma recherche toujour un message d'erreur au chargement de la page :
Erreur :SQLSTATE[42000]: Syntax error or access violation: 1064 Erreur de syntaxe pr�s de '' � la ligne 1
Requete :INSERT INTO tableau(val_st,val_et)
Quand je rentre un donnée et que je la valide avec submit on me signale plusieurs erreurs à ce niveau: $value[] = "('', '".mysql_real_escape_string($_POST['vst'][$i])."', '".mysql_real_escape_string($_POST['ve'][$i])."')";
: Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in .c:\...
Warning: mysql_real_escape_string(): Acc�s refus� pour l'utilisateur: ''@'@localhost' (mot de passe: NON) in c:\...
Warning: mysql_real_escape_string(): A link to the server could not be established in C:\....
Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\.....
Warning: mysql_real_escape_string(): Acc�s refus� pour l'utilisateur: ''@'@localhost' (mot de passe: NON) in C:\.....
Warning: mysql_real_escape_string(): A link to the server could not be established in C:\....
Notice: Undefined offset: 2 in C:\w.....
et ainsi de suite...
je crois que l'erreur doit etre au niveau de mysql_real_escape_string(), je cherche à mieux connetre cette methode pour voire l'erreur...