REQUETE UPDATE

bricfa
Invité n'ayant pas de compte PHPfrance

05 déc. 2010, 15:05

Bonjour,

j'ai fini mon site d'apprentissage tous fonctionne grâce a vos conseil,
mais je me suis aperçu d'une petite erreur ou je ne trouve pas de solution.

j'ai 2 tables sql
ou l'une contient tous les élément d'un compte membre
et l'autre l'avatar du compte


tous s' update dans mes tables
sauf que je voudrai que quand ma table compte modifie seulement l'username de ma table avatar

car quand je modifie le login c'est ok cela upadte bien l'username de ma table avatar
mais si je choisie d'update le nom cela modifie aussi l'username de ma table avatar

voici le code
merci de votre aide

page 1 compte
<?php
echo "<div style=\"width:100%; height:auto; overflow:auto; visibility:visible;  border: 1px solid black; margin-top:0%; \">";
	echo "<div  style=\"width:49%; height:auto; overflow:auto; visibility:visible; border: 0px solid black; margin-top:0%; float:left; clear:left;\">";

// MODIFICATION COMPTE
$error="ERREUR !!! Connection impossible<br/><a href='index.php'>retour page accueil</a>";
$sql =  mysql_connect(DB_HOST,DB_LOGIN,DB_PASS) or die($error);
mysql_select_db(DB_BDDTest) or die($error);
$extract = mysql_query ('SELECT id, login FROM newscomptes ORDER BY id DESC ') or die (mysql_error());

echo '<form action="lang/ComptesCreer_update.php" method="POST">';
echo 'CHOISSISSER LE LOGIN ET LE CHAMP A MODIFIER :<br>';
echo '<select name="peoplename">';
while ($row = mysql_fetch_assoc($extract)){
echo '<option value="'.$row['id'],'">',$row['login'],'</option>';
}

echo <<<EOT
</select>
<select name="choisirentrer">
<option value="login">login</option>
<option value="nom">nom</option>
<option value="prenom">prénom</option>
<option value="mail">mail</option>
<option value="adresse">adresse</option>
<option value="complement_adr">complement_adresse</option>
<option value="ville">ville</option>
<option value="cpostale">code postal</option>
<option value="tel">téléphone</option>
<option value="news">news-letter</option>
<option value="activated">activation</option>
<option value="actif">activation</option>
</select>

<input type="text" name="tochange">
<input type="submit" name="submitopt" value="valider">
</form>
EOT;

?>

<?php
echo "</div>"

page 2 update
<?php

if (!empty($_POST['peoplename']) && !empty($_POST['choisirentrer']) && !empty($_POST['tochange'])) 
{
    $requete =  'UPDATE newscomptes SET
    '.mysql_real_escape_string($_POST['choisirentrer']).'=\''.mysql_real_escape_string($_POST['tochange']).'\'
    WHERE id='.mysql_real_escape_string($_POST['peoplename']).'';
	
					/*VERIFICATION DE COMPTE ACTIF
					$q1 = "SELECT username FROM avatars WHERE username='".$tochange."' "; // 
					$req1 = mysql_query($q1) or die(mysql_error());
					$data1 = mysql_fetch_assoc($req1);
					
					//vérification compte activé
					if ($data1 ['username'] = $choisirentrer)
					{
	
					$requete7 =  'UPDATE avatars SET
					username=\''.mysql_real_escape_string($_POST['tochange']).'\'
					WHERE id='.mysql_real_escape_string($_POST['peoplename']).'';
					*/
					//}
	
					/*VERIFICATION DE COMPTE ACTIF*/
					$q1 = "SELECT login FROM newscomptes WHERE login='".$choisirentrer."' "; // 
					$req1 = mysql_query($q1) or die(mysql_error());
					$data1 = mysql_fetch_assoc($req1);
					
					//vérification compte activé
					
					if ( $choisirentrer = $login)
					{
	
					$requete7 =  'UPDATE avatars SET
					username=\''.mysql_real_escape_string($_POST['tochange']).'\'
					WHERE id='.mysql_real_escape_string($_POST['peoplename']).'';
					
					}
	
	
	//var_dump($requete);
    //var_dump($requete7);
	
    $ret = mysql_query ($requete);
    if ($ret === false) {
            echo '<p>Erreur Mysql : '.mysql_error().'<br />'.$requete.'</p>';
    }
    else {
		echo"<style type=\"text/css\">body{background-color:#656565;}</style>
		<br><strong>ADMINISTRATION MEMBRES (Modifier compte créer)</strong>	|
		<table width=\"100%\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\" style=\" height:100px;\">
			<tr align=\"center\">
				<td  width=\"100%\">
					<h3><strong>Le compte créer à bien été modifié </h3></strong>
		";
    }
	
    $ret2 = mysql_query ($requete7);
    if ($ret2 === false) {
            echo '<p>Erreur Mysql : '.mysql_error().'<br />'.$requete7.'</p>';
    }
    else {
            echo "
			<input type=\"button\" style=\"color:#000\"  name=\"annuler\" value=\"&raquo;Retour page\" title=\"\" onclick=\"self.location.href='javascript:history.back()'\" onclick>
				</td>
			</tr>
		</table>
";
    }
}
?>

ViPHP
xTG
ViPHP | 7331 Messages

05 déc. 2010, 16:00

Premièrement on ne met pas $choisirrentrer mais $_POST['choisirrentrer'].

Ensuite ton erreur vient de l'égalité de la condition :
if ( $choisirentrer = $login)
Une affectation de valeur est toujours vraie, c'est un test (==) qu'il te faut. ;)

bricfa
Invité n'ayant pas de compte PHPfrance

05 déc. 2010, 17:11

merci de ta réponse

mais j'ai essayer mais cela ne fonctionne pas

cela me change l'username de l'avtar
j'ai vu avec == et ===
mais je ne vois pas

bricfa
Invité n'ayant pas de compte PHPfrance

07 déc. 2010, 21:56

bonjour,

quelqu'un pourrai m'aider svp

ViPHP
xTG
ViPHP | 7331 Messages

07 déc. 2010, 22:17

cela me change l'username de l'avtar
Regardes donc sur quelle table tu effectues la requête et tu comprendras de suite ce que tu modifies.

bricfa
Invité n'ayant pas de compte PHPfrance

10 déc. 2010, 20:26

merci xTG

j'entends bien en faite je dirais même plus : je lis bien mais ca fait plusieurs jour que j essai plusieurs manière mais je vois pas l'erreur

je ne comprends vraiment pas et j'ai mal à la tête.

voici le dernier test que j'ai fait mais sans résultat.

je comprendrai mieu en voyant l'erreur corriger.

/*UPDATE CHAMP username ONLY*/
$q1 = "SELECT username FROM avatars WHERE username='".$_POST['tochange']."' "; //
$req1 = mysql_query($q1) or die(mysql_error());
$data1 = mysql_fetch_assoc($req1);
					
//
if ($_POST['choisirrentrer']==$login)
 {
	
$requete7 =  'UPDATE avatars SET
username=\''.mysql_real_escape_string($_POST['tochange']).'\'
WHERE id='.mysql_real_escape_string($_POST['peoplename']).'';
					
}