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

Поиск:

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


Опытный
**


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

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



Что делает этот код?
Делает выборку данных из таблицы.
Размещает в определённых полях.
Что нужно?
Что бы внесённые изменения в полях, сохранялись в БД.
Чего код не делает?
Именно не сохраняет новую инфу в БД.
Код

$sql="SELECT * FROM objects";
            $result=mysql_query($sql) or die("SQL Select Error");
            $count=mysql_num_rows($result);
                    
                ?>
                    <table width="500" border="0" cellspacing="1" cellpadding="0" align="center">
                        <form name="form1" method="post" action="control.php?type=2">
                            <tr>
                            <td>
                                <table width="500" border="0" cellspacing="1" cellpadding="0">
                                    <tr>
                                        <td align="center"><strong>Id</strong></td>
                                        <td align="center"><strong>Object Name</strong></td>
                                        <td align="center"><strong>Object type</strong></td>
                                        <td align="center"><strong>Object</strong></td>
                                    </tr>
                                <?php
                                    while($rows=mysql_fetch_array($result)){
                                ?>
                                    <tr>
                                        <td align="center"><? $id[]=$rows['id']; ?><? echo $rows['id']; ?></td>
                                        <td align="center"><input name="obj01[]" type="text" id="obj01" value="<? echo $rows['obj01']; ?>"></td>
                                        <td align="center"><input name="obj02[]" type="text" id="obj02" value="<? echo $rows['obj02']; ?>"></td>
                                        <td align="center"><input name="obj03[]" type="text" id="obj03" value="<? echo $rows['obj03']; ?>"></td>
                                    </tr>
                                <?php
                                    }
                                ?>
                                    <tr>
                                        <td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
                                    </tr>
                                </table>
                            </td>
                            </tr>
                        </form>
                    </table>
                    <?php
                    
                if(isset($_POST['Submit'])){
                    for($i=0;$i<$count;$i++){
                        $sql_up="UPDATE objects SET obj01='$obj01[$i]', obj02='$obj02[$i]', obj03='$obj03[$i]' WHERE id='$id[$i]'";
                        $result_up=mysql_query($sql_up);
                    }
                }
                if(isset($result_up)){
                    header("location:control.php");
                }

Вот не нравиться вот эта строчка
Код

$sql_up="UPDATE objects SET obj01='$obj01[$i]', obj02='$obj02[$i]', obj03='$obj03[$i]' WHERE id='$id[$i]'";
Пишел, пол Notice переменная не определена.
 smile Чё такое?!

Добавлено @ 17:03 
Код

CREATE TABLE `objects` (
  `id` int(11) NOT NULL auto_increment,
  `obj01` varchar(100) NOT NULL default '',
  `obj02` varchar(100) NOT NULL default '',
  `obj03` varchar(100) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf-8; 



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

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


Новичок



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

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



Ну во первых, id у тебя в посте вообще не передается, строчки 18-27 надо заменить примерно так:
Код

while($rows=mysql_fetch_array($result)){
    ?>
    <tr>
        <td align="center"><input name="id[]" type="hidden" value="<?=$rows['id'];?>"><? echo $rows['id']; ?></td>
        <td align="center"><input name="obj01[]" type="text" id="obj01" value="<? echo $rows['obj01']; ?>"></td>
        <td align="center"><input name="obj02[]" type="text" id="obj02" value="<? echo $rows['obj02']; ?>"></td>
        <td align="center"><input name="obj03[]" type="text" id="obj03" value="<? echo $rows['obj03']; ?>"></td>
        </tr>
    <?php
}


ну и сам запрос надо переделать примерно так:
Код

$sql_up="UPDATE objects SET obj01='".$_POST['obj01'][$i]."', obj02='".$_POST['obj02'][$i]."', obj03='".$_POST['obj03'][$i]."' WHERE id=".$_POST['id'][$i].";";


и прейдется перенести ещё UPDATE запрос на верх страницы, иначе у тебя header("location:control.php"); не сработает
PM MAIL ICQ   Вверх
Enya
Дата 6.11.2006, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Странно. А вот в этом уроке написано так:Updating multiple rows in mysql


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

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


Опытный
**


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

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



Цитата(Enya @  6.11.2006,  22:16 Найти цитируемый пост)
в этом уроке написано так
Там показан запрос в общем виде.  SQL-запрос это строка,  
поэтому переменные туда нужно подставлять как в строку.

PM MAIL   Вверх
Nbuth
Дата 6.11.2006, 23:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Enya, ну во первых, в этом уроке все написано, с учетом того что register_globals стоит в On, а у тебя наверняка в off
во вторых переменая id у них и в этом примере не передается, х.з., наверно очепятка у них там какая, или ещё, что. (для проверки можешь сунуть в обработчик кнопки такой текст ?><pre><? print_r($_POST); ?></pre><? и увидешь что там передается, а что нет)
ну и в последних, думаю если ты оставишь header("location:update_multiple.php"); на том месте, где он сейчас стоит, то столкнешся, примерно с таким сообщением: Warning: Cannot modify header information - headers already sent by ...

З.Ы.: так что выкинь этот урок, впринципе, ничего хорошего я в нем вообще не увидел, ни  одного толкового коментария, ни одного описания функции ... 

PM MAIL ICQ   Вверх
check
Дата 7.11.2006, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Nbuth @  6.11.2006,  20:56 Найти цитируемый пост)
и прейдется перенести ещё UPDATE запрос на верх страницы, иначе у тебя header("location:control.php"); не сработает 
А причем тут запрос?
Ошибка возникнет из-за того что заголовки отправляются после вывода в браузер.  Но это легко лечится буферизацией вывода: первой строчкой в скрипте пишешь ob_start(); последней ob_end_flush();

PM MAIL   Вверх
Nbuth
Дата 7.11.2006, 09:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



check, не спорю, можно сделать и так, но мы получим один совершенно не нужный запрос, а следовательно лишняя нагрузка на сервер.

а если вообще уберем header(), то получим страницу со старыми данными, что тоже как-то не особо  smile 

Это сообщение отредактировал(а) Nbuth - 7.11.2006, 09:12
PM MAIL ICQ   Вверх
Enya
Дата 7.11.2006, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Nbuth, теперь данные в таблицу вставляются.
Но при следующем редактирование в поля не вставляются уже существующие данные (из SELECT запроса), кликаю на редактирование а поля пустые, хотя в БД записи есть. И если не все поля заполнены то он их перезапишет пустыми.


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

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


Новичок



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

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



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


Опытный
**


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

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



Nbuth, вот
Код

echo '<h3>Edit objekt</h3>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=1">Добавить запись</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'?type=3">Удаление объектов</a>';
        echo '<li><a href="'.$_SERVER['PHP_SELF'].'">Вернуться</a>';
        
            $sql="SELECT * FROM objects";
            $result=mysql_query($sql) or die("SQL Select Error");
            $count=mysql_num_rows($result);
                    
                ?>
                    <table width="500" border="0" cellspacing="1" cellpadding="0" align="center">
                        <form name="form1" method="post" action="control.php?type=2">
                            <tr>
                            <td>
                                <table width="500" border="0" cellspacing="1" cellpadding="0">
                                    <tr>
                                        <td align="center"><strong>Id</strong></td>
                                        <td align="center"><strong>Object Name</strong></td>
                                        <td align="center"><strong>Object type</strong></td>
                                        <td align="center"><strong>Object</strong></td>
                                    </tr>
                                <?php
                                    while($rows=mysql_fetch_array($result)){
                                ?>
                                    <tr>
                                        <td align="center"><input name="id[]" type="hidden" value="<?=$rows['id'];?>"><? echo $rows['id']; ?></td>
                                        <td align="center"><input name="obj01[]" type="text" id="obj01" value="<? echo $rows['obj01']; ?>"></td>
                                        <td align="center"><input name="obj02[]" type="text" id="obj02" value="<? echo $rows['obj02']; ?>"></td>
                                        <td align="center"><input name="obj03[]" type="text" id="obj03" value="<? echo $rows['obj03']; ?>"></td>
                                    </tr>
                                <?php
                                    }
                                ?>
                                    <tr>
                                        <td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
                                    </tr>
                                </table>
                            </td>
                            </tr>
                        </form>
                    </table>
                    <?php
                    
                if(isset($_POST['Submit'])){
                    for($i=0;$i<$count;$i++){
                        $sql_up="UPDATE objects SET obj01='".$_POST['obj01'][$i]."', obj02='".$_POST['obj02'][$i]."', obj03='".$_POST['obj03'][$i]."' WHERE id=".$_POST['id'][$i].";";
                        $result_up=mysql_query($sql_up);
                    }
                }
                if(isset($result_up)){
                    header("location:control.php");
                }



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

Утсанвлен Денвер
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, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Enya, попробуй так:
Код

<?php

if (isset($_POST['Submit'])) {
    $count = sizeof($_POST['id']);
    for ($i = 0; $i < $count; $i++) {
        $sql = 'UPDATE 
                    `objects` 
                SET 
                    `obj01` = \''.$_POST['obj01'][$i].'\', 
                    `obj02` = \''.$_POST['obj02'][$i].'\', 
                    `obj03` = \''.$_POST['obj03'][$i].'\' 
                WHERE 
                    `id` = '.$_POST['id'][$i];
        mysql_query($sql);
    }

    header('location: control.php');
   
} else {

    $sql    = "SELECT * FROM `objects` ORDER BY `id` DESC";
    $result = mysql_query($sql) or die("SQL Select Error");
    $count  = mysql_num_rows($result);
                    
?>

    <table width="500" border="0" cellspacing="1" cellpadding="0" align="center">
    <form name="form1" method="post" action="control.php?type=2">
    <tr><td>
        <table width="500" border="0" cellspacing="1" cellpadding="0">
            <tr><td align="center"><strong>Id</strong></td>
                <td align="center"><strong>Object Name</strong></td>
                <td align="center"><strong>Object type</strong></td>
                <td align="center"><strong>Object</strong></td>
            </tr>
            
            <?php
            
            while ($obj = mysql_fetch_object($result)) {
            
            ?>
            
            <tr><td align="center"><input type="hidden" name="id[]" value="<?=$obj->id?>"><?=$obj->id?></td>
                <td align="center"><input name="obj01[]" type="text" id="obj01" value="<?=$obj->obj01?>"></td>
                <td align="center"><input name="obj02[]" type="text" id="obj02" value="<?=$obj->obj02?>"></td>
                <td align="center"><input name="obj03[]" type="text" id="obj03" value="<?=$obj->obj03?>"></td>
            </tr>
            
            <?php
            }
            ?>
            <tr><td colspan="4" align="center"><input type="submit" name="Submit" value="Submit"></td>
            </tr>
        </table>
    </td></tr>
    </form>
    </table>
    
<?php
}
?>
                
?>



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


Опытный
**


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

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



-=Ustas=-, что-то не то. Не сохраняет.
Вот сам Control


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

Утсанвлен Денвер
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, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Цитата(Enya @  7.11.2006,  14:01 Найти цитируемый пост)
-=Ustas=-, что-то не то. Не сохраняет.


Всмысле не сохраняет?!



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


Опытный
**


Профиль
Группа: Участник
Сообщений: 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   Вверх
-=Ustas=-
Дата 7.11.2006, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ustix IT Group
****


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

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



Enya, нормально все сохраняется. Только что пробовал.


--------------------
В искаженном мире все догмы одинаково произвольны, включая догму о произвольности догм.
-----
PM WWW ICQ Skype   Вверх
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   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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