Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: правильно обработать полученный запрос

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: aetern   (25.07.2009 в 10:16)   письмо автору
 
   для: Trianon   (25.07.2009 в 01:01)
 

Да.
Проверил, отлично работает. Вот пример:
<?php
$query 
"SELECT * FROM $table";        
$res mysql_query($query);        
    while(
$result mysql_fetch_array($res))
    {
    ...
    }
    
mysql_data_seek($res0);

    for(
$i=0$i<mysql_num_rows($res); $i++)
    {
    
$result mysql_fetch_array($res);
    ...
    }
?>

  Ответить  
 
 автор: Trianon   (25.07.2009 в 01:01)   письмо автору
 
   для: aetern   (24.07.2009 в 23:42)
 

mysql_data_seek()
нет?

  Ответить  
 
 автор: aetern   (24.07.2009 в 23:42)   письмо автору
 
   для: Trianon   (24.07.2009 в 23:21)
 

да
if(mysql_affected_rows()>0)

помогло.
Спасибо.
А насчет самого первого вопроса. Можно ли все-таки заново проходить по массиву после mysql_fetch_array(), вдруг понадобиться, или это настолько неграмотно, что не стоит об этом и думать?

  Ответить  
 
 автор: Trianon   (24.07.2009 в 23:21)   письмо автору
 
   для: aetern   (24.07.2009 в 22:30)
 

mysql_affected_rows()
нет?

  Ответить  
 
 автор: aetern   (24.07.2009 в 22:30)   письмо автору
 
   для: Trianon   (24.07.2009 в 11:10)
 

Спасибо за Вашу поддержку. Вот верный вариант:
  $query = "DELETE $tbl_brands
          FROM $tbl_brands 
          LEFT JOIN $tbl_goods  
          ON $tbl_brands.brand = $tbl_goods.brand 
          WHERE $tbl_goods.brand IS NULL 
          AND $tbl_brands.id_brand= $_GET[id_brand] ";


Вот только как узнать произошло ли удаление? Ведь DELETE в любом случае обработал 1 запись и mysql_query($query) всегда true и = 1 и условие
    $brand = mysql_query($query);
        if($brand)
    {
    echo 'удалили';
    }
    else
        {
    echo 'не удалили по причине: '.mysql_error();
    }

всегда выполняется как 'удалили'.

Вот если бы проверить был ли $tbl_goods.brand IS NULL, но как это сделать что-то не соображу. Если бы это был SELECT, то я бы проверил ключ if(empty($brand['brand'])) в таблице $tbl_goods, но с DELETEовским синтаксисом что-то не справляюсь. Подскажите как?

  Ответить  
 
 автор: Trianon   (24.07.2009 в 11:10)   письмо автору
 
   для: aetern   (23.07.2009 в 22:55)
 

Вообще-то я предлагал применять второй вариант DELETE

DELETE [LOW_PRIORITY | QUICK] table_name[.*] [,table_name[.*] ...]
       FROM table-references
       [WHERE where_definition]

причем с LEFT JOIN,
а не тот, что у Вас.

У Вас LEFT JOIN нет , и соответственно логика распадается.

Попробуйте сперва отработать SELECT, который выбрал бы строки к удалению.

  Ответить  
 
 автор: aetern   (23.07.2009 в 22:55)   письмо автору
 
   для: Trianon   (23.07.2009 в 08:48)
 

Тогда почему в запросе
$query = "DELETE FROM $tbl_brands  
          USING $tbl_brands, $tbl_goods   
          WHERE $tbl_brands.brand=$tbl_goods.brand    
          AND $tbl_goods.brand IS NULL  
          AND $tbl_brands.id_brand=$_GET[id_brand]";


не удаляется строка с $tbl_brands.brand, где $tbl_goods.brand IS NULL ???
Я писал об этом выше, но никто не прокомментировал :-(

  Ответить  
 
 автор: Trianon   (23.07.2009 в 08:48)   письмо автору
 
   для: aetern   (23.07.2009 в 00:08)
 

это одно и то же.
Отсутствует - следовательно неопределено.

  Ответить  
 
 автор: aetern   (23.07.2009 в 00:08)   письмо автору
 
   для: Trianon   (22.07.2009 в 22:53)
 

а как сделать: если $tbl_goods.brand отсутствует (см. запрос выше)?

  Ответить  
 
 автор: Trianon   (22.07.2009 в 22:53)   письмо автору
 
   для: aetern   (22.07.2009 в 22:26)
 

если $tbl_goods.brand не определено.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования