Suppression en masse

Mammouth du PHP | 1668 Messages

01 mai 2008, 17:56

Je suis entraint de creer un script qui permettrait à l'utilisateur de supprimmer plusieurs photos de son album, mon problème est le suivant, j'aimerais vérifier que cette/ces photo lui appartien(nen)t et j'aimerais les supprimmer.
J'avais pensé à faire un count() (WHERE id=id_photo AND id_proprietaire=id_utilisateur) si c'est égale à 1 on supprimme si non bah on lui affiche "désolé la faille est ailleur, essai encore :)". Mais cela présente 2 problèmes, 2 requêtes surchargerais ma base de donnée et si il coche 50 photos...
Voilà vous savez tout :roll: même la réponse :wink: ... enfin j'espère :lol:

PS : SGBDR : PostGreSQL dernière version
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

ViPHP
ViPHP | 1996 Messages

03 mai 2008, 11:17

Hmmm je te dirai d'abord de récupérer toutes les photos de ton utilisateur dans un tableau de type :
$sql="SELECT  id FROM table WHERE id_proprietaire=id_utilisateur";
$resultat_sql = mysql_query($sql);

$k=0;
While ($resultat = mysql_fetch_row($resultat_sql))
{
$tab_photo[$k] = $resultat[0];
$k++;
}
Ensuite en PHP tu fais un test avec in_array sur $tab_photo
if (!in_array($_POST["valeur"],$tab_photo))
{
//pas de suppression
}
else
{
//suppression
}
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 1668 Messages

03 mai 2008, 11:54

J'avais pensé à ça :
<?php
if (isset($_POST['photos_form']) AND $_POST['photos_form']!="") {
			
			if (is_array($_POST['photos_form'])) {
				$tableau_des_suppressions=intval(htmlentities(addslashes($_POST['photos_form'])));
		
			
			foreach ($tableau_des_suppressions as $id_photos_foreach)
			{
				if (!isset($list_id_photos_a_suprimmer)) {
					$list_id_photos_a_suprimmer="id='".intval(addslashes($id_photos_foreach))."'";
				}
				else {
					
			$list_id_photos_a_suprimmer=$list_id_photos_a_suprimmer." OR id='".intval(addslashes($id_photos_foreach))."'";
				}
			}
		}
		else {
			$list_id_photos_a_suprimmer="id='".intval(addslashes($id_photos_foreach))."'";
		}
		
			$verification_avant_suppression_sql=$connexion->execute("SELECT count (*) AS nb_photo_ok_verification FROM photos_membres WHERE ".$list_id_photos_a_suprimmer." AND id_membre='".quote(intval(addslashes($id_membre)), PDO::PARAM_STR)."'");
			
			$verification_avant_suppression_nb=$verification_avant_suppression_sql->fetch(PDO::FETCH_OBJ);
			if ($verification_avant_suppression_nb->nb_photo_ok_verification==count($tableau_des_suppressions)) {
			$suppression_photos_sql=$connexion->execute("DELETE FROM photos_membres WHERE ".quote($list_id_photos_a_suprimmer, PDO::PARAM_STR)." AND id_membre='".quote(intval(addslashes($id_membre)), PDO::PARAM_STR)."'");

						
			echo 'Vos '.count(intval(addslashes($tableau_des_suppressions))).' photos on été effacées avec succès';
			}
			else {
				echo 'Vous avez sélectionné des photos qui ne sont pas à vous, essayez a nouveau...';
			}
?>
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol