unlink()

Répondre
Sammuel
le 13/09/2007 à 17:18
Sammuel
Avec le PHP, il suffit de faire des petits tests a certains endroits de ton script pour voir ou ca flanche :D

Déja changé "mysql_fetch_row" en "mysql_fetch_array" ou "mysql_fetch_assoc".

Sinon, ton script à l'air ok... mais quand est ce que tu te connectes à ta base de données ?

Dans ta fonction, tu n'as que :
$requete = "SELECT image FROM news WHERE id = '".$id."'";
$resultat = mysql_query ($requete, $connexion);


As tu un code de ce genre quelque part ??
$db = mysql_connect('localhost', 'root', '');  
mysql_select_db('xxxxxx',$db);


Car si tu ne te connectes pas a ta BDD, c'est sure, ca ne va pas fonctionner :D
Sammuel
le 13/09/2007 à 17:25
Sammuel
As oui tu fais un include du fichier connection au début ! :p

Sinon, tu peux faire des tests !! pour voir ou ca cloche.

Exemple, si tu ajoutes cette ligne dans la fonction sous '$requete' :

$count = mysql_num_rows($requete);
echo $count;


Qu'est ce que ca t'indique ??

Sinon, tu peux faire un echo de $requete et tester la ligne retournée dans PHPmyadmin, dans l'onglet SQL !
rock69
le 17/09/2007 à 14:01
rock69
Bonjour,
c'est vraiment sympa de vous donner autant de mal… après plusieurs essais, je n'y arrive toujours pas :-(

Sammuel, j'ai essayé d'intégrer le code juste après la requête mais ça ne m'indique rien : mais je l'ai peut-être pas placé au bon endroit…

voici le code dans son intégralité… si ça peut être plus clair… encore merci


<html>
<head>
<style type="text/css">
<!--
body {
background-color: #E5E5E5;
}
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
-->
</style>
</head>
<body>

<?php

echo $_POST[numero]."<br><br>";
echo $_POST[parution]."<br><br>";
echo nl2br(stripslashes($_POST[contenu]))."<br><br>";


echo "<br><br>";

function CopiePhoto() {
if($_FILES[image][size]>1) {
copy($_FILES[image][tmp_name], "images/".$_FILES[image][name]);
}// if
}

function SupprimerPhoto() {
$requete = "SELECT * FROM news WHERE id=$_GET[id]";
$resultat = mysql_query ($requete, $connexion);
while ($data = mysql_fetch_array ($resultat)) {
unlink ("images/".$data[image]);

}
}


include ("connexion.php");


$connexion = mysql_connect($host, $user, $pass);

$base = "mabase";

mysql_select_db($base, $connexion);

include ("miseEnForme.php");

if($_GET[action] == "delete") {
$supprimer = "DELETE FROM news WHERE id=$_GET[id]";
mysql_query ($supprimer, $connexion);
}
elseif ($_GET[action]=="update") {
CopiePhoto();
$modifier = "UPDATE news SET id='$_GET[id]', numero='$_POST[numero]', parution='$_POST[parution]', contenu='$_POST[contenu]', image='".$_FILES[image][name]."' WHERE id='$_GET[id]'";
mysql_query ($modifier, $connexion);
}
elseif ($_GET[action]=="insert") {
CopiePhoto();
$ajouter = "INSERT news SET id='', numero='$_POST[numero]', parution='$_POST[parution]', contenu='$_POST[contenu]', image='".$_FILES[image][name]."'";
mysql_query ($ajouter, $connexion);
}
elseif ($_GET[action] == "deletePhoto") {
SupprimerPhoto();
}



$requete = "SELECT * From news order by id DESC";
$resultat = mysql_query ($requete, $connexion);
?>
<table border=1 width=600>
<?

while ($data = mysql_fetch_row ($resultat)) {
list ($id, $numero, $parution, $contenu, $image) = $data;

echo "<tr><td valign='top' width='325' border='1'>";
echo "<h3>".$numero.' - '.$parution."</h3>";
echo resumeTexte($contenu)."<br><br>";
echo "</td><td valign='center' width='200'>";
echo "<div align='center'><img src='images/".$image."' width='140' height='200'></div><br>";
echo "</td><td valign='top' width='25'>";
echo "<a href='news_exe.php?id=$id&action=delete' onclick='return confirm (\"Supprimer cet enregistrement ?\");'><img src='images/supprimer.gif'></a>";
echo "</td><td valign='top' width='25'>";
echo "<a href='form_news.php?id=$id&action=update'><img src='images/modifier.gif'></a>";
echo "</td><td valign='top' width='25'>";
echo "<a href='news_exe.php?id=$id&action=deletePhoto'>Supprimer la photo</a>";
echo "</td></tr>";

}
?>

</td><td><a href='form_news.php?action=insert'><img src='images/ajouter.gif'></a></td></tr>

</table>

</body>
</html>
Keika
le 18/09/2007 à 14:06
Keika
Hey, Sammuel a raison, tu mets la connexion a ta BDD apres tes fonctions... ca ne peut donc pas marcher. Mets la connexion en debut de page, meme avant la balise <html>
Le PHP --> C'est dur !
Keika
le 18/09/2007 à 14:14
Keika
Desole, double post.

Tu es sur d'avoir tout les parametres dans ton url ? J'entends action=deletePhoto&id=1 ?
Le PHP --> C'est dur !
rock69
le 18/09/2007 à 16:11
rock69
Salut,
Les paramètres passent visiblement bien dans l'url :
news_exe.php?id=29&action=deletePhoto

j'ai placé la connexion de la BD avant la fonction mais c'est idem l'image n'est toujours pas supprimée :-(
voici le code

<html>
<head>
<style type="text/css">
<!--
body {
background-color: #E5E5E5;
}
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
-->
</style>
</head>
<body>

<?php

echo $_POST[numero]."<br><br>";
echo $_POST[parution]."<br><br>";
echo nl2br(stripslashes($_POST[contenu]))."<br><br>";

include ("connexion.php");

$connexion = mysql_connect($host, $user, $pass);

$base = "mabase";

mysql_select_db($base, $connexion);

function CopiePhoto() {
if($_FILES[image][size]>1) {
copy($_FILES[image][tmp_name], "images/".$_FILES[image][name]);
}// if
}

function SupprimerPhoto($id) {
$requete = "SELECT * FROM news WHERE id=$_GET[id]";
$resultat = mysql_query ($requete, $connexion);
while ($data = mysql_fetch_array ($resultat)) {
unlink ("images/".$data[image]);

}
}

include ("miseEnForme.php");

if($_GET[action] == "delete") {
$supprimer = "DELETE FROM news WHERE id=$_GET[id]";
mysql_query ($supprimer, $connexion);
}
elseif ($_GET[action]=="update") {
CopiePhoto();
$modifier = "UPDATE news SET id='$_GET[id]', numero='$_POST[numero]', parution='$_POST[parution]', contenu='$_POST[contenu]', image='".$_FILES[image][name]."' WHERE id='$_GET[id]'";
mysql_query ($modifier, $connexion);
}
elseif ($_GET[action]=="insert") {
CopiePhoto();
$ajouter = "INSERT news SET id='', numero='$_POST[numero]', parution='$_POST[parution]', contenu='$_POST[contenu]', image='".$_FILES[image][name]."'";
mysql_query ($ajouter, $connexion);
}
elseif ($_GET[action] == "deletePhoto") {
SupprimerPhoto($id);
}



$requete = "SELECT * From news order by id DESC";
$resultat = mysql_query ($requete, $connexion);
?>
<table border=1 width=600>
<?

while ($data = mysql_fetch_row ($resultat)) {
list ($id, $numero, $parution, $contenu, $image) = $data;

echo "<tr><td valign='top' width='325' border='1'>";
echo "<h3>".$numero.' - '.$parution."</h3>";
echo resumeTexte($contenu)."<br><br>";
echo "</td><td valign='center' width='200'>";
echo "<div align='center'><img src='images/".$image."' width='140' height='200'></div><br>";
echo "</td><td valign='top' width='25'>";
echo "<a href='news_exe.php?id=$id&action=delete' onclick='return confirm (\"Supprimer cet enregistrement ?\");'><img src='images/supprimer.gif'></a>";
echo "</td><td valign='top' width='25'>";
echo "<a href='form_news.php?id=$id&action=update'><img src='images/modifier.gif'></a>";
echo "</td><td valign='top' width='25'>";
echo "<a href='news_exe.php?id=$id&action=deletePhoto'>Supprimer la photo</a>";
echo "</td></tr>";

}
?>

</td><td><a href='form_news.php?action=insert'><img src='images/ajouter.gif'></a></td></tr>

</table>

</body>
</html>
rock69
le 18/09/2007 à 16:15
rock69
vraiment désolé de ne pas y arriver malgré vos explications…
bibi
le 18/09/2007 à 17:19
bibi
deja.

met ton "images/".$data['image'] dans une variable et affiche la. Ensuite, si cela ressemble à un chemin correct, fait un file_exist ou ce que tu veux pour voir si le chemin est correct par rapport au dossier d'ou tu appelles ton script.
commit suicide
Keika
le 19/09/2007 à 06:02
Keika
et aussi peut etre un or die('erreur SQL ! '.mysql_error() ; apres ton mysql_query pour voir si ta requete passe bien
Le PHP --> C'est dur !
rock69
le 19/09/2007 à 13:32
rock69
Salut,

"images/".$data[image] : chemin correct

par contre, keika effectivement ma requête ne passait pas… j'obtenais : Erreur SQL !
SELECT * From news WHERE id='2'

j'ai rajouté la connexion directement dans la fonction
require ("../private/connexion.php");
et là tout fonctionne ;-)




mon code à jour
<html>
<head>
<style type="text/css">
<!--
body {
background-color: #E5E5E5;
}
body,td,th {
font-family: Arial, Helvetica, sans-serif;
font-size: 12px;
color: #000000;
}
-->
</style>
</head>
<body>

<?php

echo $_POST[numero]."<br><br>";
echo $_POST[parution]."<br><br>";
echo nl2br(stripslashes($_POST[contenu]))."<br><br>";

include ("../private/connexion.php");


function CopiePhoto() {
if($_FILES[image][size]>1) {
copy($_FILES[image][tmp_name], "images/".$_FILES[image][name]);
}// if
}

function SupprimerPhoto($id) {
require ("../private/connexion.php");
$requete = "SELECT * From news WHERE id='$_GET[id]'";
$resultat = mysql_query ($requete, $connexion) or die('Erreur SQL !<br />'.$requete.'<br />'.mysql_error());
while ($data = mysql_fetch_array ($resultat)) {
unlink ("images/".$data[image]);
}
}

include ("miseEnForme.php");

if($_GET[action] == "delete") {
$supprimer = "DELETE FROM news WHERE id=$_GET[id]";
mysql_query ($supprimer, $connexion);
}
elseif ($_GET[action]=="update") {
CopiePhoto();
$modifier = "UPDATE news SET id='$_GET[id]', numero='$_POST[numero]', parution='$_POST[parution]', contenu='$_POST[contenu]', image='".$_FILES[image][name]."' WHERE id='$_GET[id]'";
mysql_query ($modifier, $connexion);
}
elseif ($_GET[action]=="insert") {
CopiePhoto();
$ajouter = "INSERT news SET id='', numero='$_POST[numero]', parution='$_POST[parution]', contenu='$_POST[contenu]', image='".$_FILES[image][name]."'";
mysql_query ($ajouter, $connexion);
}
elseif ($_GET[action] == "deletePhoto") {
SupprimerPhoto($id);
}



$requete = "SELECT * From news order by id DESC";
$resultat = mysql_query ($requete, $connexion);
?>
<table border=1 width=600>
<?

while ($data = mysql_fetch_row ($resultat)) {
list ($id, $numero, $parution, $contenu, $image) = $data;

echo "<tr><td valign='top' width='325' border='1'>";
echo "<h3>".$numero.' - '.$parution."</h3>";
echo resumeTexte($contenu)."<br><br>";
echo "</td><td valign='center' width='200'>";
echo "<div align='center'><img src='images/".$image."' width='140' height='200'></div><br>";
echo "</td><td valign='top' width='25'>";
echo "<a href='news_exe.php?id=$id&action=delete' onclick='return confirm (\"Supprimer cet enregistrement ?\");'><img src='images/supprimer.gif'></a>";
echo "</td><td valign='top' width='25'>";
echo "<a href='form_news.php?id=$id&action=update'><img src='images/modifier.gif'></a>";
echo "</td><td valign='top' width='25'>";
echo "<a href='news_exe.php?id=$id&action=deletePhoto'>Supprimer la photo</a>";
echo "</td></tr>";

}
?>

</td><td><a href='form_news.php?action=insert'><img src='images/ajouter.gif'></a></td></tr>

</table>

</body>
</html>
Répondre
LoadingChargement en cours