Что я делаю неправильно? Сообщения не будут удалены - PullRequest
0 голосов
/ 21 июня 2011

Я работал над моим файлом delete.php, чтобы удалить выбранные сообщения буквально часами подряд без какого-либо прогресса. Как мне удалить сообщения с настроенными мной кодами?

Вот код того, как мой файл delete.php настроен прямо сейчас

<?php
    session_start();
    header("Location:inbox.php");

    $user = $_SESSION['username'];

    include 'connect.php';


   foreach($_POST['messages'] as $num => $messages_id)

        mysql_query("DELETE FROM messages WHERE messages_id='$messages_id' AND to_user='$user'");

    ?> 

Вот код всего моего inbox.php

<?php
require "connect.php";

echo "<hr><br><div id='mail'>";

// get the messages from the table.
$get_messages = mysql_query("SELECT messages_id FROM messages WHERE 

to_user='$userfinal' ORDER BY messages_id DESC") or die(mysql_error());
$get_messages2 = mysql_query("SELECT * FROM messages WHERE to_user='$userfinal' 

ORDER BY messages_id DESC") or die(mysql_error());
$num_messages = mysql_num_rows($get_messages);
// display each message title, with a link to their content
echo '<ul>';
for($count = 1; $count <= $num_messages; $count++)
{
    $row = mysql_fetch_array($get_messages2);
    $fromuser = $row['from_user'];
    $messageid = $row['messages_id'];
    $messagetitle = $row['message_title'];
    $messageread = $row['message_read'];
    $messagedate = $row['message_date'];



    echo " <form name='send' method='post' action='delete.php'><input type='checkbox' name='delete' value='$messageid'></td><font face='helvetica'><font size='3'>$fromuser</font></font> &nbsp; &bull; &nbsp;  <div align='right'><a href='read_message.php?messages_id=$messageid'>$messagetitle</a></div>
<center><hr></center>


";
}
?>
<input type="submit" name="Submit" value="Delete Selected">
</table>
</div>

Пожалуйста, помогите, прежде чем моя голова взорвется

Ответы [ 3 ]

0 голосов
/ 21 июня 2011

Вы используете header("Location:inbox.php"); во второй строке своего кода, поэтому остальная часть его никогда не будет выполнена.

Просто переместите его в конец скрипта, после того как вы удалили нужные сообщенияудалить.

0 голосов
/ 21 июня 2011

Проблема, по-видимому, заключается в том, что вы добавляете тег формы для каждого флажка (а не закрываете этот тег формы).Вместо этого поместите все флажки в одну и ту же форму и назовите их delete[] в скобках в конце, поместите каждый флажок в массив внутри массива $ _POST.Таким образом, вы можете просмотреть их.

Вот отредактированная версия (Примечание: не проверено)

<?php
require "connect.php";

echo "<hr><br><div id='mail'>";

// get the messages from the table.
$get_messages = mysql_query("SELECT messages_id FROM messages WHERE 

to_user='$userfinal' ORDER BY messages_id DESC") or die(mysql_error());
$get_messages2 = mysql_query("SELECT * FROM messages WHERE to_user='$userfinal' 

ORDER BY messages_id DESC") or die(mysql_error());
$num_messages = mysql_num_rows($get_messages);
// display each message title, with a link to their content

echo "<form name='send' method='post' action='delete.php'>";

echo '<ul>';
for($count = 1; $count <= $num_messages; $count++)
{
    $row = mysql_fetch_array($get_messages2);
    $fromuser = $row['from_user'];
    $messageid = $row['messages_id'];
    $messagetitle = $row['message_title'];
    $messageread = $row['message_read'];
    $messagedate = $row['message_date'];

    echo "
    <input type='checkbox' name='messages[]' value='$messageid'></td>
    <font face='helvetica' size='3'>$fromuser</font>&nbsp; &bull; &nbsp;
    <div align='right'>
        <a href='read_message.php?messages_id=$messageid'>$messagetitle</a>
    </div>
    <center><hr></center>
    \n\n\n";
}

echo '</form>';
?>
<input type="submit" name="Submit" value="Delete Selected">
</table>
</div>
0 голосов
/ 21 июня 2011
name='delete[]' value='<?php echo $messageid?>'

$_POST['delete']
...