|
Posted by Jerry Stuckle on 04/10/06 15:02
Dejan wrote:
> Hy,
>
> Sorry for my terreble english
>
> I have this simple code for deleting rows in mysql table...
> Everything works fine with it.
> So, what do i wanna do...:
> my sql table looks something like this:
> id Name Surname pictr0 picrt1 pictr2
> pictr3
> 1 Ivan Johnes 1.jpg 120.jpg 111.jpg
> pic11.jpg
> 2 John Doe 2.jpg pic123.jpg img13.jpg
> pic12.jpg
>
> images (pictr0, pictr1...) are located in images/ folder..., and when i
> delete one row i wanna pictures deleted too.
> I have used this script, buth i realised i'm only deleting data in sql
> tabel, and images are filling my web hosting space.
> Any ideas?
>
> Tnx in advance
> Dejan
> ----------------------------------------
>
> <?php
> $host="localhost"; // Host name
> $username="xyxxx"; // Mysql username
> $password="xxxxx"; // Mysql password
> $db_name="delete"; // Database name
> $tbl_name="test_mysql"; // Table name
>
> // Connect to server and select databse.
> mysql_connect("$host", "$username", "$password")or die("cannot connect");
> mysql_select_db("$db_name")or die("cannot select DB");
>
> $sql="SELECT * FROM $tbl_name";
> $result=mysql_query($sql);
>
> $count=mysql_num_rows($result);
> <table width="400" border="0" cellspacing="1" cellpadding="0">
> <tr>
> <td><form name="form1" method="post" action="">
> <table width="400" border="0" cellpadding="3" cellspacing="1"
> bgcolor="#CCCCCC">
> <tr>
> <td bgcolor="#FFFFFF"> </td>
> <td colspan="4" bgcolor="#FFFFFF"><strong>Delete multiple rows in
> mysql</strong> </td>
> </tr>
> <tr>
> .
> .(simple html code)
> .
> </tr>
> <?php
> while($rows=mysql_fetch_array($result)){
> ?>
> <tr>
> <td align="center" bgcolor="#FFFFFF"><input name="checkbox[]"
> type="checkbox" id="checkbox[]" value="<? echo $rows['id']; ?>"></td>
> <td bgcolor="#FFFFFF"><? echo $rows['id']; ?></td>
> <td bgcolor="#FFFFFF"><? echo $rows['name']; ?></td>
> <td bgcolor="#FFFFFF"><? echo $rows['lastname']; ?></td>
> <td bgcolor="#FFFFFF"><? echo $rows['email']; ?></td>
> </tr>
> <?php
> }
> ?>
> <tr>
> <td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete"
> type="submit" id="delete" value="Delete"></td>
> </tr>
> <?
> // Check if delete button active, start this
> if($delete){
> for($i=0;$i<$count;$i++){
> $del_id = $checkbox[$i];
> $sql = "DELETE FROM $tbl_name WHERE id='$del_id'";
> $result = mysql_query($sql);
> }
>
> // if successful redirect to delete_multiple.php
> if($result){
> echo "<meta http-equiv=\"refresh\" content=\"0;URL=delete.php\">";
> }
> }
> mysql_close();
> ?>
>
>
You'll need to fetch the rows first, then delete. For instance - if `id` is the
primary key to your table:
foreach($checkbox as $del_id) { // Personal preference - I like foreach
$query = "select pictr0, pictr1, pictr2, pictr3 from $tblname where id=$del_id";
$result = mysql_query($query);
if ($result && mysql_num_rows > 0) {
$pics = mysql_fetch_array($result);
unlink($pictr0);
unlink($pictr1);
unlink($pictr2);
unlink($pictr3);
$query = "DELETE FROM $tblname WHERE id='$del_id'";
$result = mysql_query($query);
echo "<meta http-equiv=\"refresh\" content=\"0;URL=delete.php\">";
}
else
if ($result == null)
echo "Error fetching data: " . mysql_error();
else
echo "No data returned";
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Navigation:
[Reply to this message]
|