help requete sql

remi87
Invité n'ayant pas de compte PHPfrance

09 avr. 2012, 14:10

bonjour

voici mon probleme :
$sql="SELECT id, username, status FROM membres ";
$result=mysql_query($sql) or die(mysql_error());
    if (mysql_num_rows($result) == 0){ echo 'Aucun utilisateur enregistre';    }

while ($res = mysql_fetch_array($result)) {?>
<tr> 
	<td> <div align="center"><?php echo $res['username'];?></div></td>
	<td> <?php if($res['status'] == 1) { echo "Actif"; } else {echo "Bloqué"; }?> </td>
	<td> 
    		<input type="submit" name="button" id="button" value="Bloquer" onclick="
			<? mysql_query("update membres set status = 0 where id ='$res[id]' or die(mysql_error())"); ?>"               />
	</td>
</tr> <?php } ?> </table>
Tout s'affiche tres bien mais mon bouton ne marche pas...
Une idée de quelle pourrait etre mon erreur? Je pense que ca vient de ma requette :
<? mysql_query("update membres set status = 0 where id ='$res[id]' or die(mysql_error())"); ?>
mais je vois pas ou je me suis loupé :)

Merci d'avance

ViPHP
xTG
ViPHP | 7331 Messages

09 avr. 2012, 14:58

Remplacer <? par <?php
Concaténer $res['id'] au lieu de le mettre dans la chaîne de caractères.
Sortir le or die(.... qui n'a rien à faire à l'intérieur de la requête mais qui doit être à la fin de la fonction, après sa parenthèse fermante.

remi87
Invité n'ayant pas de compte PHPfrance

09 avr. 2012, 18:04

Merci pour cette réponse.

J'ai bien remplacé le <? par <?php, ca ca va :)

Par contre pour concaténer j'ai plus de mal...
J'ai rajouté un '.' ce qui donne .$res[id] mais ca ne marche toujours pas...
Je fais pas la bonne chose?

ViPHP
xTG
ViPHP | 7331 Messages

09 avr. 2012, 19:55

Bah montres nous ce que tu as fait. :D

remi87
Invité n'ayant pas de compte PHPfrance

09 avr. 2012, 20:12

Voila ce que j'ai modifié, tout tourne autour de mon bouton :
 
<input type="submit" name="button" id="button" value="Bloquer" onClick="
	<?php
//quelques lignes de connexion a la base de donnee
	mysql_query( "update membres set status = 0 where id =.$res[id] "); mysql_close;  ?>" /> 
Toujours en rapport avec mon 'id' (qui s'affiche tres bien quand je fais un echo) mais je vois pas...

Apres je fais peut etre pas les choses comme il faut :D
Voici l'objectif : un requete pour avoir des noms et statuts qui s'affichent en tableau et a chaque ligne je veux un bouton pour changer le statut

ViPHP
xTG
ViPHP | 7331 Messages

09 avr. 2012, 20:19

Une concaténation c'est pour concaténer deux choses. A l'intérieur d'une chaîne de caractères c'est plus une concaténation mais un simple point.
mysql_query( "update membres set status = 0 where id =".$res[id]);
Je te recommande de lire quelques bases sur le langage PHP.
http://phpdebutant.org/article14.php
Il y a plusieurs articles sur la droite, ils ne sont pas long et adaptés pour les débutants.

remi87
Invité n'ayant pas de compte PHPfrance

13 avr. 2012, 18:52

Merci beaucoup, problème réglé :)