{MySQL} Probléme partie admin
Fermé
Majora2089
-
26 juin 2009 à 16:47
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 - 30 juin 2009 à 22:52
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 - 30 juin 2009 à 22:52
A voir également:
- {MySQL} Probléme partie admin
- Livebox admin - Guide
- Mysql community server - Télécharger - Bases de données
- Partie entière en c ✓ - Forum C
- Cmd admin - Guide
- Http //easy wifi.config admin ✓ - Forum Réseau
18 réponses
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
28 juin 2009 à 17:20
28 juin 2009 à 17:20
Hello, re
Je trouve que ya un souci dans le code SQL qui est passé à la base de données.
Il faut rajouter des '' autour des noms des champs dans le code php : `article`,`type`,...
$sql = "INSERT INTO osarticle (article, type, prix, photo, slogan, intro, presentation, caracteristique, option, titrevideo, video, genre)
Pareil pour les valeurs.
On est toujours sur un problème de requete SQL.
Ici
( '$article', '$type', '$prix', '$photo', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre',)
Il y a une virgule à la fin qui ne sert à rien...
Re-regarde attentivement ton code SQL. L'astuce tu l'exécute directe en base et ensuite tu recopie de code formaté en PHP. Ainsi tu t'assure qu'il n'est pas source d'erreur.
Je trouve que ya un souci dans le code SQL qui est passé à la base de données.
Il faut rajouter des '' autour des noms des champs dans le code php : `article`,`type`,...
$sql = "INSERT INTO osarticle (article, type, prix, photo, slogan, intro, presentation, caracteristique, option, titrevideo, video, genre)
Pareil pour les valeurs.
On est toujours sur un problème de requete SQL.
Ici
( '$article', '$type', '$prix', '$photo', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre',)
Il y a une virgule à la fin qui ne sert à rien...
Re-regarde attentivement ton code SQL. L'astuce tu l'exécute directe en base et ensuite tu recopie de code formaté en PHP. Ainsi tu t'assure qu'il n'est pas source d'erreur.
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
29 juin 2009 à 10:37
29 juin 2009 à 10:37
Toujours pas compris.
Quand tu programme PHP tu ne peux pas lui dire de faire
$sql = "INSERT INTO osarticle (article, type, prix, slogan, intro, presentation, caracteristique, option, titrevideo, video, genre) VALUES ("", "$article", "$type", "$prix", "$slogan", "$intro", "$presentation", "$caracteristique", "$option", "$titrevideo", "$video", "$genre")" ;
--> "$article" est déjà encapusulé dans "".
Il faut mettre comme j'ai fait ci-dessous. Je ne l'ai pas testé parce que je n'ai pas l'environnement. Mais c'est une bonne syntaxe.
De plus, ton 1er champ est auto incrémenté, ce n'est pas la peine de lui proposer une valeur "" ...
$sql = "INSERT INTO osarticle (`article`, `type`, `prix`, `slogan`, `intro`, `presentation`, `caracteristique`, `option`, `titrevideo`, `video`, `genre`) VALUES ('$article', '$type', '$prix', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre')" ;
Quand tu programme PHP tu ne peux pas lui dire de faire
$sql = "INSERT INTO osarticle (article, type, prix, slogan, intro, presentation, caracteristique, option, titrevideo, video, genre) VALUES ("", "$article", "$type", "$prix", "$slogan", "$intro", "$presentation", "$caracteristique", "$option", "$titrevideo", "$video", "$genre")" ;
--> "$article" est déjà encapusulé dans "".
Il faut mettre comme j'ai fait ci-dessous. Je ne l'ai pas testé parce que je n'ai pas l'environnement. Mais c'est une bonne syntaxe.
De plus, ton 1er champ est auto incrémenté, ce n'est pas la peine de lui proposer une valeur "" ...
$sql = "INSERT INTO osarticle (`article`, `type`, `prix`, `slogan`, `intro`, `presentation`, `caracteristique`, `option`, `titrevideo`, `video`, `genre`) VALUES ('$article', '$type', '$prix', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre')" ;
Christounet
Messages postés
1264
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
29 juillet 2010
1 388
26 juin 2009 à 17:10
26 juin 2009 à 17:10
Bonjour,
Peux-tu rajouter
Merci
A plus
Peux-tu rajouter
OR DIE('Erreur INSERT ' . mysql_error());après ton mysql_query afin de me faire connaître l'erreur sql afin de pouvoir mieux t'aider.
Merci
A plus
Bonsoir, merci pour ta réponse Christounet, donc j'ai mis :
Et ça me donne ceci (line73 est la ligne du OR DIE) :
Parse error: syntax error, unexpected T_LOGICAL_OR in /homez.145/ezakweb/www/stuff/admin/index.php on line 73
Sinon j'ai essayé comme ceci :
Et ça ne donne absolument rien, j'ai continué à chercher de mon coté mais je ne voit pas du tout d'où ça peux venir...
Cordialement Majora2089
mysql_query("INSERT INTO osarticle VALUES('', '$article', '$type', '$prix', '$photo', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre')") ; OR DIE('Erreur INSERT ' . mysql_error());
Et ça me donne ceci (line73 est la ligne du OR DIE) :
Parse error: syntax error, unexpected T_LOGICAL_OR in /homez.145/ezakweb/www/stuff/admin/index.php on line 73
Sinon j'ai essayé comme ceci :
mysql_query("INSERT INTO osarticle VALUES('', '$article', '$type', '$prix', '$photo', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre')") or die ("erreur insert ".mysql_error());
Et ça ne donne absolument rien, j'ai continué à chercher de mon coté mais je ne voit pas du tout d'où ça peux venir...
Cordialement Majora2089
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
27 juin 2009 à 10:47
27 juin 2009 à 10:47
Hello,
il y a pas mal d'infos dans le post oui. Je n'ai pa tout lu..
Ce que je note déjà c'est ce bout de code
mysql_query("INSERT INTO osarticle VALUES('', '$article', '$type', '$prix', '$photo', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre')");
T'es-tu assuré(e) que les champs proposés en INSERTION existent et nommés pareil?
Cette méthode n'INSERT INTO n'est pas trop recommandée (je la trouve peu performante).
Parce que tu ne lui dit pas quels champs sont concernés donc il te rentre tout à la suite. Il suffit qu'il en manque un ou qu'un se soit rajouté, il faut sans arrêt recommencer ce script.
Un début de réponse peut etre...
il y a pas mal d'infos dans le post oui. Je n'ai pa tout lu..
Ce que je note déjà c'est ce bout de code
mysql_query("INSERT INTO osarticle VALUES('', '$article', '$type', '$prix', '$photo', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre')");
T'es-tu assuré(e) que les champs proposés en INSERTION existent et nommés pareil?
Cette méthode n'INSERT INTO n'est pas trop recommandée (je la trouve peu performante).
Parce que tu ne lui dit pas quels champs sont concernés donc il te rentre tout à la suite. Il suffit qu'il en manque un ou qu'un se soit rajouté, il faut sans arrêt recommencer ce script.
Un début de réponse peut etre...
Oui peut être même la solution, je regarde sur ma base de donnée et mon code si c'est bon, a part INSERT INTO tu me conseil d'utilisé quoi ?
Je reviens rapidement vers vous, tout est bon dans ma base de donnée, quand j'insère des donnée depuis la bdd ça se met nikel sur le site, mais en faite c'est vraiment la partie Admin qui déconne, le nom des champs est correct aucune erreur de frappe ou de faute d'orthographe.
Le probleme vient vraiment du code en lui même, j'ai fait un code rapide pour supprimer des ligne de la BDD et ça marche nikel :
<?php mysql_connect("xxxxxxxx", "xxxxxx", "xxxxxx"); mysql_select_db("xxxxxxxx"); mysql_query("DELETE FROM osarticle WHERE id='$_POST[deleteid]' "); mysql_close(); ?> <div id="menu-centre"> <center> <h1>Original Stuff</h1> <h3>Administration</h3> </center> <div id="liens-menu"> <?php include ('liens-menu.php') ; ?> </div> <div class="menu-centre-gauche"> <h2>Supprimer un Article :</h2> <form action="index-supprimer.php" method="post"> <p> ID : <input type="text" name="deleteid" /><br /><br /> <input type="submit" value="Envoyer" /> <input type="reset" value="Reset" /> </p> </form>
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
27 juin 2009 à 12:13
27 juin 2009 à 12:13
Je distingue 2 codes qui peuvent avoir des problèmes :
Celui de la requete et celui du programme php.
Etape par étape pour débeuguer, teste le code SQL avec une clé bidon. Si ok, teste la valeur de la variable $_POST[deleteid] qui est surement retounée par une autre requete SQL de type SELECT.
Vu que c'est un $_POST[], vérifie que la valeur est bien récupérée.
Et enfin teste ton programme PHP point par point en commentant les parties actives d'exécution.
Le tout est d'identifier où ça coince. En général donc, je vérifie la partie côté BDD et ensuite celle coté programme.
Celui de la requete et celui du programme php.
Etape par étape pour débeuguer, teste le code SQL avec une clé bidon. Si ok, teste la valeur de la variable $_POST[deleteid] qui est surement retounée par une autre requete SQL de type SELECT.
Vu que c'est un $_POST[], vérifie que la valeur est bien récupérée.
Et enfin teste ton programme PHP point par point en commentant les parties actives d'exécution.
Le tout est d'identifier où ça coince. En général donc, je vérifie la partie côté BDD et ensuite celle coté programme.
Bonjour, je viens vous voir car la recherche de mon erreur avance petit à petit :
J'ai retouché mon code, voici l'erreur qu'il m'affiche :
et voici mon code sur deux pages :
insertion.php :
insertion2.php :
Voila merci encore de votre aide !
Cordialement Majora
J'ai retouché mon code, voici l'erreur qu'il m'affiche :
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 'option, titrevideo, video, genre) VALUES ( '1', '2', '3', '', '4', '' at line 1
et voici mon code sur deux pages :
insertion.php :
<form name="insertion" action="insertion2.php" method="post"> Nom de l'Article : <input type="text" name="article" /><br /> Type : <input type="text" name="type" /><br /> Prix : <input type="text" name="prix" />€<br /><br /><br /> Photo (160*120px) : <br /><input type="file" accept="image/jpeg" name="photo" value="Photo"/><br /><br /><br /> Slogan : <br /><textarea cols="60" name="slogan" rows="2"></textarea><br /> Texte d'intro : <br /><textarea cols="60" name="intro" rows="5"></textarea><br /><br /> <h2>Présentation :</h2> <textarea cols="73" name="presentation" rows="10"></textarea><br /><br /> <h2>Caracteristique :</h2> <textarea cols="73" name="caracteristique" rows="10"></textarea><br /><br /><br /> <h2>Options :</h2><br /> <textarea cols="73" name="option" rows="10"></textarea><br /><br /> <h2>Video :</h2> Titre Video : <input type="text" name="titrevideo" /><br /><br /> ID Video : <input type="text" name="video" /><br /><br /> <input type="radio" name="genre" value="en" />Anglais <br /> <input type="radio" name="genre" value="fr" />Français <br /> <input type="radio" name="genre" value="jap" />Japonnais <br /> <input type="radio" name="genre" value="autres" />Autres... <br /> <br /><br /> <input type="submit" value="Envoyer" /> <input type="reset" value="Supprimer" /> </form>
insertion2.php :
<?php //connection au serveur $cnx = mysql_connect( "XXXXX", "XXXXXX", "XXXXX" ) ; //sélection de la base de données: $db = mysql_select_db( "XXXXXXXXX" ) ; $article = htmlentities($_POST['article']); $type = htmlentities($_POST['type']); $prix = htmlentities($_POST['prix']); $photo = htmlentities($_POST['photo']); $slogan = htmlentities($_POST['slogan']); $intro = htmlentities($_POST['intro']); $presentation = htmlentities($_POST['presentation']); $caracteristique = htmlentities($_POST['caracteristique']); $option = htmlentities($_POST['option']); $titrevideo = htmlentities($_POST['titrevideo']); $video = htmlentities($_POST['video']); $genre = htmlentities($_POST['genre']); //création de la requête SQL: $sql = "INSERT INTO osarticle (article, type, prix, photo, slogan, intro, presentation, caracteristique, option, titrevideo, video, genre) VALUES ( '$article', '$type', '$prix', '$photo', '$slogan', '$intro', '$presentation', '$caracteristique', '$option', '$titrevideo', '$video', '$genre',) " ; //exécution de la requête SQL: $requete = mysql_query($sql, $cnx) or die( mysql_error() ) ; //affichage des résultats, pour savoir si l'insertion a marchée: if($requete) { echo("L'insertion a été correctement effectuée") ; } else { echo("L'insertion à échouée") ; } ?>
Voila merci encore de votre aide !
Cordialement Majora
Petite précision dans le code d'erreur :
'1', '2', '3', '', '4', '' correspond à Article, type, prix, slogan
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 'option, titrevideo, video, genre) VALUES ( '1', '2', '3', '', '4', '' at line 1
'1', '2', '3', '', '4', '' correspond à Article, type, prix, slogan
On avance, on avance Moderno voici le résultat :
J'ai rajouter les guillemets comme tu m'as dit de faire :
Et ça me donne cette réponse, ensuite j'ai executé la requete depuis ma base de donnée et sa me donne cette réponse :
Je te remerci vraiment pour le temps que tu me conssacre c'est vraiment super ! Je te remerci
J'ai rajouter les guillemets comme tu m'as dit de faire :
Parse error: syntax error, unexpected T_VARIABLE in /homez.145/ezakweb/www/stuff/admin/insertion2.php on line 23
Et ça me donne cette réponse, ensuite j'ai executé la requete depuis ma base de donnée et sa me donne cette réponse :
Erreur requête SQL: INSERT INTO osarticle( article, TYPE , prix, photo, slogan, intro, presentation, caracteristique, OPTION , titrevideo, video, genre ) VALUES ( "$article", "$type", "$prix", "$photo", "$slogan", "$intro", "$presentation", "$caracteristique", "$option", "$titrevideo", "$video", "$genre" ) MySQL a répondu: #1064 - 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 'option, titrevideo, video, genre) VALUES ( "$article", "$type", "$p' at line 1
Je te remerci vraiment pour le temps que tu me conssacre c'est vraiment super ! Je te remerci
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
28 juin 2009 à 22:21
28 juin 2009 à 22:21
Il ne me semble pas que ce soit corrigé.
Tous les requetes sont pas bonnes :
INSERT INTO osarticle( article,
TYPE , prix, photo, slogan, intro, presentation, caracteristique,
OPTION , titrevideo, video, genre )
VALUES (
"$article", "$type", "$prix", "$photo", "$slogan", "$intro", "$presentation", "$caracteristique", "$option", "$titrevideo", "$video", "$genre"
)
Tu arrives à insérer en base de données tel que c'est rédigé ?
Ensuite T_Variable indique je crois que tu fait référence à une variable qui n'existe pas.
Je penses que tu peux me copier intégralement le code de insertion2.php le souci vient de là.
Je repose la condition de validation, tester les requetes en bases. Tant que c'est pas validé, c'est que la syntaxe pose problème.
Pas de problème pour aider. J'ai de l'expérience je partage. Je ne suis pas expert non plus.
a toute
Tous les requetes sont pas bonnes :
INSERT INTO osarticle( article,
TYPE , prix, photo, slogan, intro, presentation, caracteristique,
OPTION , titrevideo, video, genre )
VALUES (
"$article", "$type", "$prix", "$photo", "$slogan", "$intro", "$presentation", "$caracteristique", "$option", "$titrevideo", "$video", "$genre"
)
Tu arrives à insérer en base de données tel que c'est rédigé ?
Ensuite T_Variable indique je crois que tu fait référence à une variable qui n'existe pas.
Je penses que tu peux me copier intégralement le code de insertion2.php le souci vient de là.
Je repose la condition de validation, tester les requetes en bases. Tant que c'est pas validé, c'est que la syntaxe pose problème.
Pas de problème pour aider. J'ai de l'expérience je partage. Je ne suis pas expert non plus.
a toute
Alors je pense avoir à moitié trouvé le probleme, alors pour le nom des champs dans
J'ai rajouté ceci dans
Et ça me donne cette réponse, je pense que c'est un probléme avec l'ID :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /homez.145/ezakweb/www/stuff/admin/insertion2.php on line 20
Je t'ai fait une image de ma table (fait pas attention au site, il est pas du tout fini) :
http://www.ezakvideo.com/bddosarticle.jpg
Merci !!!
Cordialement Majora
VALUEStout est correct, mais je n'arrive toujours pas a insérer de donnée et ça me donne toujours cette réponse :
Parse error: syntax error, unexpected T_VARIABLE in /homez.145/ezakweb/www/stuff/admin/insertion2.php on line 20
J'ai rajouté ceci dans
VALUES:
$sql = "INSERT INTO osarticle (article, type, prix, slogan, intro, presentation, caracteristique, option, titrevideo, video, genre) VALUES ("", "$article", "$type", "$prix", "$slogan", "$intro", "$presentation", "$caracteristique", "$option", "$titrevideo", "$video", "$genre")" ;
Et ça me donne cette réponse, je pense que c'est un probléme avec l'ID :
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /homez.145/ezakweb/www/stuff/admin/insertion2.php on line 20
Je t'ai fait une image de ma table (fait pas attention au site, il est pas du tout fini) :
http://www.ezakvideo.com/bddosarticle.jpg
Merci !!!
Cordialement Majora
Après des jours et des jours de galère totale, tu as trouvé la réponse Moderno, et de plus je sais pourquoi mon 1er code ne marché pas.
Je suis dégouté (pour cette bétise de ma part) et super content (de la solution).
Merci Moderno et bien sur si tu as besoin de quoi que se soit hésite pas à me demande !
Je suis dégouté (pour cette bétise de ma part) et super content (de la solution).
Merci Moderno et bien sur si tu as besoin de quoi que se soit hésite pas à me demande !
dexter2089
Messages postés
24
Date d'inscription
mercredi 22 avril 2009
Statut
Membre
Dernière intervention
31 juillet 2012
29 juin 2009 à 17:08
29 juin 2009 à 17:08
J'ai une derniére question, alors le script marche nikel, mais en faite le truc c'est que les données que je vais envoyer sur ma base de donnée contient du html :
Sur mon site ça s'affiche comme ça (alors que je ne veux pas que les visiteurs voient les balises html) :
Dans ma base de donnée comme ça :
Comment puis-je faire ?
<h2>Portabilité</h2><br /><br />Le lecteur Blu-ray portable de Panasonic, le DMP-B15 intégrant un écran LCD est le compagnon idéal à emmener en voyage ou en vacances pour profiter pleinement des derniers films sortis ou de vos photos récoltées pendant vos dernières vacances. Avec un design aussi compact, il est facile de le prendre avec soi.<br /><br />
Sur mon site ça s'affiche comme ça (alors que je ne veux pas que les visiteurs voient les balises html) :
<h2>Portabilité</h2><br /><br />Le lecteur Blu-ray portable de Panasonic, le DMP-B15 intégrant un écran LCD est le compagnon idéal à emmener en voyage ou en vacances pour profiter pleinement des derniers films sortis ou de vos photos récoltées pendant vos dernières vacances. Avec un design aussi compact, il est facile de le prendre avec soi.<br /><br />
Dans ma base de donnée comme ça :
<h2>Portabilité</h2><br /><br />Le lecteur Blu-ray portable de Panasonic, le DMP-B15 intégrant un écran LCD est le compagnon idéal à emmener en voyage ou en vacances pour profiter pleinement des derniers films sortis ou de vos photos récoltées pendant vos dernières vacances. Avec un design aussi compact, il est facile de le prendre avec soi.<br /><br />
Comment puis-je faire ?
moderno31
Messages postés
870
Date d'inscription
mardi 23 juin 2009
Statut
Membre
Dernière intervention
8 août 2012
92
30 juin 2009 à 22:52
30 juin 2009 à 22:52
Hello, j'ai du faire le test. Dans une table j'ai rentré le meme texte que toi avec les balises.
Il me sort bien le texte sans les balises : ça veut dire que ceci a été lu et interprété.*
Ci-dessous l'exemple
(
Portabilité
Le lecteur Blu-ray portable de Panasonic, le DMP-B15 intégrant un écran LCD est le compagnon idéal à emmener en voyage ou en vacances pour profiter pleinement des derniers films sortis ou de vos photos récoltées pendant vos dernières vacances. Avec un design aussi compact, il est facile de le prendre avec soi.
)
J'ai fait ça..
$sql = mysql_query("SELECT `part_test` AS Test FROM `test` WHERE `num` = 1");
$nbNuplets = mysql_num_rows($sql);
$nuplet = mysql_fetch_array($sql);
echo "(".$nuplet['Test'].")";
Au plaisir :)
Il me sort bien le texte sans les balises : ça veut dire que ceci a été lu et interprété.*
Ci-dessous l'exemple
(
Portabilité
Le lecteur Blu-ray portable de Panasonic, le DMP-B15 intégrant un écran LCD est le compagnon idéal à emmener en voyage ou en vacances pour profiter pleinement des derniers films sortis ou de vos photos récoltées pendant vos dernières vacances. Avec un design aussi compact, il est facile de le prendre avec soi.
)
J'ai fait ça..
$sql = mysql_query("SELECT `part_test` AS Test FROM `test` WHERE `num` = 1");
$nbNuplets = mysql_num_rows($sql);
$nuplet = mysql_fetch_array($sql);
echo "(".$nuplet['Test'].")";
Au plaisir :)