Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не выполняется UPDATE запрос 
:(
    Опции темы
Enya
Дата 7.11.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



-=Ustas=-, примите мои извинения. Я просто не много запарилась с этим update.
Мне ещё каждую строчку, перелопатить - не хочу чтоб мимо ушей прошло.


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Enya
Дата 7.11.2006, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



И так типичная ошибка, повторяется. Теперь с удалением.
Я вот решила не много сама, как пока поняла внести изменения. 
Теперь сообщения об неопределённости переменных не появляется.
Массив id-шек, отправляется, но удаление не происходит. smile 
Код

$sql="SELECT * FROM objects";
            $result=mysql_query($sql);
            $count=mysql_num_rows($result);

            ?>
                <table width="400" border="0" cellspacing="1" cellpadding="0" align="center">
                    <tr>
                        <td><form name="form1" method="post" action="">
                        <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
                            <tr>
                                <td bgcolor="#FFFFFF">&nbsp;</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>Object Name</strong></td>
                    <td align="center" bgcolor="#FFFFFF"><strong>Object type</strong></td>
                    <td align="center" bgcolor="#FFFFFF"><strong>Object</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['obj01']; ?></td>
                    <td bgcolor="#FFFFFF"><? echo $rows['obj02']; ?></td>
                    <td bgcolor="#FFFFFF"><? echo $rows['obj03']; ?></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(isset($_POST['delete'])){
                    for($i=0;$i<$count;$i++){

                        $del_id = $_POST['delete'][$i]; //вот здесь я  сама внесла изменения
                        $sql_del = "DELETE FROM objects WHERE id='$del_id'";
                        $result_del = mysql_query($sql_del);
                    }
                }
                
                ?><pre><? print_r($_POST); ?></pre><?
                

            ?>
                </table>
                    </form>
                        </td>
                    </tr>
                </table>
            <?php


Добавлено @ 17:24 
удаление записей


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 7.11.2006, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Enya, ну вот опять вы за своё!!!

Добавлено @ 18:52 
Код

<?php

if (isset($_POST['delete'])) {
    $count = sizeof($_POST['id']);
    $idString = implode(',', $_POST['id']);
    $sql = 'DELETE FROM `objects` WHERE `id` IN('.$idString.')';
    mysql_query($sql);
}

$sql    = 'SELECT * FROM objects ORDER BY `id` DESC';
$result = mysql_query($sql);

?>
<table width="400" border="0" cellspacing="1" cellpadding="0" align="center">
<tr><td><form name="form1" method="post" action="">
    <table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
    <tr><td bgcolor="#FFFFFF">&nbsp;</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>Object Name</strong></td>
             <td align="center" bgcolor="#FFFFFF"><strong>Object type</strong></td>
             <td align="center" bgcolor="#FFFFFF"><strong>Object</strong></td>
         </tr>
         
         <?php
         
         while ($rows = mysql_fetch_array($result)) {
             
         ?>
         
         <tr><td align="center" bgcolor="#FFFFFF"><input name="id[]" type="checkbox" value="<?=$rows['id']?>"></td>
             <td bgcolor="#FFFFFF"><?=$rows['id']?></td>
             <td bgcolor="#FFFFFF"><?=$rows['obj01']?></td>
             <td bgcolor="#FFFFFF"><?=$rows['obj02']?></td>
             <td bgcolor="#FFFFFF"><?=$rows['obj03']?></td>
         </tr>
         
         <?php
         }
         ?>
            
         <tr><td colspan="5" align="center" bgcolor="#FFFFFF"><input name="delete" type="submit" id="delete" value="Delete"></td></tr>
     </table>
     </form>
</td></tr>
</table>            


Это сообщение отредактировал(а) -=Ustas=- - 7.11.2006, 18:54


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Enya
Дата 7.11.2006, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



-=Ustas=-, слушайте, давайте вы хоть на пальцах алгоритм объясните, я то понимаю что допускаю туже ошибку второй раз.


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
SelenIT
Дата 7.11.2006, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 32
Всего: 401



Enya, насколько я понимаю, Ваша проблема была в том, что Вы не сразу видели внесенные изменения? Так нужно сначала сделать изменения (update|delete), а потом вывести текущее состояние (select), а у Вас была обратная последовательность...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Mystery_of_being
Дата 7.11.2006, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 52
Регистрация: 7.11.2006

Репутация: нет
Всего: нет



По этой теме... 


Мне движок магазинный дали.. там все  переменный были такие  $_POST[&name];  без кавычек... И мне чтобы все это работало пришлось везде тупо ставить кавычки, а у други все работало ... почему ? 
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 8.11.2006, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Mystery_of_being, нет, не по этой. Одна тема - один вопрос, читай основы PHP.

Добавлено @ 10:32 
Enya, ты не правильно обращалась к ПОСТ-массиву, в котором у тебя были нужные тебе массивы, и соответственно циклы неправильные были.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Enya
Дата 8.11.2006, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



-=Ustas=-
Код

$count = sizeof($_POST['id']);
    $idString = implode(',', $_POST['id']);
    $sql = 'DELETE FROM `objects` WHERE `id` IN('.$idString.')';
    mysql_query($sql);
в $count получаем кол-во элементов из массва $_POST['id'], а вот потом хотелось бы увидеть ваш комментарий
Код

$idString = implode(',', $_POST['id']);
$sql = 'DELETE FROM `objects` WHERE `id` IN('.$idString.')';



--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
-=Ustas=-
Дата 8.11.2006, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


Профиль
Группа: Участник Клуба
Сообщений: 2222
Регистрация: 21.1.2005
Где: Краснодар

Репутация: 32
Всего: 69



Ну на самом деле, эта конструкция, чтоб бы обойтись одним запросом без цикла
Код

// Преобразуем массив ID-ишников в строку через запятую (для оператора IN в SQL-запросе)
// на выходе имеем вид, тип 12,32,43,54,64,332
$idString = implode(',', $_POST['id']);
// т.е. здесь мы в SQL-запросе имеем такой вид - DELETE FROM `objects` WHERE `id` IN(12,32,43,54,64,332)
// Оператор IN равносилен запросу DELETE FROM `objects` WHERE `id` = 12 AND `id` = 32 AND `id` = 43 AND `id` =54 AND `id` = 64 AND `id` = 332;
$sql = 'DELETE FROM `objects` WHERE `id` IN('.$idString.')';

Надеюсь понятно обяснил?!  smile 


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
Enya
Дата 8.11.2006, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 386
Регистрация: 5.10.2005

Репутация: нет
Всего: нет



-=Ustas=-, конечно! я просто не знала, что есть такой оператор в SQL 
Код

IN

Как-то не сталкивалась. Спасибо! smile  smile 


--------------------

Утсанвлен Денвер
1. PHP Version 5.1.6
2. MySQL 5.0.18-max
3. phpMyAdmin 2.6.1
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1240 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.