multiple delete with checkbox...

vasilev

Registered
здравейте

опитвам се да подкарам този скрипт .. но безуспешно :(


http://www.phpeasystep.com/mysql/8.html


изкарва данните но не иска да ги изтрие .
таблицата се казва sys_messages а полетата : ID , Text , Subject . опитах се да сменя навсякъде id да е с големи букви защото в таблицата е с големи но пак не ще да трие .


може ли да помогнете ;)
 
защото попаднах на този код,мислих че ще работи .. и да не правя излишни теми :)
но явно не трябаше да го трия :)



Код:
<?php
$host="localhost"; // Host name
$username="sss"; // Mysql username
$password="sss"; // Mysql password
$db_name="sss"; // Database name
$tbl_name="sys_messages"; // 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>
<td align="center" bgcolor="#FFFFFF"> </td>
<td align="center" bgcolor="#FFFFFF"><strong>Id</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Text</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Subject</strong></td>
</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['Text']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['Subject']; ?></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_multiple.php\">";
}
}
mysql_close();
?>
</table>
</form>
</td>
</tr>
</table>
 
Разгледа ли кода ? :?

Това
<?
// 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_multiple.php\">";
}
}
mysql_close();
?>

го замени с това:
<?php
// Check if delete button active, start this
if($_POST['delete']){
foreach($_POST['delete'] AS $del_id){
$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_multiple.php\">";
}
}
mysql_close();
?>
 
и аз си мислех че някъде там е проблема .. но как да го оправя не знам :)

сега ми изкарва за секунди грешка "invalid argument supplied foreach()"
 
Защото в цикъла трябва да използваш $_POST['checkbox'] а не $_POST['delete']. Така си именувал полетата в формата. И сложи parseInt, за всеки случай :?:

ПП. Това ли е целият код, защото ми се струва, че не е написан както трябва :?
 
ами от тук съм го взел .. така както гледам не са писали тези нищо друго :)

http://www.phpeasystep.com/mysql/8.html

стана с checkbox :) .. а това за което говориш parseInt за какво е :)
 

Back
Горе