probleme avec UPDATE

Eléphant du PHP | 131 Messages

17 sept. 2005, 13:35

Code : Tout sélectionner

<html> <FORM action="modifie.php" method="POST"> <fieldset><legend>modifier mes données</legend> <table > <tr> <td>Pseudo</td> <td><input type="text" name="pseudo" maxlength="6"/><br /></td> </tr> <tr> <td>Mot de Passe</td> <td><input type="Password" name="motdepasse" maxlength="6"/><br /></td> </tr> <tr> <td></td> <td><INPUT type="submit" name="Confirmer" tabindex="" align="left"></td> </tr> </table> </FORM> </fieldset> </html>
code modification

Code : Tout sélectionner

<?php // information pour la connection à le DB $host = 'localhost'; $user = 'root'; $pass = ''; $db = 'nombase'; // connection à la DB $link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() ); mysql_select_db($db) or die ('Erreur :'.mysql_error()); $num = isset($_POST["num"]) ? $_POST["num"] : ""; $pseudo = isset($_POST["pseudo"]) ? $_POST["pseudo"] : ""; $motdepasse = isset($_POST["motdepasse"]) ? $_POST["motdepasse"] : ""; // requête SQL qui compte le nombre total d'enregistrement dans la table et qui //récupère tous les enregistrements $select = "SELECT * FROM Table ". "WHERE pseudo='".$pseudo."' AND motdepasse='".$motdepasse."'"; $result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result); // si on a récupéré un résultat on l'affiche. if($total) { // lecture et affichage des résultats sur 2 colonnes, 1 résultat par ligne. while ($row = mysql_fetch_array($result)) { echo "<form action=\"maj_membres.php\" method=\"post\">\n"; //echo "<input type="hidden" name=\"num\" value=$num>\n"; echo "NOM : <input type=text name=\"nom\" value=\"" . $row["nom"] . "\"><br>\n"; echo "PRENOM : <input type=text name=\"prenom\" value=\"" . $row["prenom"] . "\"><br>\n"; echo "ADRESSE : <input type=text name=\"adresse\" value=\"" . $row["adresse"] . "\"><br>\n"; echo "<input type=submit value=\"Modifier\">"; echo "</form>"; } } else { echo "Désolé, mais cet utilisateur est inconnu<br>"; } mysql_close(); ?>
code mise à jour

Code : Tout sélectionner

<?php $BD_serveur = "localhost"; $BD_utilisateur = "root"; $BD_motDePasse = ""; $BD_base = "nombase"; $pseudo = isset($_POST["pseudo"]) ? $_POST["pseudo"] : ""; $motdepasse = isset($_POST["motdepasse"]) ? $_POST["motdepasse"] : ""; $nom = isset($_POST["nom"]) ? $_POST["nom"] : ""; $prenom = isset($_POST["prenom"]) ? $_POST["prenom"] : ""; $adresse = isset($_POST["adresse"]) ? $_POST["adresse"] : ""; echo "Bonjour $prenom $nom,<br>"; mysql_pconnect($BD_serveur, $BD_utilisateur, $BD_motDePasse) or die("Impossible de se connecter au serveur de bases de données."); @mysql_select_db($BD_base) or die("Impossible de se connecter à la base de données."); $requete="UPDATE Table SET nom='".$_POST["nom"]."', prenom='".$_POST["prenom"]."', adresse='".$_POST["adresse"]."' WHERE pseudo='$pseudo' AND motdepasse='". $motdepasse ."'"; $result = mysql_query($requete) or die('Erreur SQL !<br>'.$requete.'<br>'.mysql_error()); if (!$result) { echo "La mise à jour de vos données a échouée. Essayez plus tard<br>"; } else { echo "Vos données ont été mises à jour<br>"; } mysql_close(); ?>

Mammouth du PHP | 19672 Messages

17 sept. 2005, 13:52

:shock: Et alors.... :?:
Tu pourrais utiliser le bouton [php], ça aiderait à la lecture.

Ensuite, je constate que je corrige pour rien, ton code "mise à jour" est le même qu'au départ.

QU'est-ce qui marche pas au juste ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 sept. 2005, 13:58

si j'ai bien compris la MAJ se passe en 3 étapes (plusieurs pages en tout cas) lorsque tu arrive sur la page de MAJ les variables pseudo et motdepasse ne sont plus reconnues tu dois les placer dans des champs cachés pour les retrouver pour la requete de MAJ:
<form action="maj_membres.php" method="post">";
<?
while ($row = mysql_fetch_array($result)) 
{?>
   <input type="hidden" name="pseudo" value="<?echo $pseudo ?>">;
   <input type="hidden" name="motdepasse" value="<?echo $motdepass ?>">;      
   NOM : <input type=text name="nom" value="<? echo $row["nom"] ?>"><br>";
   PRENOM : <input type=text name="prenom" value="<? echo $row["prenom"]?>"><br>";
   ADRESSE : <input type=text name="adresse" value="<? echo $row["adresse"]?>"><br>";
   <input type=submit value="Modifier">";
   <?
}
echo "</form>"; 
PS: depuis le temps que tu est sur le forum tu devrai savoir utiliser les bonnes balises pour une meilleur lisibilité ->

Eléphant du PHP | 131 Messages

17 sept. 2005, 14:42

Merci à tous et spécialement à Truc. Cela marche maintenant.

A+

Eléphant du PHP | 131 Messages

17 sept. 2005, 15:09

Excusez moi j'aimerai donner la possibilité à l'utilisateur de changer sa photo. C'est le nom de la photo qui est stocké dans le champ photo. Comment faire ?

Mammouth du PHP | 19672 Messages

17 sept. 2005, 15:56

Rajoute un champ texte où il peut renommer la photo tout simplement et sers-toi de la clé primaire comme point de repère pour la requête d'update.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: