Supprimer plusieur fichier present dans ma base de donné

Eléphant du PHP | 450 Messages

07 juil. 2005, 14:37

Bonjour ,
J'ai un petit probleme.
J'ais un tableau qui s'affiche montrant ce que contient ma table commande (mysql)

voila mon tableau
echo "<BR><FORM method=\"POST\" action='commande.php'><table border=1>";

echo "<th>Nom</th><th>Quantité</th><th>Nombre d'unité</th><th>Fournisseur</th><th>Prix à l'unité</th><th>Prix totale</th><th>Prix avec reduction</th><th>Numero de cas</th><th>Date</th><th>initiale</th><th>Supprimer</th>";

while ($voir = mysql_fetch_assoc($result)) {

$selec= "SELECT reduction from fournisseur where fournisseur2 like  '".$voir['fournisseur']."'";
$result2 = mysql_query($selec,$link) or die ('Erreur : '.mysql_error() );
$voir2 = mysql_fetch_assoc($result2);

$reduc = $voir2['reduction'];
$reduc2 = preg_replace("#,#", ".", $reduc);

if ($reduc2==0)
{
$reduction = $voir['prix_total'];
}
else
{
$reduction = $voir['prix_total']*$reduc2;
}

echo"<tr>
<td><font face='Verdana' size='2'>".$voir['nom']."</font></td>
<td><font face='Verdana' size='2'>".$voir['quantite']."</font></td>
<td><font face='Verdana' size='2'>" .$voir['nombre_quantite']. "</font></td>
<td><font face='Verdana' size='2'>" .$voir['fournisseur']. "</font></td>
<td><font face='Verdana' size='2'>" .$voir['prix']. "</font></td>
<td><font face='Verdana' size='2'>" .$voir['prix_total']. "</font></td>
<td><font face='Verdana' size='2'>$reduction</font></td>
<td><font face='Verdana' size='2'>" .$voir['numero_cass']. "</font></td>
<td><font face='Verdana' size='2'>" .$voir['date']. "</font></td>
<td><font face='Verdana' size='2'>" .$voir['initiale']. "</font></td>
<td><font face='Verdana' size='2'><div style=\"text-align:center;\"><input type=\"checkbox\" name=\"supp\" value=1></div></font></td></tr>";
}
echo "<tr><td colspan=11><div style=\"text-align:center;background-color:#ffffff;\"><input type=\"submit\" class=\"verif\" name=\"supprimer\" value=\"Supprimer\" />
<input type=\"submit\" value=\"Imprimer\" onclick=\"print();\">
<input type=\"submit\" value=\"fermer\" onClick=\"window.close()\";></div></TD></tr>";
echo "</table></form>"; 
Comme vous avez pus le voir mon tableau a un while pour afficher toute les lignes .

Le problemes qui se pose maintenant est que lorsque je clike sur mes checkbox jaimerai ke lorsque soit coché et que lorsque j'appuis sur mon bouton supprimer seul les produit sur la ligne des checkbox ki sont coché soit effacé..

hors j'ais beau essaillez les manieres de procédés je n'y arrive pas ..

est ce que quelqun pourrait maider a batir ma requete :? :? :? car la javoue que je suis perdu : //

merci encore
Modifié en dernier par castelli le 07 juil. 2005, 15:23, modifié 1 fois.
Alone in the dark , I smile :D

Eléphanteau du PHP | 21 Messages

07 juil. 2005, 14:52

De la mamière dont les checkboxs sont faite tu risques d'avoir un problème, puisqu'elles auront toute le meme nom et le meme value. Ce qu'il faudrait pour commencer c'est leur attribué le value de l'id qui correspond au produit comme ça elles seront unique.

Pour la suite (supprimer) faut que j'y réfléchisse. :D

Eléphant du PHP | 450 Messages

07 juil. 2005, 14:57

Vi vi desolé ta raison (javais mis sa pour un test lol

comme sa c'est mieu :) lol

<td><font face='Verdana' size='2'><div style=\"text-align:center;\"><input type=\"checkbox\" name=\"supp\" value=\".$voir['nom'].\"></div></font></td>

apres par contre.........
je sait du tout comment batir la requete c'est ce qui me pose la plus de probleme : //
Alone in the dark , I smile :D

Eléphant du PHP | 450 Messages

07 juil. 2005, 15:28

y'a t'il moyen de batir quelqures chose dans le genre

if (checkbox=checked )

{

$query="DELETE FROM produit2 WHERE nom LIKE '\".$voir['nom'].\"'";
$resultat=mysql_query($query);

}
Alone in the dark , I smile :D

Eléphanteau du PHP | 21 Messages

07 juil. 2005, 15:43

y'a t'il moyen de batir quelqures chose dans le genre
Ui y a moyen, déja ça ne serai pas =checked mais if($_POST['supp'] == TRUE).

Ensuite, il faudrait le intégré ça dans une boucle et j'ai beau chercher, je débute aussi, alors toute mes tentatives on échoué.

Eléphant du PHP | 450 Messages

07 juil. 2005, 16:08

a d'accord : //

si quelqu'un d'autre a une idée...

je susi preneur :oops:
Alone in the dark , I smile :D

Mammouth du PHP | 1353 Messages

07 juil. 2005, 16:11

Je pense avoir exactement ce qu il te faut

Ceci est un code que j ai écrit qui affiche une liste d utilisateurs enregistrés et propose a coté de chacun une case a cocher. A la fin quand on clique sur remove ca supprime tous les utilisateurs cochés.
<?php
//Page affichant les utilisateurs et proposant la suppression ou l ajout
//la suppression se fait par un appel a soi meme, l'ajout par un lien vers une autre page
// connexion à la base
include("connexion_admin.php");
?>
<html>

<head>
<title>Manage users</title>
<?php include ("style.php");?>
</head>
<body bgcolor="#000000">
<p class="style3">Manage users:</p>
<p class="style1"><a href=add_user.php>Add a new user</a></p>
<p class="style1">Or select user(s) you want to delete and click on the button at the end of the list.<BR>(admins are in red)</p>

<?php
//si c'est un deuxième appel avec postage, on supprime les utilisateurs postés précedemment
if(isset($_POST['list_users'])){
$list=$_POST['list_users'];
for($i=0;$i<count($list);$i++)
	{
	$rqSql= "DELETE FROM users WHERE Name='$list[$i]'";
	$result = mysql_query( $rqSql, $idConnect) or die( "Suppression impossible.");
	}
}
//récupération de la liste des utilisateurs
$rqSql= "SELECT * FROM users ORDER by Name";
$result = mysql_query( $rqSql, $idConnect) or die( "Exécution requête1 impossible.");
?>
<form name="users" method="post" action="admin_users.php">
<BR><input type="submit" value="Delete selected"><BR><BR>
<table width="500" border="0">
  <?php
while($ligne=mysql_fetch_array($result))
	{
	echo "<tr>";
	echo "<TD><span class=\"style$ligne[2]\"><input type=\"checkbox\" name=\"list_users[]\" value='$ligne[0]'>&nbsp$ligne[0]</TD>";
	echo "<TD><span class=\"style$ligne[2]\"><div align=\"left\">$ligne[1]</div></TD>";
	echo "</TR>";
	}
	?>
</table>
<BR>
<input type="submit" value="Delete selected">
</form>
</body>
</html>
L'idée c'est de rappeller la page elle meme en regardant si on a recu une liste et si oui on la traite.

Je pense que ca t aidera tiens moi au courant

Eléphanteau du PHP | 21 Messages

07 juil. 2005, 16:26

Heps j'étais pas loin du tout, j'avais pensé à ça mais chez moi j'ai eu un problème et j'ai pas trop le temps de chercher en se moment :
if($_POST){
$supp = array($_POST['supp']);
$i=0;
while($i <= count($supp){
 //Requette pour supprimer
$i++
}}

Eléphant du PHP | 450 Messages

07 juil. 2005, 16:31

J'aurais une petite question...

A quoi correspond list_user et pourquoi dans les checkbox tu le met avec des [] apres ??

sinon moi au niveau de la requete jvai jamais reussir
jdois comparer avec le nom de la molecule en faite (celle qui apparait dans le tableau ...

$rqSql= "DELETE FROM commande WHERE nom='$nom'";
$result = mysql_query( $rqSql, $idConnect) or die( "Suppression impossible.");

c faisable d'inserer sa dans ma requete ?
Alone in the dark , I smile :D

Eléphanteau du PHP | 21 Messages

07 juil. 2005, 16:49

A quoi correspond list_user et pourquoi dans les checkbox tu le met avec des [] apres ??
list_user correspond tout simplement à toute les checkbox et s'il mets des [0] [1] .. c'est pour ressortir les infos de le bdd. Comme toi tu mets ['nom'] lui mets [1], il n'utilise pas la meme fonction que toi pour ressortir les résultat, lui utilise mysql_fetch_array() alors que toi tu dois utiliser mysq_fetch_assoc()

Corrige moi si je me trompe guilt92

Eléphant du PHP | 450 Messages

07 juil. 2005, 16:56

Bon voila ou je suis rendu

mon echo rqSql; donne sa :DELETE FROM commande WHERE nom='..'

donc je dois avoir des mega faute dans la requete (ce dont je ne doute absolument pas lol )


voila mon code

if(isset($_POST['supp'])){
$list=$_POST['supp'];
for($i=0;$i<count($list);$i++) 
{
    $rqSql= "DELETE FROM commande WHERE nom='$list[$i]'";
    $result3 = mysql_query( $rqSql, $link) or die( "Suppression impossible.");
    }
} 
echo $rqSql;
$select = "SELECT * from commande ";

$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );

$row = mysql_num_rowS($result);



if ($row >=1)

{
echo "<BR><FORM method=\"POST\" action='commande.php'><table border=1>";

echo "<th>Nom</th><th>Quantité</th><th>Nombre d'unité</th><th>Fournisseur</th><th>Prix à l'unité</th><th>Prix totale</th><th>Prix avec reduction</th><th>Numero de cas</th><th>Date</th><th>initiale</th><th>Supprimer</th>";

while ($voir = mysql_fetch_assoc($result)) {


$selec= "SELECT reduction from fournisseur where fournisseur2 like  '".$voir['fournisseur']."'";
$result2 = mysql_query($selec,$link) or die ('Erreur : '.mysql_error() );
$voir2 = mysql_fetch_assoc($result2);



$reduc = $voir2['reduction'];
$reduc2 = preg_replace("#,#", ".", $reduc);



if ($reduc2==0)
{
$reduction = $voir['prix_total'];
}
else
{

$reduction = $voir['prix_total']*$reduc2;

}


echo"<tr>
<td><font face='Verdana' size='2'>".$voir['nom']."</font></td>

<td><font face='Verdana' size='2'>".$voir['quantite']."</font></td>

<td><font face='Verdana' size='2'>" .$voir['nombre_quantite']. "</font></td>


<td><font face='Verdana' size='2'>" .$voir['fournisseur']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['prix']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['prix_total']. "</font></td>

<td><font face='Verdana' size='2'>$reduction</font></td>

<td><font face='Verdana' size='2'>" .$voir['numero_cass']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['date']. "</font></td>

<td><font face='Verdana' size='2'>" .$voir['initiale']. "</font></td>
<td><font face='Verdana' size='2'><div style=\"text-align:center;\"><input type=\"checkbox\" name=\"supp[]\" value=\".$voir['nom'].\"></div></font></td></tr>";

}
echo "<tr><td colspan=11><div style=\"text-align:center;background-color:#ffffff;\"><input type=\"submit\" value=\"supprimer\">
<input type=\"submit\" value=\"Imprimer\" onclick=\"print();\">
<input type=\"submit\" value=\"fermer\" onClick=\"window.close()\";></div></TD></tr>";
echo "</table></form>"; 

}
print("<p>Retour vers l'Index, cliquez <a href=\"index.html\" title=\"Retour a l'index\">ICI</a></p>");

?>
</body></html>
si vous voyez des trucs que j'ais mal traduit.. dite moi s'il vous plait

(en gros je suis pommé au nivo de :


if(isset($_POST['supp'])){
$list=$_POST['supp'];
for($i=0;$i<count($list);$i++)

je c'est pas trop comment faire ...
Alone in the dark , I smile :D

ViPHP
pjl
ViPHP | 2119 Messages

07 juil. 2005, 17:02

Pas la peine de faire une série de X requête pour traiter tes supressions.
Ca peut se faire avec une seule requete sous cette forme :

Code : Tout sélectionner

DELETE FROM ta_table WHERE identifiant IN (blabla)

Mammouth du PHP | 1353 Messages

07 juil. 2005, 17:21

A quoi correspond list_user et pourquoi dans les checkbox tu le met avec des [] apres ??
list_user correspond tout simplement à toute les checkbox et s'il mets des [0] [1] .. c'est pour ressortir les infos de le bdd. Comme toi tu mets ['nom'] lui mets [1], il n'utilise pas la meme fonction que toi pour ressortir les résultat, lui utilise mysql_fetch_array() alors que toi tu dois utiliser mysq_fetch_assoc()

Corrige moi si je me trompe guilt92
Ce que tu dis est vrai pour ligne[]. Pour list user en fait c'est le fait de mettre [] génère un groupe de case à cocher et renvoi au final un tableau avec justement les valeurs a supprimer : Plus d explications

Si tu n as pas de solutions j essayerai de regarder ton code demain.

Bon courage

Eléphant du PHP | 450 Messages

07 juil. 2005, 17:26

merci encore jvai essaillez de me debrouillez tout seul et pis si je suis desespéré je ferais appelle a aide phpinternationale ;)

merci encore de vous aide penché sur mon probleme et donc peut etre a demain lol
Alone in the dark , I smile :D

Eléphanteau du PHP | 21 Messages

07 juil. 2005, 17:57

Code : Tout sélectionner

DELETE FROM ta_table WHERE identifiant IN (blabla)
C'est ce que je cherchais sans le trouver merci
Mais je ne vois pas ce que tu mets après IN.

Bonne continuation Castelli ;)