Supprimer plusieur fichier present dans ma base de donné

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Supprimer plusieur fichier present dans ma base de donné

par pjl » 08 juil. 2005, 12:35

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 ;)
dans le IN, on met les identifiants correspondant aux lignes que l'on veut supprimer séparés par une virgule.

par castelli » 08 juil. 2005, 10:46

J'ai remodifier certaine chose et sa marche :
$nom = $voir['nom'];

echo"<tr>
<td><font face='Verdana' size='2'>$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=\"$nom\"></div></font></td></tr>";

}
est ce par ce que je passe par une variable ou bien a cause que a laplace des simple ' jai mis des doubles " pour le values de ma checkbox je ne sait pas trop ma en tout cas sa fonctionne

Yeahhhhhh :lol: :lol: :lol:

Merci encore a tous ;)

par castelli » 08 juil. 2005, 10:37

Bon apres avoir essaillé pas mal de changement j'arrive a sa :


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>
mon echo m'indique toujours que:

DELETE FROM commande WHERE nom=''

Ma requete ne peut donc fonctionner (avec un ou plusieur produit selectionenr sa fait pareuils ..)

jme demandait donc si l'un de vous a une idée car la je sature..

(en plsu je doit presenter mon site ce soir devant mes maitre de stage alors je balise un peu lol)

merci encore

par guilt92 » 08 juil. 2005, 09:29

<input type=\"checkbox\" name=\"supp[]\" value=[b]'$voir['nom']'[/b]></div></font></td></tr>"; 
Essaye comme ca. A priori le probleme se passe durant la construction de supp[] et je pense que c une histoire de "".

Bon courage

par Darfox » 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 ;)

par castelli » 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

par guilt92 » 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

par pjl » 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)

par castelli » 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 ...

par Darfox » 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

par castelli » 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 ?

par Darfox » 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++
}}

par guilt92 » 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

par castelli » 07 juil. 2005, 16:08

a d'accord : //

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

je susi preneur :oops:

par Darfox » 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é.