2016-12-05 17 views
-4

Я изучаю php, теперь я пытаюсь использовать базы данных и т. Д. Мой код (то есть ниже) кажется, что он не работает, и я не могу решить, почему. Он выглядит хорошо, но все же после нажатия «delete» ничего не происходит. Может быть, ты сможешь мне помочь. Заранее спасибо.Не удается удалить несколько строк из базы данных с помощью флажка PHP

<?php 
$host="localhost"; 
$username="root"; 
$password=""; 
$db_name="zurnalas"; 
$tbl_name="zurnalas"; 

// 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); 
?> 
<form name="form1" method="post" action=""> 
<table width="400" border="0" cellspacing="1" cellpadding="0"> 
<tr> 
<td><form name="form1" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> 
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC"> 
<tr> 
<td bgcolor="#FFFFFF">&nbsp;</td> 
<td colspan="4" bgcolor="#FFFFFF"><strong>Žurnalų trinimas iš duomenų bazės</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>Pavadinimas</strong></td> 
<td align="center" bgcolor="#FFFFFF"><strong>Kiekis</strong></td> 
<td align="center" bgcolor="#FFFFFF"><strong>Leidykla</strong></td> 
<td align="center" bgcolor="#FFFFFF"><strong>Metai</strong></td> 
<td align="center" bgcolor="#FFFFFF"><strong>Kaina</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['pavadinimas']; ?></td> 
<td bgcolor="#FFFFFF"><? echo $rows['kiekis']; ?></td> 
<td bgcolor="#FFFFFF"><? echo $rows['leidykla']; ?></td> 
<td bgcolor="#FFFFFF"><? echo $rows['metai']; ?></td> 
<td bgcolor="#FFFFFF"><? echo $rows['kaina']; ?></td> 
</tr> 

<?php 
} 
?> 

<tr> 
<td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="delete"></td> 
</tr> 

<?php 

// Check if delete button active, start this 
if($_POST['delete']){ 
$checkbox[] = $_POST['checkbox[]']; 
for($i=0;$i<$count;$i++){ 
$del_id = $checkbox[$i]; 
$sql = "DELETE FROM $tbl_name WHERE id='$del_id'"; 
$result = mysql_query($sql); 
} 
if($result){ 
echo "<meta http-equiv=\"refresh\" content=\"0;URL=trinti.php\">"; 
} 
} 
mysql_close(); 
?> 

</table> 
</form> 
</td> 
</tr> 
</table> 
+0

Включить отчет об ошибках и не подавлять сообщения. '$ delete' выглядит неопределенным, если вы не исключаете часть своего кода. – Devon

+0

Нет, это полный код. Как настроить его после нажатия кнопки «Удалить»? – labasRyta

+0

Поскольку ваш метод формы является 'post', а ваше имя ввода' delete', PHP будет доступно в '$ _POST ['delete']'. – Devon

ответ

-2

Поле действия вашей формы пуст. Вы должны получить поля из формы с помощью php «$ checkbox = $ _POST ['checkbox]). После того, как вы сделаете так, как вы, или вы можете написать другой запрос mysql «УДАЛИТЬ ИЗ ВАШЕГО ТАЙНА WHERE id (1,2,3,4)».

+0

Пустое действие в форме означает, что оно перенаправляется на ту же страницу. – AnthonyB

+0

отредактировал код для лучшего понимания. – labasRyta

+0

попробуйте '$ del_id' без '. Попробуйте $ del_id –