supprimer une donnée de la base de donnée

opanis
Invité n'ayant pas de compte PHPfrance

30 juin 2006, 13:37

Bonjour,

Je débute en php et je voudrais savoir comment on peu faire pour supprimé une donnée d'une table de la base de donnée.
J'aimerai que l'on selectionne dans un menu déroulant contenant une fonction php qui inscrit l'id de toute les données et que lorsque on le selectionne et que l'on envoye le formulaire ceci supprime la donnée correspondante dans la base de données. J'ai commencé le code mais je n'arrive déjà pas a affiché les données dans le menu déroulant quelqu'un pourrais t'il m'aidé merci bcq
<?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];
				} 
	}
?>
<p align="center"><img border="0" src="../images/appeloffre.gif"></p>
<p align="center"><b><font color="#3366FF" size="4">Supprimer Appel D'offre</font></b></p>
<form method="POST" action="gappel.php" enctype="multipart/form-data">

  <div align="center">
    <center>

  <table border="0" width="744">
    <tr>
      <td width="165" height="19"><font color="#3366FF"><b>N° de marché :</b></font>  
      </td>
      <td width="565" height="19"><select size="1" name="numero">
        <option value="<? foreach($tab['ida'] as $key => $val){echo".$tab['numero'][$key]."} ?>"><? foreach($tab['ida'] as $key => $val){echo".$tab['numero'][$key]."} ?></option>
        </select></td>
    </tr>
  </table>
    </center>
  </div>
  <p align="center"><input type="submit" value="Supprimer" name="B1"></p>
</form>
<p align="center"><a href="gestion_du_site.htm"><img border="0" src="../images/retour.gif" align="right"></a></p>
<p align="center">&nbsp;</p>


Eléphant du PHP | 332 Messages

30 juin 2006, 14:04

1) Utilise mysql_fetch_assoc : tu récupèreras un tableau avec comme indice les noms de tes colonnes au lieu d'un simple numéro.

2) Tu n'as pas besoin de transférer des données dans plusieurs autres tableaux, mais dans un seul
  while( $rows = mysql_fetch_assoc($result)){ 
    $appel[] = $rows;
  } 
3) ta liste déroulante finale doit être de la forme

Code : Tout sélectionner

<option value="ida1">ida1</option> <option value="ida2">ida2</option> <option value="ida3">ida3</option> <option value="ida4">ida4</option>
il faut donc que ta boucle prenne en un seul coup l'option, sa value et le libellé. Il ne faut pas qu'il y ait deux boucles qui de plus sont dans la valeur, puis dans le libellé Si tu jettes un coup d'oeil au html généré par ton code, ça doit ressembler à ça.

Code : Tout sélectionner

<option value="ida1ida2ida3ida4">ida1ida2ida3ida4</option>
donc
<select size="1" name="numero"> 
<?php
  for ($i=0; $i<count($appel); $i++ {
    echo '<option value="'.$appel[$i]["ida"].'">'.$appel[$i]["ida"]."</option>\n";
  }  
?>
</select>
Conseils :
1) si tu n'as besoin que de ida fait select ida from ... au lieu de select * from ... tu amélioreras les performances du serveur et de ton script (moins de données inutiles chargées).
2) dans ton code, pense à rajouter des \n : la lecture du code HTML généré en sera facilitée. Cette lecture du code HTML te permettra de voir ce qui a été généré par rapport à ce que tu voulais que ça génère.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

30 juin 2006, 14:06

J'aimerai que l'on selectionne dans un menu déroulant contenant une fonction php qui inscrit l'id de toute les données et que lorsque on le selectionne et que l'on envoye le formulaire ceci supprime la donnée correspondante dans la base de données.
Voici les étapes :
- afffichage des identifiants dans un formulaire
- script qui récupère le formulaire et l'identifiant transmis
- création du code SQL "DELETE FROM..."
- exécution

Prenons d'abord le 1:
J'ai commencé le code mais je n'arrive déjà pas a affiché les données dans le menu déroulant quelqu'un pourrais t'il m'aidé merci bcq
Qu'est-ce qui se passe exactement ? Erreur ?
Regarde ce sujet pour chercher déjà : PHP+SQL : Etapes à suivre pour résoudre les problèmes

opanis
Invité n'ayant pas de compte PHPfrance

30 juin 2006, 14:59

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\documents and settings\daminou\mes documents\site mairie\divers\gestion\gappel1.php on line 8

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

30 juin 2006, 15:02

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\documents and settings\daminou\mes documents\site mairie\divers\gestion\gappel1.php on line 8
Regarde ce sujet pour chercher déjà : PHP+SQL : Etapes à suivre pour résoudre les problèmes
Attentivement et en entier stp