MySQL interesse |
|
Ik kan een map deleten en een file deleten, maar nu is de vraag of deze ook beide tegelijk kunnen, oftewel dat ik eerst in een map alle files tegelijk kan deleten en dat daarna de map zelf verwijderd wordt.
Ik heb de volgende twee tabellen, 1 voor de groepen, 1 voor de files (foto's).
Groepen:
CREATE TABLE `fotogroep` (
`FotogroepID` int(4) NOT NULL auto_increment,
`Fotogroep` varchar(50) default NULL,
UNIQUE KEY `FotogroepID` (`FotogroepID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;
CREATE TABLE `fotogroep` ( `FotogroepID` int(4) NOT NULL AUTO_INCREMENT, `Fotogroep` varchar(50) DEFAULT NULL, UNIQUE KEY `FotogroepID` (`FotogroepID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;
Foto's:
CREATE TABLE `foto` (
`FotoID` int(11) NOT NULL auto_increment,
`Fotogroep` varchar(50) default NULL,
`Titel` varchar(200) NOT NULL default '',
`Foto` varchar(200) NOT NULL default '',
`Datum` date NOT NULL default '0000-00-00',
`Omschrijving` varchar(200) NOT NULL default '',
UNIQUE KEY `FotoID` (`FotoID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=77 ;
CREATE TABLE `foto` ( `FotoID` int(11) NOT NULL AUTO_INCREMENT, `Fotogroep` varchar(50) DEFAULT NULL, `Titel` varchar(200) NOT NULL DEFAULT '', `Foto` varchar(200) NOT NULL DEFAULT '', `Datum` date NOT NULL DEFAULT '0000-00-00', `Omschrijving` varchar(200) NOT NULL DEFAULT '', UNIQUE KEY `FotoID` (`FotoID`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=77 ;
Ik neem aan dat ik eerst met het verwijderen van de bestanden moet beginnen, en daarna de map zelf. Hiervoor gebruik ik:
<?
INCLUDE("connect.php");
$sql1 = mysql_query("SELECT * FROM foto WHERE Fotogroep='".$Fotogroep."'");
WHILE ($rij = mysql_fetch_array($sql1))
$Foto = "$rij[3]";
unlink("$Foto");
$result=mysql_query("DELETE FROM foto WHERE Fotogroep='".$Fotogroep."'");
$sql = mysql_query("SELECT Fotogroep FROM fotogroep WHERE FotogroepID='".$FotogroepID."'");
WHILE ($data = mysql_fetch_array($sql))
RMDIR("../../uploads/foto/".$data['Fotogroep']."");
$result=mysql_query("DELETE FROM fotogroep WHERE FotogroepID='".$FotogroepID."'");
?>
<? INCLUDE("connect.php"); $sql1 = mysql_query("SELECT * FROM foto WHERE Fotogroep='".$Fotogroep."'"); $Foto = "$rij[3]"; $result=mysql_query("DELETE FROM foto WHERE Fotogroep='".$Fotogroep."'"); $sql = mysql_query("SELECT Fotogroep FROM fotogroep WHERE FotogroepID='".$FotogroepID."'"); RMDIR("../../uploads/foto/".$data['Fotogroep'].""); $result=mysql_query("DELETE FROM fotogroep WHERE FotogroepID='".$FotogroepID."'"); ?>
Als ik een map wil verwijderen zonder foto's dan werkt het script wel, maar als er een bestand inzit dan krijg ik telkens de melding:
Warning: unlink() [function.unlink]: No such file or directory in /foto/fotogroep_verwijderen.php on line 9
Warning: rmdir(../../uploads/foto/Test) [function.rmdir]: Directory not empty in /foto/fotogroep_verwijderen.php on line 15
Warning : unlink() [function.unlink]: No such file or directory in /foto /fotogroep_verwijderen .php on line 9 Warning : rmdir(../../uploads /foto /Test ) [function.rmdir]: Directory not empty in /foto /fotogroep_verwijderen .php on line 15
Wat doe ik hierin fout?
|