ФорумПрограммированиеPHP для идиотов → приходится страницу еще раз перезагружать чтобы видеть результат...

приходится страницу еще раз перезагружать чтобы видеть результат...

  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 22:57

    Удаляю записи по checkbox'ам из БД

    Выбираю,удаляю.
    Удалять то удаляет.Только вот потом приходится страницу еще раз перезагружать чтобы видеть результат.

    Код:
    <?php
    include "db.php";
    $db = new DB("localhost","root","","medical");

    if(!$db->open())
    {
    die($db->error());
    }

    if(!$db->query("SELECT * FROM test"))
    {
    die($db->error());
    }
    print <<<FORMA
    <form name="form1" method="POST" action="?action=del">
    <table width="310" border="0" cellpadding="1" cellspacing="1" bgcolor="#CCCCCC">
    <!–DWLayoutTable–>
    <tr>

    FORMA;

    while($row = $db->fetchArray())
    {
    print <<<FORMAB
    <tr><td width="310" valign="top" bgcolor="#FFFFFF"><input type="checkbox" name="delete_user[]" value="{$row['id']}"><b>{$row['id']}</b><tr>\n</td>
    FORMAB;
    }

    print <<<FORMAC
    </td>
    </tr>
    </table>
    <br>
    <input name="go" type="submit" value="Delete">
    <input type="reset" name="Reset" value="Reset">
    </form>
    FORMAC;




    @$action = $_GET['action'];
    switch($action) {

    case "del":
    if(!empty($_POST['go'])){
    foreach(($_POST['delete_user']) AS $id) {
    if(!$db->query("DELETE FROM `test` WHERE `id` = '".$id."'"))
    {
    die($db->error());
    }
    }
    }
    break;

    }
    $db->freeResult();
    $db->close();

    ?>
  • aligator

    Сообщения: 52 Репутация: N Группа: Кто попало

    Spritz 20 августа 2007 г. 23:06, спустя 9 минут 35 секунд

    чо сдесь слощного?


    echo "<meta http-equiv='Refresh' content='0, URL=Kuda nado'>":
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 20 августа 2007 г. 23:20, спустя 13 минут 17 секунд

    хм, а как иначе? ты сначала отрисовываешь форму а потом удаляешь записи..
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 23:24, спустя 4 минуты 31 секунду


    хм, а как иначе? ты сначала отрисовываешь форму а потом удаляешь записи..

    и?
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 20 августа 2007 г. 23:27, спустя 2 минуты 52 секунды

    местами поменяй)
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 20 августа 2007 г. 23:28, спустя 55 секунд

    смари, у тебя получается, что на момент отрисовки формы данные еще есть вот они и выводятся.. а потом удаляются
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 20 августа 2007 г. 23:31, спустя 3 минуты 12 секунд

    Паш придерживайся одного стиля написания (\"Стандарты кодирования\"), удобней будет читать будет твои произведения :)

    Я спать… Тут и так достаточно народу :)

    Пример:


    foreach(($_POST['delete_user']) AS $id) { // <- тут так

    if(!$db->query("DELETE FROM `test` WHERE `id` = '".$id."'"))
    { // <- а сдесь так




    и все в томже духе
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • pasha

    Сообщения: 1048 Репутация: N Группа: Адекваты

    Spritz 20 августа 2007 г. 23:46, спустя 14 минут 57 секунд

    Чтобы я без вас делал =)
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 20 августа 2007 г. 23:56, спустя 9 минут 49 секунд

    и кстати говоря, удалить можно одним запросом - а в цикле только условие формировать
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 21 августа 2007 г. 0:35, спустя 38 минут 43 секунды

    что-то типа
    $sql = "DELETE FROM `test` WHERE `id` IN (" . join(',', $_POST['delete_user']) . ")"

Пожалуйста, авторизуйтесь, чтобы написать комментарий!