Accueil > Forum > > > > INSERT qui ne marche plus
INSERT qui ne marche plus
jeudi 24 avril 2008 à 19:50:05 |
INSERT qui ne marche plus

Euskalor
|
Bonjour à toutes et à tous !!
Je rencontre un prblème qui a le don de m'énerver. Dans mon site j'utilise plsuieurs fois la requête INSERT INTO pour différentes tables et elle fonctionne bien. Mais alors que je crée une nouvelle page pour envoyer des donnée dans une nouvelle table la requête ( INSERT INTO ) ne veux pas marcher !! Et je ne vois pas pourquoi alors que les autres marchent !!!! Les seuls changement par rapport à celle qui ne marche est le nom de la table et biensure les valeurs !
Alors soit je ne vois pas une erreur que j'ai fait soit je ne comprends pas.
Voici le code qui se rebelle :
<form action="liens_bo.php" method="post"> <div id="bold">Type : </div><select name="choix"><option value="">Sélection du type</option> <?php $typeArray = array ( 1=>"meteo", 2=>"forum", 3=>"telechargement", 4=>"divers" ); for($i=1;$i<=count($typeArray);$i++){ echo"<option value=\"".$i."\">".$typeArray[$i]."</option>\n";} ?> </select> <div id="bold">Nom : </div><input type="text" size="30" name="nom" value=""><br> <div id="bold">Adresse : </div><input type="text" size="50" name="adresse" value=""><br> </td> <td class="tdContenuSouche"> <div id="bold">Description : </div><textarea name="coment" cols="50" rows="6" id="champ"></textarea><br><br> </td></tr><tr> <td colspan="2" class="tdContenuSouche"> <div id="center"><input type="hidden" name="poster" value="enregistrer"> <input type="Submit" name="ok" value="Enregistrer"></div> </form> <?php $dte = date ("d / m / Y"); if($_POST["poster"]=="enregistrer" AND empty($_POST["nom"])){ echo"<div id=\"averto\">Nom absent</div>"; }elseif($_POST["poster"]=="enregistrer" AND empty($_POST["adresse"])){ echo"<div id=\"averto\">Adresse absente</div>"; }elseif($_POST["poster"]=="enregistrer"AND !empty($_POST["nom"]) AND !empty($_POST["adresse"])){ $query = "INSERT INTO lien (add, nom_add, comment, date, type_ls) VALUES ('" .$_POST["adresse"]. "', '". $_POST["nom"]. "', '". $_POST["coment"] ."', '".$dte."', '".$typeArray[$_POST["choix"]]."')"; $result = mysql_query($query) or die ("<div id=\"averto\">Enregistrement impossible : ".$query." !</div>"); if(!$result) echo"<p><div id=\"averto\">Erreur lors de l'enregistrement veuillez recommencer</div></p>"; else echo"<p><div id=\"message\">Liens enregistré</div></p>"; } ?>
Nom de ma table : lien
Ma table MySQL du type
id_li int(11) unsigned NOT NULL Auto_increment <- Index add VARCHAR 100 Latin1_swedich_ci etc....
L'erreur qui s'affiche est celle de : $result = mysql_query($query) or die ("<div id=\"averto\">Enregistrement impossible : ".$query." !</div>");
A savoir que celui-ci est dans une cellule d'un tableau ( <td></td > ). J'ai un code similaire mais sans le Array qui marche trés bien. J'ai essayé d'enlever le Array , ou la date ou d'autre valeur en les prenant une par une et rien n'y fait ça ne marche toujours pas.
Sinon j'utilise du PHP 4 ( je ne connais que lui ) Je travaille avec Dreamweaver Et mon serveur est du type Apache MySQL ( fonction en interne )
Voilà, je ne comprends pas pourquoi cet INSERT ne marche pas alors que d'autres marche. Ca vient de mon serveur ?
Merci d'avance pour vos réponses !
|
|
jeudi 24 avril 2008 à 20:57:12 |
Re : INSERT qui ne marche plus

TheGorgo
|
Réponse acceptée !
salut
le plus simple pour voir un probleme dans une requete sql c de mettre
die (mysql_error())
normalement ca devrait téexpliker ce qui va pas.
|
|
jeudi 24 avril 2008 à 21:05:31 |
Re : INSERT qui ne marche plus

Euskalor
|
Humm je te remercie j'ai essayé de le faire mais je me rappellais plus la fonction ! J'essayais avec ECHO $result;
Je regarde ce que ça donne et je donne une suite pour clore ( je l'espère ) le sujet.
|
|
jeudi 24 avril 2008 à 21:10:45 |
Re : INSERT qui ne marche plus

neigedhiver
|
Réponse acceptée !
Salut,
Bon... Pour le debug, comme le souligne TheGorgo, afficher l'erreur MySQL avec mysql_error() ne peut pas faire de mal... Afficher également la requête SQL peut être une bonne idée, pour voir à quoi elle ressemble une fois construite.
Sinon...
Tu te casses la tête pour afficher tes chaines, à échapper les guillemets doubles du code html, alors que tu pourrais tout simplement utiliser des guillemets simples pour tes echo :
echo '<p><div id="message">Liens enregistré</div></p>';
Pour ta requête, tu peux utiliser sprintf() qui permet d'y voir plus clair :
$query = sprintf("INSERT INTO lien (add, nom_add, comment, date, type_ls) VALUES ('%s', '%s', '%s', '%s', '%s')", $_POST['adresse'], $_POST['nom'], $_POST['coment'], $dte, $typeArray[$_POST['choix']]);
Ca évite de se mélanger dans les guillemets, simples, doubles, ouverts, fermés...
Enfin, tu dis que la table concernée est la table lien, mais tu donnes le début (sic) de la structure de la table type... Je comprends pas pourquoi...
|
|
jeudi 24 avril 2008 à 21:19:25 |
Re : INSERT qui ne marche plus

Euskalor
|
Bon il me dit :
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 'add, nom_add, comment, date, type_ls) VALUES ('rth', 'rth', 'rth', '24 / 04 / 20' at line 1
Ok je veux bien mais j'ai relu et rerelu ma requetête mais je ne vois pas la faute !!
$query = "INSERT INTO lien (add, nom_add, comment, date, type_ls) VALUES ('" .$_POST["adresse"]. "', '". $_POST["nom"]. "', '". $_POST["coment"] ."', '".$dte."', '".$typeArray[$_POST["choix"]]."')";
Faut que je consulte un occuliste ? Je ne vois vraiment pas l'erreur ! Les autres requètes INSERT que j'utilise marche trés bien, j'ai l'habitude de m'en servir en plus !!
Si c'était une erreur de virgule ou de parenthèse ça me mettrais un PARSE ERROR !!
C'est pour ça que je ne comprends pas.
Ca viens du nom de mes champs ? Il n'aime pas le changement ? ( add et type _ls par exemple ) c'est le _ qui n'est pas dans tous les noms des champs qu'il n'aime pas ?
Je vais finir par avoir honte, c'est pourtant une requète basique !
|
|
jeudi 24 avril 2008 à 21:26:59 |
Re : INSERT qui ne marche plus

neigedhiver
|
Réponse acceptée !
Re,
ADD est un mot réservé de MySQL, tu ne peux pas l'utiliser pour un nom de champ, un nom de table, ou autre.
|
|
jeudi 24 avril 2008 à 21:30:25 |
Re : INSERT qui ne marche plus

Euskalor
|
Pour les " dans les echo j'ai appris le php en faisant comme ça. Je sais qu'on peut faire avec ' . Mais bon, les habitudes ..... 
Mais j'essayerai de faire comme tu dis histoire de rendre mon code plus clair ! En effet.
Sinon je ne connaissait pas cette façon d'écrire une requète. C'est plus clair en effet !
Mais je ne trouve toujours pas mon erreur ( quel ane que je suis )
|
|
jeudi 24 avril 2008 à 21:36:36 |
Re : INSERT qui ne marche plus

Euskalor
|
Un grand merci à vous deux !!! Je ne savais pas dutout que ADD était un mot réservé SQL !!! Je pouvais toujours chercher  Vous venez de sauver mon ordi car je devenait dingue de ne pas comprendre pourquoi cet INSERT ne marchais pas et les autres oui ( pas de nom de champs add ) !! Encore merci beaucoup bonne soirée ! J'espère que ce post va aider aussi du monde :)
|
|
Cette discussion est classée dans : insert, marche, post, query, echo
Répondre à ce message
Sujets en rapport avec ce message
Formulaire...validation [ par CyberMen30 ]
Bonjour à tous,J'ai un formulaire d'adhésion contenant les données suivante:Tarif, Regionale, recruteur, prenom, nom, numero, rue, casepostale, ville,
Probleme avec INSERT INTO [ par leito79 ]
Bonjour a tous,Jai eu un probleme en faisant un script et j'ai cherché pendant plusieurs heures pas moyen de trouver le problemevoici mon scrip
VIDEO donnee php [ par aurelbzh ]
BONJOURj'ai adapté en php un code html qui marche pour inserer des video sur mon sitemais sa ne marche pa peut ton me dire pourkoi merciecho"<object i
case a cocher php /mysql [ par yoyo77yo ]
Bonjour !! et bonne année J'ai un probleme : j'ai repris le code de quélqu'un que j'ai payé mais par contre il n'est pas complet donc je voudrait
case php et mysql [ par yoyo77yo ]
bonjour et bonne annéeJe vous explique mon probleme (je suis débutant)j'ai un script d'espace membre mais je veux rajouter des choses : en effet je so
Pb d'insertion [ par papiona ]
salutj essaier de créer une connexion avec la base de donné Mysql pour inserer des données dans la base mais le probléme .je saiser les informations d
stoker un résultat dans un menu déroulant [ par marc660 ]
Bonjour, Je voudrais savoir comment stoker le résultat de ce script dans un menu déroulant (liste). Bien sur il y a plusieurs clients donc si c'est po
Formulaire checkbox [ par flopad ]
Bonjour tout le monde,j'ai un soucis avec un formulaire contenant des checkbox.Je ne parviens pas à récupérer le résultat de mes cases cochées, si qq'
php et sql [ par fatatra ]
bonjour;j'essaie de rentrer des données dans ma bases a partir d'un formulaire.Ce queje fais c'est que je recupére les variable 'post' pour les mettre
problème sur multimania [ par nicomilville ]
Bonjour voici mon code de la page "news.php" :$message = $_POST['message']$message1 = $_POST['message1']$message2 = $_POST['message2']$message3 = $_PO
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|