8797 sujets

Développement web côté serveur, CMS

Bonjour,
J'ai un problème avec une condition et après avoir lu la doc et testé plusieurs fois, je ne trouve toujours pas la faille !
Je teste si lors d'une suppression d'une actu sur un site il y a une image liée à cette article elle s'efface également du serveur..
Ca ne marche pas pourtant ma condition à l'air bonne !

if($suppression=="oui") 
{
        if($image!="") {
		$sql = "select image from actualites where id='$id'";
        $q = mysql_query($sql);
        $number = mysql_num_rows($q);
        $im=0;
        if($number>$i){
         $img = mysql_result($q,$im,"image");
         unlink("../../images_up/$img");
        }

        $sql2 = "delete from actualites where id='$id'";
        $q2 = mysql_query($sql2);
		} else {
		
		$sql3 = "select image from actualites where id='$id'";
        $q3 = mysql_query($sql3);
        $sql4 = "delete from actualites where id='$id'";
        $q4 = mysql_query($sql4);
		}		
}
Salut, j'ai arrangé la concaténation de tes variables dans les requêtes, est-ce que ça fonctionne comme ça :

<?php
if($suppression=="oui") 

{

        if($image!="") {

		$sql = "select image from actualites where id='".$id."'";

        $q = mysql_query($sql);

        $number = mysql_num_rows($q);

        $im=0;

        if($number>$i){

         $img = mysql_result($q,$im,"image");

         unlink("../../images_up/".$img."");

        }



        $sql2 = "delete from actualites where id='".$id."'";

        $q2 = mysql_query($sql2);

		} else {

		

		$sql3 = "select image from actualites where id='".$id."'";

        $q3 = mysql_query($sql3);

        $sql4 = "delete from actualites where id='".$id."'";

        $q4 = mysql_query($sql4);

		}		

}
Salut !

je ne vois pas bien d'où proviennent tes variables $image et $i mais il me semble de toutes façons plus logique de faire :
<?php
if($suppression == "oui") {
	$sql = "select image from actualites where id='$id'";
	$q = mysql_query($sql);
	$number = mysql_num_rows($q);
	if($number > 0){ //une image a été trouvée
		$img = mysql_result($q, 0, "image");
		unlink("../../images_up/$img");
	}
	$sql2 = "delete from actualites where id='$id'";
	$q2 = mysql_query($sql2);
}
?>

A+ Smiley smile
merci à vous deux !!
pour baloo, l'actu s'efface sans mettre d'erreur concernant l'image si elle n'existe pas mais l'image ne s'efface plus du serveur Smiley decu
je vais tester aussi la correction de heyoan et je reviens vers vous
je viens de tester le script d'heyoan...
j'ai la meme erreur qu'au départ...
même si l'actualité n'a pas d'images, la requete delete cherche une image associée et donc me fait une erreur dans la page web..
l'actu s'efface mais je ne comprends pas pourquoi la condition ne marche pas !
Ah oui ! Exact Smiley cligne !
<?php
if($suppression == "oui") {
	$sql = "select image from actualites where id='$id'";
	$q = mysql_query($sql);
	$img = mysql_result($q, 0, "image");
	if($img != ''){ //une image a été trouvée
		$filename = '../../images_up/'.$img;
		if (file_exists($filename)) {
			unlink($filename);
		}
	}
	$sql2 = "delete from actualites where id='$id'";
	$q2 = mysql_query($sql2);
}
?>

La condition ne fonctionnait pas car un enregistrement est bien trouvé (mysql_num_rows > 0) mais c'est juste le champ image qui est vide Smiley langue !
Modifié par Heyoan (09 Jan 2008 - 16:46)
ok j'ai corrigé !!! je vais faire attention à la forme de mes boucles maintenant meme si j'ai les cheveux raides ; )
en tout cas merci à vous !