pour afficher le code sur le forum avec la colorisation c'est illisible la.
au vu du script je veut bien croire que rien n'est mis à jour.
Quand je lis, je me rend compte que le formulaire n'est affiché que lorsque celui ci est validé O_o, est ce que la première page est la suite d'un autre formulaire ?
d'où sort la variable $choisirentrer dans le swicth et d'ailleur a quoi sert il ?
pour quoi faire un select * et en plus utiliser des variables pour 15 champs alors qu'au final tu n'en utilise que deux (si l'on omet le switch qui semble peu utile).
dans la page deux à quoi peut bien servir if ($peoplename&&$choisirentrer) ? peut être souhaite tu utiliser les fonctions [url=http://php.net/isset]isset[/url] ou [url=http://php.net/empty]empty[/url] ? (dans ce cas c'est avant qu'il faut le faire)
il n'y a pas de connexion au serveur mysql (dans la première page non plus, est ce un oublie volontaire ?)
ta requête SQL est mieux étrange au pire une hérésie :)
voici un code épuré des trucs non utilisé (dans le code que tu a posté) qui devrait fonctionner (a tester bien sur).
[php]
<?php
// 2 LOGIN ET CHAMP A MODIFIER
echo '<br>CHOISSISSER LE LOGIN ET LE CHAMP A MODIFIER <br>';
$extract = mysql_query ('SELECT id, login FROM newscomptes ORDER BY id DESC ') or die (mysql_error());
echo '<form action="mysql_update.php" method="POST"><p>';
echo 'SELECT OPTION:<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>id</option>
<option>login</option>
<option>nom</option>
<option>prénom</option>
<option>mail</option>
<option>adresse</option>
<option>complement_adresse</option>
<option>ville</option>
<option>code postal</option>
<option>téléphone</option>
<option>news-letter</option>
<option>activation</option>
</select>
<br/>
<input type="text" name="tochange">
<input type="submit" name="submitopt" value="valider">
</form>
EOT;
}
?>
page 2 (mysql_update.php)
<?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']).'';
$ret = mysql_query ($requete);
if ($ret === false) {
echo '<p>Erreur Mysql : '.mysql_error().'<br />'.$requete.'</p>';
}
else {
echo 'au moins un champ de vide !';
}
?>
@+<?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']).'';
$ret = mysql_query ($requete);
if ($ret === false) {
echo '<p>Erreur Mysql : '.mysql_error().'<br />'.$requete.'</p>';
}
else {
echo 'au moins un champ de vide !';
}
?>
$requete = 'UPDATE newscomptes SET
'.mysql_real_escape_string($_POST['choisirentrer'].'=\''.mysql_real_escape_string($_POST['tochange']).'\'
WHERE id='.mysql_real_escape_string($_POST['peoplename']).'';
$ret = mysql_query ($requete);
manque une )
$requete = 'UPDATE newscomptes SET
'.mysql_real_escape_string($_POST['choisirentrer']).'=\''.mysql_real_escape_string($_POST['tochange']).'\'
WHERE id='.mysql_real_escape_string($_POST['peoplename']).'';
$ret = mysql_query ($requete);
les erreurs de parse c'est des erreurs de syntaxe, donc il manque des )] } ou des ; . Erreur Mysql : 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 ''login'='toi' WHERE id =2' at line 2
UPDATE newscomptes SET 'login'='toi' WHERE id =2
j'ai essayer de modifier l'enterErreur Mysql : Unknown column 'tochange' in 'field list'
UPDATE newscomptes SET tochange= 'toi' AND 'toi'='login' WHERE id =2
j'ai re-modifier et maintenant j'ai à nouveau la l'erreur du haut
<?php
echo '<br>CHOISSISSER LE LOGIN ET LE CHAMP A MODIFIER <br>';
mysql_connect('localhost','root','yyRu2TKEvyYpzFLK');
mysql_select_db('test');
$extract = mysql_query ('SELECT id, login FROM newscomptes ORDER BY id DESC ') or die (mysql_error());
echo '<form action="" method="POST"><p>';
echo 'SELECT OPTION:<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="id">id</option>
<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_adresse">complement_adresse</option>
<option value="ville">ville</option>
<option value="cp">code postal</option>
<option value="telephone">téléphone</option>
<option value="newsletter">news-letter</option>
<option value="activation">activation</option>
</select>
<br/>
<input type="text" name="tochange">
<input type="submit" name="submitopt" value="valider">
</form>
EOT;
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']).'';
var_dump($requete);
$ret = mysql_query ($requete);
if ($ret === false) {
echo '<p>Erreur Mysql : '.mysql_error().'<br />'.$requete.'</p>';
}
else {
echo 'ok';
}
}
?>
avec cette table de test (qui doit plus ou moins ressembler à la tienne Code : Tout sélectionner
create table newscomptes (
id int unsigned auto_increment not null,
login text,
nom text,
prenom text,
mail text,
adresse text,
complement text,
ville text,
cp text,
telephone text,
newsletter text,
activation text,
primary key (id)
)type=myisam;
insert into newscomptes (login, nom) values ('prout','test');
// EFFACER COMPTES
echo "EFFACER COMPTE MEMBRES";
if (!isset($_POST['submitopt']))
{
$extract = mysql_query (" SELECT id,login FROM newscomptes ORDER BY id DESC ") or die (mysql_error());
$numrows = mysql_num_rows($extract);
echo "<form action=\"ComptesCreer_effacer.php\" method=\"POST\">
<select name='todelete'>";
while ($row = mysql_fetch_assoc($extract))
{
$id = $row['id'];
$login = $row['login'];
echo" <option value='$id'>$login</option> ";
}
echo "</select>
<input type=\"submit\" name=\"submitopt\" value=\"éffacer\">
</form>
";
}
echo "</div>";
echo "</div>";
<?php
require_once("../../auth.php");
$todelete = $_POST['todelete'];
if ($todelete)
{
// on choisit ici de update SET firstname on peu mettre le champ quon veus. faire test
$delete = mysql_query ("DELETE FROM newscomptes,avatars WHERE id='$todelete'") or die (mysql_error());
print_r ($_POST);
}
c'est particullièrement vrai, faut tester les requetes quand on en est pas certain (j'ai toujours une console mysql d'ouverte pour cela).c'est tes valeur qui sont pas bonne c'est tout, avec de faire un requete SQL regarde comment elle est en premier sinon tu va jamais t'en sortir