Page 1 sur 3

problème d'insertion

Posté : 13 juin 2009, 16:36
par cdavid
Je suis super novice
alors je fais une pret inscription avec juste une id , login et mot de passe créer mes ensuite le membre va dans la page de ces info et dois remplir ce formulaire pour les inséré dans la db qui est la même table mes sa marche pas je pige pas pourquoi j'ai essayé divers requette sql mes sa veu pas si quelqu'un peu m'aidé ?

Code : Tout sélectionner

<? include('haut.php') ?> <style type="text/css"> <!-- .Style1 {color: #008000} --> </style> <TR> <TD background="images/n16_25.png" COLSPAN=18 class="padall"><span class="h2">Vos informations</span><br><br /> <html> <head> <title>Vos Informations</title> </head> <body> <a href="membre.php">Accueil Membre</a><br /> <form name="insertion" action="information.php" method="POST"> <table border="0" align="center" cellspacing="2" cellpadding="2"> <tr align="center"> <td>nom</td> <td><input type="text" name="nom"></td> </tr> <tr align="center"> <td>prenom</td> <td><input type="text" name="prenom"></td> </tr> <tr align="center"> <td>adresse</td> <td><input type="text" name="adresse"></td> </tr> <tr align="center"> <td>code postal</td> <td><input type="text" name="codePostal"></td> </tr> <tr align="center"> <td>Ville</td> <td><input type="text" name="ville"></td> </tr> <tr align="center"> <td>Pays</td> <td><select name="pays"> <option value="1" >Afghanistan</option> <option value="2" >South Africa</option> <option value="3" >Albania</option> <option value="5" >Germany</option> <option value="6" >Andorra</option> <option value="7" >Angola</option> <option value="8" >Anguilla</option> <option value="12" >Argentina</option> <option value="13" >Armenia</option> <option value="14" >Aruba</option> <option value="15" >Australia</option> <option value="16" >Austria</option> <option value="17" >Azerbaidjan</option> <option value="18" >Bahamas</option> <option value="19" >Bahrain</option> <option value="20" >Bangladesh</option> <option value="22" >Belgium</option> <option value="23" >Belize</option> <option value="24" >Benin</option> <option value="25" >Bermuda</option> <option value="26" >Bhutan</option> <option value="27" >Belarus</option> <option value="29" >Bolivia</option> <option value="30" >Botswana</option> <option value="31" >Brazil</option> <option value="32" >Brunei</option> <option value="33" >Bulgaria</option> <option value="34" >Burkina Faso</option> <option value="35" >Burundi</option> <option value="36" >Cambodia</option> <option value="37" >Cameroon</option> <option value="38" >Canada</option> <option value="39" >Cape Verde</option> <option value="41" >Central African Republic</option> <option value="42" >Chile</option> <option value="43" >China</option> <option value="45" >Colombia</option> <option value="46" >Comoros</option> <option value="47" >Congo</option> <option value="51" >Ivory coast</option> <option value="52" >Croatia</option> <option value="53" >Cuba</option> <option value="239" >Cyprus</option> <option value="54" >Denmark</option> <option value="56" >Djibouti</option> <option value="57" >Dominica</option> <option value="58" >Egypt</option> <option value="59" >El Salvador</option> <option value="61" >Ecuador</option> <option value="63" >Spain</option> <option value="64" >Estonia</option> <option value="65" >USA</option> <option value="66" >Ethiopia</option> <option value="70" >Falkland</option> <option value="72" >Fiji</option> <option value="73" >Finland</option> <option value="74" selected>France</option> <option value="238" >France DOM TOM</option> <option value="76" >Gabon</option> <option value="77" >Gambia</option> <option value="78" >Georgia</option> <option value="79" >Ghana</option> <option value="80" >Gibraltar</option> <option value="81" >United KingDom</option> <option value="82" >Greece</option> <option value="83" >Grenada</option> <option value="84" >Greenland</option> <option value="85" >Guadeloupe</option> <option value="87" >Guatemala</option> <option value="88" >Guinea</option> <option value="90" >Guyana</option> <option value="92" >Haiti</option> <option value="93" >Honduras</option> <option value="94" >Hong Kong</option> <option value="95" >Hungary</option> <option value="107" >India</option> <option value="108" >Indonesia</option> <option value="109" >Iraq</option> <option value="110" >Iran</option> <option value="111" >Ireland</option> <option value="112" >iceland</option> <option value="113" >Israel</option> <option value="114" >Italy</option> <option value="115" >Jamaica</option> <option value="116" >Japan</option> <option value="117" >Jordan</option> <option value="118" >Kazakhstan</option> <option value="119" >Kenya</option> <option value="122" >Kuwait</option> <option value="123" >Laos</option> <option value="124" >Lesotho</option> <option value="125" >Lesotho</option> <option value="127" >Liberia</option> <option value="128" >Libya</option> <option value="130" >Lithuania</option> <option value="131" >Luxembourg</option> <option value="133" >Madagascar</option> <option value="134" >Malaysia</option> <option value="135" >Malawi</option> <option value="136" >Maldives</option> <option value="137" >Malta</option> <option value="139" >Martinique</option> <option value="140" >Mauritania</option> <option value="97" >Mauritius</option> <option value="141" >Mayotte</option> <option value="142" >Mexico</option> <option value="144" >Moldova</option> <option value="145" >Monaco</option> <option value="146" >Mongolia</option> <option value="147" >Montserrat</option> <option value="148" >Mozambique</option> <option value="149" >Namibia</option> <option value="150" >Nauru</option> <option value="151" >Nepal</option> <option value="159" >New Zealand</option> <option value="152" >Nicaragua</option> <option value="153" >Niger</option> <option value="154" >Nigeria</option> <option value="157" >Norway</option> <option value="158" >New Caledonia</option> <option value="160" >Oman</option> <option value="162" >Pakistan</option> <option value="163" >Palau</option> <option value="164" >Panama</option> <option value="166" >Paraguay</option> <option value="167" >Netherlands</option> <option value="168" >Peru</option> <option value="169" >Philippines</option> <option value="170" >Pitcairn</option> <option value="171" >Poland</option> <option value="173" >Puerto Rico</option> <option value="174" >Portugal</option> <option value="175" >Qatar</option> <option value="178" >Slovak Republic</option> <option value="179" >Reunion</option> <option value="180" >Romania</option> <option value="181" >Russia</option> <option value="182" >Rwanda</option> <option value="195" >Senegal</option> <option value="196" >Seychelles</option> <option value="197" >Sierra Leone</option> <option value="198" >Singapore</option> <option value="199" >Slovenia</option> <option value="200" >Somalia</option> <option value="201" >Sudan</option> <option value="204" >Sweden</option> <option value="205" >Switzerland</option> <option value="207" >swaziland</option> <option value="208" >Syria</option> <option value="209" >Tajikistan</option> <option value="210" >Taiwan</option> <option value="211" >Tanzania</option> <option value="215" >Thailand</option> <option value="217" >Togo</option> <option value="219" >Tonga</option> <option value="223" >Turkey</option> <option value="224" >Tuvalu</option> <option value="225" >Ukraine</option> <option value="227" >Uruguay</option> <option value="228" >Vanuatu</option> <option value="230" >Venezuela</option> <option value="231" >Vietnam</option> <option value="233" >Yemen</option> <option value="234" >Congo</option> <option value="235" >Zambia</option> <option value="236" >Zimbabwe</option> </select></td> </tr> <tr align="center"> <td>numéro de téléphone</td> <td><input type="text" name="telephone"></td> </tr> <tr align="center"> <td>E-mail</td> <td><input type="text" name="email"></td> </tr> <tr align="center"> <td>Nom du site</td> <td><input type="text" name="nomsite"></td> </tr> <tr align="center"> <td>Url du site</td> <td><input type="text" name="url"></td> </tr> <tr align="center"> <td>Description du site</td> <td><textarea type="text" name="descriptif" rows="8" cols="45"></textarea></td> </tr> <tr align="center"> <td>Visiteurs unique par jour</td> <td><input type="text" name="vu"></td> </tr> <tr align="center"> <td>Page vue par mois</td> <td><input type="text" name="pv"></td> </tr> <tr align="center"> <td colspan="2"><input type="submit" value="insérer"></td> </tr> </table> </form> </body> </html> <?php //connection au serveur $cnx = mysql_connect( "localhost", "aurelie", "aurelie" ) ; //sélection de la base de données: $db = mysql_select_db( "regie" ) ; //récupération des valeurs des champs: //nom: $nom = $_POST["nom"] ; //prenom: $prenom = $_POST["prenom"] ; //adresse: $adresse = $_POST["adresse"] ; //code postal: $cp = $_POST["codePostal"] ; $ville = $_POST["ville"] ; $pays = $_POST["pays"] ; $email = $_POST["email"] ; //numéro de téléphone: $tel = $_POST["tel"] ; $nomsite = $_POST["nomsite"] ; $url = $_POST["url"] ; $descriptif = $_POST["descriptif"] ; $vu = $_POST["vu"] ; $pv = $_POST["pv"] ; //création de la requête SQL: $sql = "UPDATE membre SET (nom, prenom, adresse, cp, ville, pays, email, tel, nomsite, url, descriptif, vu, pv) WHERE login VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$ville', '$pays', '$email', '$tel', '$nomsite', '$url', '$descriptif', '$vu', '$pv') " ; //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") ; } ?> </TD> </TR> <? include('bas.php') ?>

Posté : 13 juin 2009, 17:28
par lux
Salut. Si c'est pour une inscription, il faut utiliser une requête mysql du type "INSERT" et non "UPDATE".

Sinon, ça ne marche pas ... c'est pas super précis. Qu'est-ce qui ne marche pas ? Un message d'erreur apparaît ?

Posté : 14 juin 2009, 09:33
par cdavid
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 ''nom', 'prenom', 'adresse', 'cp', 'ville', 'pays', 'email', 'tel', 'nomsite', 'u' at line 1

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 14 juin 2009, 09:51
par lux
Bon de toute façon ce sera pas un update, mais un insert. Je t'invite à lire le manuel pour insérer des données dans une bdd mysql :

http://dev.mysql.com/doc/refman/5.0/fr/insert.html

:wink:

Essaye, montre nous ce que tu as fait, et on en reparle si ça va pas :wink:

Posté : 14 juin 2009, 10:15
par cdavid
j'ai modifier mon script du coup mes info s'insére dans ma db mes le prob ces que sa créais une nouvelle insertion plutot que de mettre celle déja existente

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 14 juin 2009, 10:22
par lux
C'est ce que tu voulais non, créer une insertion ? Ça crée un ligne en plus en BDD. C'est pas trop clair ce que tu veux faire en fait :P

Si tu veux seulement mettre à jour, c'est vrai, il faut utiliser UPDATE. Note que j'ai lu ta requète plus en détail, le "WHERE login" doit se trouver toute à la fin, et faut que tu lui précises un peu plus :

WHERE login = '.$login.' !!!

Et je te conseille de ne mettre que le même type de guillemets partout, p.ex des doubles : " ", et de concaténer proprement ta requête : "WHERE login = ".$login.""; avec des points. :wink:

Posté : 14 juin 2009, 10:26
par cdavid
Voici ma requette:

$sql = "INSERT INTO membre (nom, prenom, adresse, cp, ville, pays, email, tel, nomsite, url, descriptif, vu, pv)
VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$ville', '$pays', '$email', '$tel', '$nomsite', '$url', '$descriptif', '$vu', '$pv') " ;

et donc comme ces dans un espace membre je vodrais réussir a récupéré le login ou id du membre pour que les donnés sois inséré dans son champ et pas que sa en créé un nouveau

Posté : 14 juin 2009, 10:31
par lux
Recommence : Tu veux faire quoi ?

- Apparemment pas créer une nouvelle ligne en BDD, donc pas d'insert
-> Alors pourquoi dans ton code tu parles d'insertion en commentaires ?

- Un UPDATE ? Donc mettre à jour les données ?

- Un SELECT pour sélectionner des données ? Car tu viens de dire : "récupéré le login ou id du membre"

Note que si tu pouvais me dire exactement ce que tu veux faire, ça irait plus vite, je ne peux pas deviner ce que doit faire ton code :wink:

Posté : 14 juin 2009, 10:31
par cdavid
Oui ces sa je veu mettre les info de du membre a jour via un formulaire

Ps: j'ai ajouté ton msn a mon compte j'espère sa ne te dérange pas

Posté : 14 juin 2009, 10:35
par cdavid
Donc je vais essayé d'étre plus clair

donc le membre arrive chez moi pour s'inscrire il remplit juste son login et son mot de passe
ensuite une fois dans son espace membre il doit complété un formulaire et ces info la je veu qu'elle s'ajoute dans la table ou il y a déja son login et mot de pass

Posté : 14 juin 2009, 10:42
par lux
Okay pigé.


Garde ta requête "UPDATE", mets le "WHERE login" au bout.

Il te faut un truc du genre "WHERE login = '$login'".

Comment récupérer $login maintenant ? Je ne sais pas comment marche ta gestion, donc il y a deux possibilités :

- Soit tu as le login dans le superglobale $_SESSION, donc suffit de faire $login = $_SESSION['login'], bien sur seulement si tu utilises ce système

- Soit quand tu affiches la page il faut passer lors du submit la valeur du login au formulaire, à l'aide d'un champ hidden :

<input type="hidden" name="login" value="le login">

Et ainsi dans ton php ce sera $login = $_POST['login'];

Note qu'avec ce système tu vas devoir te débrouiller pour que value="le login" contienne ce login

:wink:

Posté : 14 juin 2009, 10:44
par cdavid
session_start();
$_SESSION['login'] = $_POST['login'];

Comme sa

Posté : 14 juin 2009, 10:48
par lux
session_start();
$_SESSION['login'] = $_POST['login'];

Comme sa
Tu fais ça ou ? Dans un autre formulaire au début, lors du login non ?

Donc normalement c'est bon t'as le login en session. Ta requète s'écrira alors :
$sql = "UPDATE membre SET (nom, prenom, adresse, cp, ville, pays, email, tel, nomsite, url, descriptif, vu, pv) VALUES ( '$nom', '$prenom', '$adresse', '$cp', '$ville', '$pays', '$email', '$tel', '$nomsite', '$url', '$descriptif', '$vu', '$pv') WHERE login = '$_SESSION['login']'";

Posté : 14 juin 2009, 10:54
par cdavid
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/site1864/web/regie/information2.php on line 46

sa veu dire quoi ?

Posté : 14 juin 2009, 10:57
par cdavid
alors j'ai une petite précision la session est dans un fichier appellé haut.php vu le nom tu te doute a quoi il serre :wink: