Page 1 sur 1

boucle while et isset

Posté : 25 mai 2011, 01:12
par uraharasama
bonjour, cela fait quelque temps que je bloque sur un problème. Je m'explique, je récupère tout les champs (titre, fonction, description) qui compose un message écrie par l'utilisateur logué. puis dans une boucle while j'affiche tout ses messages.
Jusque là tout fonctionne, seulement j'aimerais donner la possibilité sur chaque message, d'afficher un bouton supprimer et éditer.
J'utilise pour ca un isset. Le problème est là, chaque message dispose bien d'un bouton supprimer et éditer, seulement ils suprrime ou édite tout le dernier message, au lieu du message concerné.

Je ne sais pas comment faire :/, voilà mon code:
$select ="SELECT titre, fonction, description, membre_idMembre, idDemande FROM eventArt_demande WHERE  membre_idMembre=".$id." ORDER BY `idDemande` DESC"; // selection des demandes de la dernière à la première

$result = mysql_query($select) or die ('Erreur : erreur de selection '.mysql_error() );
$total = mysql_num_rows($result);

    // lecture et affichage des résultats    
    while($row = mysql_fetch_array($result)) {		
	
		if(isset($_GET['message'])) //Si $_GET['nom'] existe, on supprime le fichier...
{
$resultat= mysql_query("DELETE FROM  eventArt_demande WHERE  idDemande=".$row['idDemande']."");	
header('Location:afficheMessageMembre.php');
return FALSE;
}


if(isset($_GET['modif'])) //Si $_GET['modif'] existe, on donne la possibilité de le modifier le fichier...
{
	$_SESSION['idDemande'] = $row['idDemande'];
	
echo"<form method='post' action='modificationDemande.php' enctype='multipart/form-data'>	
	<table width='400' border='0' align='center'>
	
	<tr>
	<td colspan='2' class='menu'><p align='center'><h2>Demande</h2></p></td>
	</tr>
	<tr>
	<td><label for='titre'>id : </label></td>
	<td class='champ'><input name='titre' type='text' value=".$row['idDemande']."></td>
	</tr>
	<tr>
	<td><label for='titre'>Titre : </label></td>
	<td class='champ'><input name='titre' type='text' value=".$row['titre']."></td>
	</tr>
	<tr>
	<td><label for='poste'> Poste recherché: </label></td>
	<td class='champ'><input name='poste' type='text' value=".$row['fonction']." ></td>
	</tr>
	<tr>
	<td><label for='description'>Description: </label></td>
	<td class='champ'><textarea name='description' type='text' >".$row['description']."</textarea></td>
	</tr>
    <tr>
	<td><div align='center'><input type='submit' value='envoyer' /></div></td>
	</tr>
	</table>'
    
    
	</form>";
	return FALSE;
	
}

		$rechercheAuteur=mysql_query("SELECT identifiant FROM eventArt_membre WHERE idMembre=".$row['membre_idMembre'].""); // recherche l'identifiant de  l'auteur dans la table des membres
$auteur=mysql_result($rechercheAuteur,0);

$sql=mysql_query("SELECT eventArt_competence_idCompetence FROM eventArt_competenceMembre WHERE eventArt_membre_idMembre='".$row['membre_idMembre']."'") or die ('Erreur : '.mysql_error());
while ($resultat = mysql_fetch_array($sql) )
	{
		
		$requete=mysql_query("SELECT competence FROM eventArt_competence WHERE idCompetence='".$resultat[0]."'") or die ('Erreur : '.mysql_error());
		$competence= mysql_result($requete,0);
		
	$tag.=($competence.', ');
	}

        echo '<div><p>'.$row['titre'].'</p><p>'.$row['fonction'].'</p><p>'.$row['description'].'</p><p>'.$auteur.'</p><p>'.$tag.'</div>
		<div><a href="afficheMessageMembre.php?message='.$row['idDemande'].'">Supprimer</a><br />
		<a href="afficheMessageMembre.php?modif='.$row['idDemande'].'">modifier</a>';//affichage 
		$tag='';// on libere $result pour ne pas tout concaténer
    }
   
echo'<center><a href="index.php"><h3>Retour</h3></a></center>';

?>

Re: boucle while et isset

Posté : 25 mai 2011, 07:59
par xTG
idDemande est-il bien la clé primaire de ta table ?

Enfin pour tes multiples requêtes je te conseillerai de te renseigner sur les jointures, ainsi au lieu de faire tout ce code tu pourrais ne faire qu'une seule et même requête.

Re: boucle while et isset

Posté : 25 mai 2011, 08:19
par moogli
salut,

le plus simple c'est d'afficher normalement le message et de mettre deux liens qui mene vers une (ou plusieurs comme tu veux) page(q).
le lien doit comporter la clef primaire de l'article en question, pour la modification il faut faire un select avec cette clef primaire en paramètre (where clefprimaire=valeurPasseeParLurl), pour la suppression même chose mais avec delete from table where clefPrimaire = ValeurPasseeParLurl


@+

Re: boucle while et isset

Posté : 25 mai 2011, 10:54
par uraharasama
J'ai honte ^^", je me suis braqué sur l'idée de isset....bref.

Merci de la rapidité de vos réponses :)