problème d'insertion

cdavid
Invité n'ayant pas de compte PHPfrance

13 juin 2009, 16:36

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') ?>

lux
Eléphant du PHP | 372 Messages

13 juin 2009, 17:28

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 ?

Eléphanteau du PHP | 30 Messages

14 juin 2009, 09:33

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]

lux
Eléphant du PHP | 372 Messages

14 juin 2009, 09:51

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:

Eléphanteau du PHP | 30 Messages

14 juin 2009, 10:15

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]

lux
Eléphant du PHP | 372 Messages

14 juin 2009, 10:22

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:

Eléphanteau du PHP | 30 Messages

14 juin 2009, 10:26

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

lux
Eléphant du PHP | 372 Messages

14 juin 2009, 10:31

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:

Eléphanteau du PHP | 30 Messages

14 juin 2009, 10:31

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

Eléphanteau du PHP | 30 Messages

14 juin 2009, 10:35

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

lux
Eléphant du PHP | 372 Messages

14 juin 2009, 10:42

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:

Eléphanteau du PHP | 30 Messages

14 juin 2009, 10:44

session_start();
$_SESSION['login'] = $_POST['login'];

Comme sa

lux
Eléphant du PHP | 372 Messages

14 juin 2009, 10:48

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']'";

Eléphanteau du PHP | 30 Messages

14 juin 2009, 10:54

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 ?

Eléphanteau du PHP | 30 Messages

14 juin 2009, 10:57

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: