Supprimer une ligne via un formulaire - PHP - Programmation
Marsh Posté le 16-06-2009 à 16:59:49
Manque des guillemets autour de la valeur de tes options (et $_POST existe de toute façon, donc tu ferais mieux de tester directement si $_POST['liste'] existe).
Ensuite si tu veux bel et bien supprimer l'entrée de ta base mysql, il faudrait faire un
Code :
|
Marsh Posté le 16-06-2009 à 17:01:57
Ah tiens ça me fait penser à une chose. Quelle est la différence entre isset($_POST) et isset($_POST['liste'])
Isset vérifie si la variable existe bien vrai ? Donc autant mettre isset($_POST) qui vérifie l'ensemble des variables passant par POST non ?
Marsh Posté le 16-06-2009 à 17:04:33
Non ça va juste vérifier que le tableau $_POST existe... or il existe toujours, qu'il soit vide ou non
Marsh Posté le 16-06-2009 à 17:13:49
J'arrive pas à placer correctement mes guillemets. A chaque fois j'ai un parse error
Marsh Posté le 16-06-2009 à 17:21:44
Ton code et la ligne d'erreur ? (effectivement il manque des guillemets simple lors de l'affichage des options...)
Marsh Posté le 16-06-2009 à 17:23:58
Ligne 13:
echo "<option value=$row[id_util]>$row[nom_util] $row[prenom_util]</option>"; |
Mais là dedans je vois pas trop où placer mes guillemets parce que à chaque fois ça me et un parse error à cette ligne
edit: guillemet ou quote ?
Marsh Posté le 16-06-2009 à 17:30:51
Essaie ça :
Citation : echo "<option value=\"$row['id_util']\">$row['nom_util'] $row['prenom_util']</option>"; |
En fait autour du "value" de l'option, il faut mettre des guillemets double, sans quoi si ton nom comprend un espace, ça va devenir ininterprétable (et puis de toute façon ce ne serait pas W3C compliant). De même, il faut mettre des guillemets simple pour récupérer la valeur correspondant à la clef d'un tableau (comme tu l'avais fait pour $_POST['liste']).
Marsh Posté le 16-06-2009 à 18:13:50
Yagmoth a écrit : Manque des guillemets autour de la valeur de tes options (et $_POST existe de toute façon, donc tu ferais mieux de tester directement si $_POST['liste'] existe).
|
pas de "*" pour delete (anéfé, mysql supprime la ligne de toute façon). Donc :
Code :
|
Marsh Posté le 16-06-2009 à 18:35:05
Je test ça demain et je vous tiendrai au courant
Au lycée on nous faisait toujours écrire le * dans nos requête à la main ²
Marsh Posté le 16-06-2009 à 18:42:47
un * dans un delete
Marsh Posté le 16-06-2009 à 18:49:32
ReplyMarsh Posté le 16-06-2009 à 19:10:43
Mea culpa Je ne l'avais pas mis au départ, puis j'ai édité... en regardant un forum où il y avait une ânerie.
Marsh Posté le 17-06-2009 à 08:41:34
J'ai toujours un parse error pour ma ligne 13
echo "<option value="$row['id_util']">$row['nom_util'] $row['prenom_util']</option>"; |
J'vais trifouiller un peu histoire de voir d'où ça vient
Marsh Posté le 17-06-2009 à 08:55:42
T'as essayé la solution de Yagmoth ?
Citation : echo "<option value=\"$row['id_util']\">$row['nom_util'] $row['prenom_util']</option>"; |
Marsh Posté le 17-06-2009 à 09:03:06
ReplyMarsh Posté le 17-06-2009 à 09:23:10
Essaye avec la concaténation alors :
echo "<option value=\"" . $row['id_util'] . "\">" . $row['nom_util'] . " " . $row['prenom_util'] . "</option>";
Marsh Posté le 17-06-2009 à 09:27:33
Ca doit venir des quotes/doubles quotes
Solution qui devrait marcher :
Code : |
En règle général, quand j'ai ce genre de problème :
- Je procède par concaténation plutôt qu'avec des guillemets - même si ça fait perdre un peu de perf'
- Je décompose en plusieurs lignes.
[Edit]Grilled
Marsh Posté le 17-06-2009 à 09:55:52
héhé merci plus de parse error maintenant
Par contre toujours impossible de supprimer l'utilisateur sélectionné
Marsh Posté le 17-06-2009 à 09:56:04
Heu t'avais bien placé les backslashs devant les " entourant la valeur de ton option ? Parce que ce n'est pas le cas dans le quote que tu fais juste au dessus...
laisse moi deviner... id_utilisateur != id_util ?
Code :
|
>>
Code :
|
Marsh Posté le 17-06-2009 à 10:03:33
Mais pourquoi j'avais mis un select moi ?
Non même en corrigeant avec le DELETE ça ne marche toujours pas, qu'es-ce donc ce délire ? ²
Marsh Posté le 17-06-2009 à 10:05:28
Envoie ton code actuel en entier
Marsh Posté le 17-06-2009 à 10:09:55
Tu l'aurau voulu
<h3>Supprimer un utilisateur</h3> |
Tu l'as eu ²
A noté que le message "Coucou les gens HFR" s'affiche bien. Donc c'est ma requête qui doit merder en toute logique, pourtant c'est un truc tout simple sans FK ni rien alors je vois pas où est le pb
Marsh Posté le 17-06-2009 à 10:12:15
un 'i' en trop dans ta requête Id_util, pas id_utili, faut taper avec un doigt
Marsh Posté le 17-06-2009 à 10:14:47
La honte quoi
ça marche bien ce coup ci Merci à tous pour le coup de main et vite vite on part du topic où je vais finir dans les plus belles hontes ²
Marsh Posté le 17-06-2009 à 12:50:26
Non, dans ce cas c'est :
Code :
|
Marsh Posté le 16-06-2009 à 16:55:12
Bonjour,
Je suis en train de faire un scrypt php qui permet de lister mes utilisateurs via une liste déroulante qui se met à jour automatiquement. Et ce que j'aimerai arriver à faire c'est lorsque je sélectionne un utilisateur, je puisse le supprimer via un boutton.
<h3>Supprimer un utilisateur</h3>
<form action="admin.php?m=supprimer_util" method="POST">
<p>Sélectionnez un professeur à supprimer</p>
<select name="liste">
<?php
mysql_connect('localhost','root','');
mysql_select_db('logiciel');
$sql = "SELECT id_util,nom_util, prenom_util FROM utilisateur";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res))
{
echo "<option value=$row[id_util]>$row[nom_util] $row[prenom_util]</option>";
}
?>
</select>
<input type="submit" value="Supprimer" name="supprimer"/>
</form>
<?php
if(isset($_POST))
{
$rep = $_POST['liste'];
mysql_query("DELETE * FROM utilisateur WHERE id_utilisateur = ".$rep."";);
}
else
{
echo 'Erreur';
}
?>
Pour l'instant j'ai fais ça pour voir un peu mais ça ne marche pas. Je sais que ça doit venir de mon if mais je vois pas comment réparer mon erreur.
ps: Je précise que je débute en php alors soyez indulgent
Merci pour votre aide
Message édité par Profil supprimé le 17-06-2009 à 09:59:27