Обновление нескольких строк SQL - PullRequest
2 голосов
/ 19 июля 2011

Моя настройка такова:

Администратор ищет заказы в зависимости от, скажем, адреса или имени клиента. Как только все их заказы отображаются для введенных критериев поиска, они могут выбирать заказы с помощью флажков. Код ниже обрабатывает это:

<form action="noJavaScript.php" name="theForm" method="post">
<table style="border: 1px solid black">
    <?php
        while ($row = mysql_fetch_assoc($result))
        {
            echo '<tr><td>';
            echo '<input type="checkbox" name="selected[]"  value="'.$row['order_number'].'"/>';
            echo '</td>';
            foreach ($row as $key => $value)
                echo '<td>'.htmlspecialchars($value).'</td>';
            echo '</tr>';
        }
    ?>
</table>
<input type="submit" name="submit" value="Edit/Modify Order" onClick="document.theForm.action='modify.php'">
<input type="submit" name="submit" value="Clone Order" onClick="document.theForm.action='clone.php'">
<input type="submit" name="submit" value="Delete Order" onClick="document.theForm.action='deleteorder.php'">
</form>

То, что я пытаюсь выполнить, зависит от того, сколько заказов они выбирают, 1, 5, 10, Все они. Когда они нажимают кнопку «Удалить заказ», я хочу, чтобы все эти заказы, которые они выбрали, обновлялись в базе данных. , Я не уверен, как это сделать. Я пробовал следующее: это код на моей странице deleteorder.php:

$id = array();
$id = $_POST['selected'];

//Include database connection details
require_once('config_order.php');

//Connect to mysql server
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if(!$link) {
    die('Failed to connect to server: ' . mysql_error());
}

//Select database
$db = mysql_select_db(DB_DATABASE);
if(!$db) {
    die("Unable to select database");
}


//Create query
$query = mysql_query("UPDATE PropertyInfo SET order_status = 'In-Active' WHERE  `order_number` LIKE $id[0]");

Это не работает, так как обновляет только значение, присвоенное $ id [0], а не все ордера, которые они могли выбрать.

Любая помощь будет принята с благодарностью! Спасибо

1 Ответ

4 голосов
/ 19 июля 2011

Я предполагаю, что $ id - это массив всех выбранных идентификаторов:

$query  = "UPDATE PropertyInfo SET order_status = 'In-Active' WHERE ";
$query .= "`order_number` IN (".implode(',', $id).") ";
$results = mysql_query($query);

Использование implode для разделения запятых значений массива

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...