unlink()
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
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 !
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>
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 !
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 !
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>
vraiment désolé de ne pas y arriver malgré vos explications…
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
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 !
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>