PHP : action et delete

opanis Messages postés 6 Statut Membre -  
 nico -
Bonjour,

Je voudrais creer une page avec les différentes informations de ma base de donnée et que lorsque l'on clique sur un lien, cela supprime la donnée correspondante, j'ai commencé en trouvant des exemple sur le net mais la je suis bloqué et je sais pas comment faire il me met comme message d'erreur Notice: Undefined variable: action in c:\documents and settings\inconnu\mes documents\site mairie\divers\appeldoffre\essf.php on line 21

et a cette ligne il y a if ($action == "delete")

Quelqu'un pourrais t'il m'aidé.

Je joins le code de la page
"
<body background="../images/fond2.jpg">

  <p align="center">  <img border="0" src="../images/MF.GIF">

  <p align="center">
   
  <?php

 	require( "../config.inc.php" );     	
 	$ok = connex_base( $hote, $login_base, $pwd, $base );
 	if($ok){
 
if ($action == "delete")
{
$req = mysql_query("delete from appel where idap=".$tab['ida'][$key]."");
}
		$query  = "select * from appel";
		$result = mysql_query($query);
		
		while( $rows = mysql_fetch_array($result)){ 

			$tab['ida'][]      = $rows[0];
			$tab['categorie'][]  = $rows[1];
			$tab['titre'][]     = $rows[2];
			$tab['numero'][]  = $rows[3];
			$tab['publication'][]  = $rows[4];
			$tab['objet'][]  = $rows[5];
			$tab['datelimite'][]  = $rows[6];
			$tab['pdf'][] = $rows[7];
			$tab['pdfpublication'][] = $rows[7];
				} 

  					 		 }
  			?>

  <table border="1" width="100%">
    <tr>
      <td width="25%"><b>Titre</b></td>
      <td width="25%"><b>Numéro</b></td>
      <td width="25%"><b>Date limite d'envoi</b></td>
      <td width="25%"><b>Action</b></td>
    </tr>
    <?
    foreach($tab['ida'] as $key => $val){
echo "<tr>";
			echo "<td>".$tab['titre'][$key]."</td>";
			echo "<td >".$tab['numero'][$key]."</td>";
			echo "<td> ".$tab['datelimite'][$key]."</td>";
			echo "<td><a href=\"#null\" onclick=\"javascript:if(confirm('Etes-vous sûr de vouloir supprimer cette annonce ?')) document.location.replace('essf.php?action=delete&idap=".$tab['ida'][$key]."');\">Supprimer</a></td>";
			echo "</tr>";
}
?>
  </table>
  <p align="right"><a href="appel.html"><img border="0" src="../images/retour.gif" width="127" height="40"></a></p>
  


Merci

7 réponses

  1. Darshu Messages postés 303 Statut Membre 64
     
    Salut.

    Dans le code que tu as mis, "action" n'apparait nulle part donc PHP ne sait pas ce que c'est ! Si c'est dans l'url (index.php?action=delete par exemple), alors il faut utiliser $_GET['action']. Si c'est envoyé par un formulaire vers ta page, alors c'est $_POST['action'] si la méthode du formulaire est "POST", et $_GET['action'] encore si la méthode est "GET".
    0
  2. opanis Messages postés 6 Statut Membre
     
    Bonjour,

    Merci de ta réponse
    Oui j'ai cherché sur google et sur yahoo sans trouvé la réponse, je débute un peu en phph, grace a ta réponse j'ai pu resoudre tout les erreur de php mais il me reste un probleme de taille, en effet il ne me supprime pas la donné de la base de donnée.
    Je joins le code de la page.
    Merci de votre aide

    <body background="../images/fond2.jpg">
    
    <p align="center"><img border="0" src="../images/appeloffre.gif" width="195" height="47"></p>
    <p align="center"><b><font color="#3366FF" size="4">Supprimer Appel D'offre</font></b></p>
    
      <p align="center">
       
      <?php
    require( "../config.inc.php" );     	
     	$ok = connex_base( $hote, $login_base, $pwd, $base );
     	if($ok){
     	
     		$query  = "select * from appel";
    		$result = mysql_query($query);
    		
    		while( $rows = mysql_fetch_array($result)){ 
    
    			$tab['ida'][]      = $rows[0];
    			$tab['categorie'][]  = $rows[1];
    			$tab['titre'][]     = $rows[2];
    			$tab['numero'][]  = $rows[3];
    			$tab['publication'][]  = $rows[4];
    			$tab['objet'][]  = $rows[5];
    			$tab['datelimite'][]  = $rows[6];
    			$tab['pdf'][] = $rows[7];
    			$tab['pdfpublication'][] = $rows[7];
    				} 
    
    $ide  = $_GET["idap"];
    
    $req = mysql_query("delete from appel where idap= .$ide ");
    
      					 		 }
      			?>
    
      <table border="1" width="100%" bordercolor="#000080" bordercolordark="#000080" bordercolorlight="#99CCFF">
        <tr>
          <td width="40%" bgcolor="#99CCFF"><b><font color="#000080">Titre</font></b></td>
          <td width="20%" bgcolor="#99CCFF"><b><font color="#000080">Numéro</font></b></td>
          <td width="20%" bgcolor="#99CCFF"><b><font color="#000080">Date limite d'envoi</font></b></td>
          <td width="20%" bgcolor="#99CCFF"><b><font color="#000080">Action</font></b></td>
        </tr>
        <?
        foreach($tab['ida'] as $key => $val){
    echo "<tr>";
    			echo "<td>".$tab['titre'][$key]."</td>";
    			echo "<td >".$tab['numero'][$key]."</td>";
    			echo "<td> ".$tab['datelimite'][$key]."</td>";
    			echo "<td><a href=\"#null\" onclick=\"javascript:if(confirm('Etes-vous sûr de vouloir supprimer cette annonce ?')) document.location.replace('essf.php?action=delete&idap=".$tab['ida'][$key]."');\">Supprimer</a></td>";
    			echo"<td><a href=\"essf1.php?idap=".$tab['ida'][$key]."\">Modifier</a></td>";
    			echo "</tr>";
    }
    ?>
      </table>
      <p align="right"><a href="appel.html"><img border="0" src="../images/retour.gif" width="127" height="40"></a></p>
      
    </body>
    0
  3. Darshu Messages postés 303 Statut Membre 64
     
    Oui c'est normal :)

    Une requête PHP doit TOUJOURS s'écrire sous le format suivant (passer par une variable intermédiaire $query est très intéressant !) :
    $query = "SELECT * FROM `table` WHERE `champ` = '$variable' ";
    pour un select simple.

    Note l'utilisation de majuscules pour SELECT, FROM, WHERE, DELETE, UPDATE, AND, IN, BETWEEN, AS etc, ça te permet de mieux visualiser !

    Dans ton cas, essaie ça :
    $query = "DELETE FROM `appel` WHERE `idap`= '$ide' ";
    mysql_query($query) or die("Erreur = ".mysql_error());
    --

    T'as pensé à regarder sur Google avant de poser ta question ? 
    0
  4. opanis Messages postés 6 Statut Membre
     
    Merci beaucoup pour ta réponse

    Cela marche super bien mais lors du premier téléchargement de la page il me met un message d'erreur comme quoi idap n'est pas défini Il faudrai que je mets un if mais je sais pas quoi mettre en condition

    Merci de ton aide
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Darshu Messages postés 303 Statut Membre 64
     
    Salut !

    Si $idap n'est pas défini, alors la condition c'est if (isset($idap)). isset renvoie 1 si la variable est définie, 0 dans le cas contraire :)

    Bonne continuation
    0
  7. nico
     
    Bonjour,

    excusez moi mai j'ai un petit problème, ma suppression ne fonctionne pas et je n'ai aucun message d'erreur.

    
    <td ><?php $id=$row[0]; echo $id;?><a href="#" onclick="mysql_query(DELETE FROM news WHERE id= '$id') or die("Erreur = ".mysql_error());
    																									">supprimer<a><br />modifier<br /></td>	
    
    
    


    merci d'avance.
    0
  8. nico
     
    J'ai aussi essayé comme ça et c'est pareil :

    
    <td ><?php $id=$row[0]; echo $id;?><a href="#" onclick="	$query = "DELETE FROM news WHERE id= '$id' ";
    																										mysql_query($query) or die("Erreur = ".mysql_error());
    																									">supprimer<a><br />modifier<br /></td>		
    
    
    
    0