begin process at 2012 05 31 00:22:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

INSERT qui ne marche plus


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales