Supprimer des donées de la base de données

Résolu/Fermé
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 - 30 janv. 2008 à 10:58
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 - 7 févr. 2008 à 09:28
Bonjour,
j'ai un petit soucis. Je souhaiterais supprimer des données dans ma base donné mais je n'y arrive pas. J'ai essayé différentes méthodes sans succes. Voici mon code.


supprimer-user.php
<html>
<head>
<title>Supprimer un utilisateur</title>
</head>

<body>
<form method='post' action=delete-user.php>
<?php
include("header.html");
include ("connexionBdd.php");
$requete = "select Id, Nom, Prenom from user order by Nom asc ;";
$result = mysql_query($requete);

if (!$result) {
echo "Une erreur est survenue.\n";
exit;
}

$numligne = mysql_num_rows($result);
$numcol = mysql_num_fields($result);

for ($i=0;$i<$numcol;$i++) {
$tab_nom_col[$i] = mysql_field_name($result,$i);
}

for ( $i=0; $i<$numligne; $i++ ) {
$tab_ligne[$i] = mysql_fetch_row( $result );
}


mysql_close($conn);
?>
<h2 align="center">Sélectionnez l'utilisateur que vous souhaitez supprimer</h2>

<?php
//creation d'un tableau
print("<table align='center' border=1px>\n");
print("<tr>\n");

for($i=0;$i<$numcol;$i++){
print ("<th>$tab_nom_col[$i]</th>\n");
}
print("<td><b> <b></td>");
print("</tr>\n");

for ($i=0; $i<$numligne; $i++) {
print("<tr>\n");

foreach($tab_ligne[$i] as $col){
if (!$col) { $col=" "; }
print("<td>$col</td>\n");
}
print("<td> <INPUT type='radio' value='' name='Id' size='5'> </td></tr>\n");
}
print("<tr> \n");
print("<td colspan= align='center'> <INPUT type='submit' value='Validez' name='validez'> </td> " );
print("</tr>");
print("</table>");
?>


</form>
</body>
</html>


et delete.php:
<html>
<head>
<title>Suppression d'un Utilisateur</title>
</head>

<body>

<?php
//récuperation des données
$id = $_POST['Id'];
$rqut = "delete from user where Id = '$id';";
include("connexionBdd.php");
$rslt = mysql_query( $rqut );
mysql_close( $conn );

if ( !$rslt ) {
print( "Une erreur est survenue dans l'ajout.\n" );
exit;
} else {
include("listeU.php");
}
?>
</body>
</html>

il me retour ma listeU mais ne supprime pas.
si vous pouviez m'aider merci
A voir également:

19 réponses

sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
5 févr. 2008 à 10:40
bonjour, je ne comprend pas bien le code qui m'a été donnée et n'arrive toujours pas a récupérer mes données pouvez-vous m'aider s'il vous plait.
1
Bonjour,

Dans ta page supprimer-user.php , tu fais un joli tableau, mais si tu ne mets pas ça dans un formulaire, donc tu ne postera jamais rien en cliquant sur le bouton Submit

Il faut que ce soit entre des balises <form> </form>

en methode POST

et dans une liste déroulante par exemple.
ou si tu veux garder le bouton radio ce sera un peu plus compliqué il faudra lui donner value=id de l'utilisateur correspondant

Vas voir comme faire un formulaire a partir d'une BDD sur le site: www.siteduzero.com
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
31 janv. 2008 à 09:43
bonjour,
merci je vais voir le site. Mais mon tableau est bien dans dans les balises <form> </form>
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
31 janv. 2008 à 09:56
je n'arrive pas a mettre en value l'id de la personne
pouvez vous m'aider svp.
merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Je t'ai "sensiblement" modifié ton code de la première page, en utilisant plus des fonctions mysql de php:

<html>
<head>
<title>Supprimer un utilisateur</title>
</head>
<?php
include("header.html");
include ("connexionBdd.php");
$requete = "select Id, Nom, Prenom from user order by Nom asc ;";
$result = mysql_query($requete) or die ("Une erreur est survenue lors de la requette ".mysql_error());
mysql_close();// on peut fermer la connexion avec la base les resultats sont en mémoire
?>
<body>
<h2 align="center">Sélectionnez l'utilisateur que vous souhaitez supprimer</h2>
<form method='post' action="delete-user.php">
<?php
	$nbr_champs=mysql_num_fields($result);
	echo "<table align='center' border=1px>\n" ;
	echo "<tr>";
	//titres colonnes
	for($n=0;$n<$nbr_champs;$n++){
		echo "<th>mysql_field_name($result, $n)</th>";
	}
	echo "</tr>";
	// lignes de donnees
	while($donnees=mysql_fetch_array($result){// on parcours le tableau des résultats ligne par ligne 
		//le debut de ligne
		echo "<tr>";
		for($k=0;$k<$nbr_champs;$k++){
			echo "<td>$donnees[$k]</td>";
		}
		// les boutons radio
		echo"<td> <input type=\"radio\" value=\"$donnees[0]\" name=\"Id\" size=\"5\"> </td>";// si ton premier champ est bien Id
		
		//la fin de ligne
		echo "</tr>";
	}
	echo "<tr>";
	echo "<td colspan= align='center'> <input type='submit' value='Validez' name='validez'> </td>";
	echo"</tr>";
	echo"</table>";
?>
</form>
</body>
</html>
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
31 janv. 2008 à 14:37
merci
mais il me met une erreur au niveau de l'acolade du while je vais regardé de plus pret
merci
0
Effectivement mon erreur classique, j'oublie souvent cette parenthèse fermante:

	while($donnees=mysql_fetch_array($result)){// on parcours le tableau des résultats ligne par ligne 
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
1 févr. 2008 à 09:29
merci , sa c'est bon maintenant le seul petit truc c'est qu'il m'affiche pas le nom de m'es collones mais
mysql_field_name(Resource id #5, 0)
0
Bonjour,

Modifie ainsi cette partie:

//titres colonnes
	for($n=0;$n<$nbr_champs;$n++){
		echo "<th>".mysql_field_name($result, $n)."</th>";
	}
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
1 févr. 2008 à 10:15
merci beaucoup
j'ai un autre probleme vous pouvez peut-etre m'aidé. j'ai un formulaire composé d'un tableau dans lequel je souhaite récupéré une quantité mais je nb'arrive pas a relier la quantité a la fourniture et a la recupéré par la suite. voila mon code

<html>
<head>
<title> Formulaire </title>
</head>

<body>

<form method='post' action='tableauRecap.php'>

<?php
include("header.html");
include("connexionBdd.php");
include("date.php");

?>

<table>
<tr align='left'>
<td><b>Date: </b></td>
<td> <?php echo "$date"; ?> </td>
</tr>
<tr>
<td><b>Service</b></td>
<td><INPUT type='text' value='' name='service'></td>
</tr>
<tr>
<td><b>Utilisateur</b></td>
<td><INPUT type='text' value='' name='user'></td>
</tr>
</table>
<?php
print("<h1 align='center'> Liste des Fournitures </h1>");


$requete = "select Themes, Designations, Caracteristiques from fournitures order by Themes, Designations;";
$result = mysql_query($requete);

if (!$result) {
echo "Une erreur est survenue.\n";
exit;
}

$numligne = mysql_num_rows($result);
$numcol = mysql_num_fields($result);

for ($i=0;$i<$numcol;$i++) {
$tab_nom_col[$i] = mysql_field_name($result,$i);
}

for ( $i=0; $i<$numligne; $i++ ) {
$tab_ligne[$i] = mysql_fetch_row( $result );
}

mysql_close($conn);

//creation d'un tableau
print("<table align='center' border=1px>\n");
print("<tr>\n");

for($i=0;$i<$numcol;$i++){
print ("<th>$tab_nom_col[$i]</th>\n");
}
print("<td><b> Quantité <b></td>");
print("</tr>\n");

for ($i=0; $i<$numligne; $i++) {
print("<tr>\n");

foreach($tab_ligne[$i] as $col){
if (!$col) { $col=" "; }
print("<td>$col</td>\n");
}
print("<td> <INPUT type='text' value='' name='qte[]' size='5'> </td></tr>\n");
}
print("<tr> \n");
print("<td colspan=5 align='center'> <INPUT type='submit' value='Validez' name='validez'> </td> " );
print("</tr>");
print("</table>");
print("</form>");
?>

</body>

</html>

et ma recup
<?
if (isset($_POST['qte'])) {
foreach ($_POST['qte'] as $quantite) {
if($quantite!=""){
echo $quantite ;
echo '<br>';
}
}
}
?>
0
dans ton fichier recup, mets:

echo "<pre>";
print_r($_POST['qte'];// ou print_r($_POST; pour avoir tout
echo "</pre>";

pour voir ce qui est posté, car je ne suis pas sur que tu puisses mettre name="qte[]" pour un input type text, j'en ai utilisé pour des checkbox, mais pas pour des type text
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
1 févr. 2008 à 13:24
il met un met d'erreur concernant ; de la ligne print_r
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
1 févr. 2008 à 13:30
j'ai trouvé pourquoi il m'affiche un tableau
0
erreur de ma part, une petite ) oubliée

print_r($_POST['qte']);


cela va t'afficher un array avec comme clefs le nom des champs et comme valeur la valeur correspondante postée

Array( [champ1]=>"5" etc..

tu vois ainsi si ce que tu reçoit est bien ce que tu espérait
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
1 févr. 2008 à 13:59
ouai j'avait vu la paranthése qui manquai. sa affiche bien Array( [0]=> mais ... [4]=>1
donc quand il y aune valeur il me la revoie bien. le truc c'est qu'il faut que s'associe cette quantité a l'id de la fourniture et non a un nombre quelqu'on.
0
La ça va se compliquer un peu:

il faut que tu genere un name="...." en fonction de l'id


$nom="qte_".$id; // la valeur $i tu la retrouve dans ta requette , remplace $id par $tab_ligne[...] correspondant au champ ID
 print("<td> <INPUT type='text' value='' name='$nom' size='5'> </td></tr>\n");


ensuite pour récupérer, tu fais une boucle

foreach($_POST as $cle=>$value){
	if(substr($cle,0,4)=="qte_"){//si le champ commence par qte_
		$num_id_correspondant=substr($cle,4); // on recupere la fin => id
		${'id_'.$num_id_correspondant}=$valeur; // tu vas avoir tes variables $id_1  $id_2  avec les valeurs correspondantes
		// ou tu mets ça dans un array
	}
}
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
4 févr. 2008 à 09:31
bonjour, merci pour tona ide mais il me met un message d'erreur :
Notice: Undefined variable: valeur in C:\Program Files\EasyPHP 2.0b1\www\fournitures\tableauRecap.php on line 17
qui correspond à la ligne:
${'id_'.$num_id_correspondant}=$valeur;
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
6 févr. 2008 à 11:46
bonjour j'ai un peu modifier mon code pour parvenir a se que je veux mais j'ai encore un petit probleme.
si quelqu'un arrive a me solutionné sa serai gentil:

voila mon code:

<html>
<head>
<title> Formulaire </title>
</head>
<body>
<form method='post' action='tableauRecap.php'>
<?php
include("header.html");
include("connexionBdd.php");
include("date.php");
?>
<?php
print("<h1 align='center'> Liste des Fournitures </h1>");
$requete = "select Id, Themes, Designations, Caracteristiques from fournitures order by Themes, Designations;";
$result = mysql_query($requete);
if (!$result) {
echo "Une erreur est survenue.\n";
exit;
}
$numligne = mysql_num_rows($result);
$numcol = mysql_num_fields($result);
for ($i=0;$i<$numcol;$i++) {
$tab_nom_col[$i] = mysql_field_name($result,$i);
}
for ( $i=0; $i<$numligne; $i++ ) {
$tab_ligne[$i] = mysql_fetch_row( $result );
}
mysql_close($conn);
//creation d'un tableau
print("<table align='center' border=1px>\n");
print("<tr>\n");
for($i=0;$i<$numcol;$i++){
print ("<th>$tab_nom_col[$i]</th>\n");
}
print("<td><b> Quantité <b></td>");
print("</tr>\n");
for ($i=0; $i<$numligne; $i++) {
print("<tr>\n");

foreach($tab_ligne[$i] as $col){
if (!$col) { $col=" "; }
print("<td>$col</td>\n");
}
print("<td> <INPUT type='text' value='' name='qte[]' size='5'> </td></tr>\n");
print("<input type='hidden' value='$tab_ligne[0]' name='id[]'>");
}
print("<tr> \n");
print("<td colspan=5 align='center'> <INPUT type='submit' value='Validez' name='validez'> </td> " );
print("</tr>");
print("</table>");
print("</form>");
?>
</body>
</html>

et je recupere de la fçcon suivante:
<?php
if (isset($_POST['qte'])) {
foreach ($_POST['qte'] as $numlig => $quantite) {
if($quantite!=""){
foreach ($_POST['id'] as $numligId => $id){
if ($numligId == $numlig){
echo ('la quantite: '.$quantite.' num ligne: '.$numlig. ' num ligne id: '.$numligId.' Id: '.$id);
echo '<br>';
}
}
}
}

}
?>
0
sandrasch Messages postés 27 Date d'inscription jeudi 24 janvier 2008 Statut Membre Dernière intervention 13 février 2008 2
7 févr. 2008 à 09:28
j'ai fai autrement si s'a interresse:

<html>
<head>
<title> Formulaire </title>
</head>
<body>
<form method='post' action='tableauRecap.php'>
<?php
include("header.html");
include("connexionBdd.php");
include("date.php");
</table>
<?php
print("<h1 align='center'> Liste des Fournitures </h1>");
$requete = "select Id, Themes, Designations, Caracteristiques from fournitures order by Themes, Designations, Caracteristiques;";
$result = mysql_query($requete);
if (!$result) {
echo "Une erreur est survenue.\n"; exit;
}
$numligne = mysql_num_rows($result);
$numcol = mysql_num_fields($result);
for ($i=0;$i<$numcol;$i++) {
$tab_nom_col[$i] = mysql_field_name($result,$i);
}
for ( $i=0; $i<$numligne; $i++ ) {
$tab_ligne[$i] = mysql_fetch_row( $result );
}
mysql_close($conn);
for($j=0; $j<$numligne; $j++){
$id[$j] = $tab_ligne[$j][0];
}
//creation d'un tableau
print("<table align='center' border=1px>\n");
print("<tr>\n");
for($i=0;$i<$numcol;$i++){
print ("<th>$tab_nom_col[$i]</th>\n");
}
print("<td><b> Quantité <b></td>");
print("</tr>\n");
for ($i=0; $i<$numligne; $i++) {
print("<tr>\n");
foreach($tab_ligne[$i] as $col){
if (!$col) { $col=" "; }
print("<td>$col</td>\n");
}
print("<td> <INPUT type='text' value='' name='qte[]' size='5'> </td></tr>\n");
print("<input type='hidden' value='$id[$i]' name='id[]'>");
}
print("<tr> \n");
print("<td colspan=5 align='center'> <INPUT type='submit' value='Validez' name='validez'> </td> " );
print("</tr>");
print("</table>");
print("</form>");
?>
</body>
</html>

et pour recup:
<?php
include("connexionBdd.php");
$requete = "select Id, Themes, Designations, Caracteristiques from fournitures order by Themes, Designations, Caracteristiques;";
$result = mysql_query($requete);
if (!$result) {
echo "Une erreur est survenue.\n";
exit;
}
$numligne = mysql_num_rows($result);
$numcol = mysql_num_fields($result);
for ($i=0;$i<$numcol;$i++) {
$tab_nom_col[$i] = mysql_field_name($result,$i);
}
for ( $i=0; $i<$numligne; $i++ ) {
$tab_ligne[$i] = mysql_fetch_row( $result );
}
mysql_close($conn);
?>
<html>
<head>
<title> Formulaire </title>
</head>
<body >
<?php
include("header.html");
include("date.php");
//creation d'un tableau
print("<table align='center' border=1px width=100%>\n");
print("<tr align='center'>\n");
print("<td colspan=5> <b> Demande <b> </td>");
print("<td colspan=3> <b> Reponse <b> </td>");
print("</tr>\n");
print("<tr>\n");
for($i=0;$i<$numcol;$i++){
print ("<th>$tab_nom_col[$i]</th>\n");
}
print("<td><b> Quantité <b></td>");
print("<td width=10%><b> Date <b></td>");
print("<td><b> Quantité <b></td>");
print("<td><b> Nom et Signature <b></td>");
print("</tr>\n");
if (isset($_POST['qte'])) {
foreach ($_POST['qte'] as $numlig => $quantite) {
if($quantite!=""){
foreach ($_POST['id'] as $numligId => $id){
if ($numligId == $numlig){
print("<tr>\n");
$i=$numlig;
foreach($tab_ligne[$i] as $col){
if (!$col) { $col=" "; }
print("<td>$col</td>\n");
}
print("<td align='center'> $quantite </td>");
print("<td style='color:while;'> .</td>");
print("<td style='color:while;'> .</td>");
print("<td> .</td>");
}
}
}
}
}
print("</tr>\n");
print("</table>");
print("</form>");
?>
<table width=100%>
<tr>
<td align="center"><h4><a href = "formulaire.php"> Retour </a></h4></td>
</tr>
</table>
</body>
</html>
0