PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#2 Re : Forum Général PHP » faire des entrées dans une table. » 02-08-2009 10:32:05

Concernant les sessions, c'est un peu plus complexe, car ca dépend de ton serveur (j'espère que je ne dis pas de bêtise)
En tous cas, tu peux utiliser les variables $_post pour passer des informations d'une page à l'autre.
Suppose que tu ais une première page avec  un champ du type "entrez votre pseudo" et un lien "ou bien cliquez ici pour vous inscrire".
Cette première page appellera ta page ou l'utilisateur entre ses informations. Nomme la zone pseudo de ta première page "login", ce qui te permettra dans ta seconde page de distinguer entre la zone pseudo de la première page et la zone pseudo de la seconde (c'est clair jusque là?)
Dans la partie php de la seconde page, si $_post['login'] est renseignée, tu lis l'enregistrement dans ta BDD:

if (isset($_POST['login'])) {
$query = sprintf("SELECT * FROM info WHERE pseudo='%s' ", $_PÖST['pseudo']);
$rs = mysql_query($query, $maconnexion) or die(mysql_error());
$row=mysql_fetch_assoc($rs); }

ensuite pour chaque zone de ton formulaire tu renseigne la valeur:

<input type="text" name="ville" value="<?php if (isset($rs)) echo $rs['ville']?>"/>

Toujours clair?
si tu entre dans la page avec la variable login renseignée, $rs sera alimenté et tes zones input auront une valeur, sinon $rs sera non renseignée et tes zones input seront vierges.

tu as intérêt à mettre une zone cachée  qui te dira si tu es en création ou modification:

<input type="hidden" name="CMD" value="<?php echo (isset($rs) ? 'EDIT' : 'ADD') ?>" />

quand tu relis ta page tu teste la variable CMD

if ($_POST['CMD']=='EDIT) {<faire la mise à jour>} else if ($_POST['CMD']=='ADD') {<faire la création>];

Le truc, c'est que tu as donc 3 manières d'entrer dans ta page: soit CMD n'est pas renseigné, ce qui signifie que tu viens de la page d'accueil (avec login renseigné ou non) soit CMD  est renseigné, ce qui signifie que c'est le retour de ton formulaire.

Une dernière chose: avec cette méthode, tu dois déclarer la zone pseudo de ta table comme étant unique. Ce qui signifie que lorsque tu fais la création, tu dois absolument tester que le pseudo n'existe pas déjà.

#3 Re : Forum Général PHP » faire des entrées dans une table. » 02-08-2009 10:32:05

Que veux tu dire par lier a une page de modification?

en ce qui concerne ton formulaire, j'ai l'impression que ce que tu veux faire dans ton test, c'est si aucune zone n'est remplie alors ne pas procéder à l'insertion, mais si au moinss une zone est renseignée, alors écrire dans la table.
Dans ce cas, ton  test est mauvais.
si tu écris

if(<condition 1> && <condition2> && <condition 3>)

cela signifie que les trois conditions doivent être vraies pour que le test se réalise.
Si tu écris

if(<condition1> || <condition2> || <condition 3>)

cela signifie qu'au moins une des conditions doit être vraie pour que le test se réalise.

#4 Re : Forum Général PHP » faire des entrées dans une table. » 02-08-2009 10:32:05

A mon avis, tu ne peux avoir qu'une seule version de PHP installée sur ta machine.
J'avais juste regardé ta requête, pas le HTML, mais as tu vu que tu as 4 fois la zone pseudo en entrée?

#
<tr>
#
  <td><strong>Pseudo :</strong></td><td><input type="text" name="pseudo"/></td></tr>
#
  <tr>
#
  <td><strong>Photo:</strong></td><td><input type="text" name="pseudo"/></td></tr>
#
  <tr>
#
  <td><strong>Mot de passe :</strong></td><td><input type="text" name="pseudo"/></td></tr>
#
  <tr>
#
  <td><strong>Email :</strong></td><td><input type="text" name="pseudo"/></td></tr>
#
  <tr>

resultat des courses: les $_POST des zones photo, mot de passe et email sont systématiquement non renseignés, et donc ta requête ne s'exécute pas!!

#5 Re : Forum Général PHP » faire des entrées dans une table. » 02-08-2009 10:32:05

salut papycool

sans vouloir dire de bêtises, il me semble que la syntaxe pour une instruction insert est:

INSERT INTO <nomtable> (<nomvariable1>, <nomvariable2>, ...) VALUES (<valeur1>, <valeur2>, ...)

A priori, il manque les noms de variables (entre parenthèses) de ta table "info".

D'autre part, le test que tu fais sur les variables renseignées est tel que tu ne fais l'insertion que si TOUTES les variables sont renseignées.
En espérant que ça aide!!

Pied de page des forums

Propulsé par FluxBB