ФорумПрограммированиеPHP для идиотов → Не обновляется информация

Не обновляется информация

  • AdmBuxonly

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

    Spritz 19 июля 2009 г. 11:00, спустя 1 час 44 минуты 53 секунды

    У меня на сайте есть файл, который отвечает за количество скачиваний.

    Почему-то не может добавить данные в базу. Не пойму по чему. Помогите разобраться!

    вот код файла


    <?php include(&#39;config.php&#39;);

    if(isset($_GET[&#39;id_book&#39;]))
    {
    $id = $_GET[&#39;id_book&#39;];
    }
    $result_load_book = mysql_query(&quot;SELECT * FROM all_books WHERE id=&#39;$id&#39;&quot;, $con);

    if(!$result_load_book)
    {
    echo &quot;<br><p>При подключении к базе данных возникла ошибка!</p><br><br>&quot;;
    exit(mysql_error());
    }
    if(mysql_num_rows($result_load_book) > 0)
    {
    $load_book = mysql_fetch_array($result_load_book);
    $url_book = $load_book[&#39;url&#39;];
    $nlbu = mysql_query(&quot;UPDATE all_books SET load=load+1 WHERE id=&#39;$id&#39;&quot;);
    if($nlbu)
    {
    echo &quot;<html>
     <head>
     <meta http-equiv=&#39;Refresh&#39; content=&#39;0; URL=$url_book&#39;></head></html>&quot;;
    exit();
    }
    else
    {
    echo &quot;Обновление не произошло!&quot;;
    }
    }
    else
    {
    echo &quot;<br><p>В базе данных нет информации!</p>&quot;;
    }

    ?>


    Перескакивает на
    echo &quot;Обновление не произошло!&quot;;



    Инфо от таблице



    – Структура таблицы `all_books`


    CREATE TABLE IF NOT EXISTS `all_books` (
     `id` int(11) NOT NULL auto_increment,
     `cat` int(11) NOT NULL,
     `title` varchar(255) NOT NULL,
     `meta_k` varchar(255) NOT NULL,
     `meta_d` varchar(255) NOT NULL,
     `date` date NOT NULL,
     `author` varchar(255) NOT NULL,
     `img` varchar(255) NOT NULL,
     `url` varchar(255) NOT NULL,
     `mb` varchar(5) NOT NULL,
     `load` varchar(255) NOT NULL,
     PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=cp1251 AUTO_INCREMENT=2 ;

    {+++67+++} Может быть такое, что из-за
    `load` varchar(255) NOT NULL,
    тип ячейки не тот. Может быть INT? {+++250+++} Работу скрипта можете посмотреть здесь http://bookarticle.jino.ru/ Нажмите на скачать.
  • Trej Gun

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

    Spritz 19 июля 2009 г. 9:04, спустя 22 часа 4 минуты 44 секунды

    AdmBuxonly, умные люди не делают селект перед апдейтом

    UPDATE all_books SET load=load+1 WHERE id=&#39;$id&#39;
    {+++18+++} да тип должен быть ИНТ
  • Troy

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

    Spritz 19 июля 2009 г. 9:15, спустя 10 минут 23 секунды

    CTAPbIu_MABP, спасибо тебе , умный человек , код у него теперь до 5 строк уменьшился
  • AdmBuxonly

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

    Spritz 19 июля 2009 г. 11:08, спустя 1 час 53 минуты 33 секунды

    <?php include(&#39;config.php&#39;);
    $result_new_update = mysql_query(&quot;SELECT * FROM all_books&quot;, $con);
    if(!$result_new_update)
    {
    echo &quot;<br><p>При подключении к базе данных возникла ошибка!</p><br><br>&quot;;
    include(&#39;include/footer.php&#39;);
    exit(mysql_error());
    }
    if(mysql_num_rows($result_new_update) > 0)
    {
    $new_update = mysql_fetch_array($result_new_update);
    }
    else
    {
    echo &quot;<br><p>В базе данных нет информации!</p>&quot;;
    }
    ?>




    <?php

    if(isset($_GET[&#39;id_book&#39;]))
    {
    $id = $_GET[&#39;id_book&#39;];
    }

    $url_book = $new_update[&#39;url&#39;];

    $nlbu = mysql_query(&quot;UPDATE all_books SET load=load+1 WHERE id=&#39;$id&#39;&quot;);
    if($nlbu)
    {
       echo &quot;<html>
             <head><meta http-equiv=&#39;Refresh&#39; content=&#39;0; URL=$url_book&#39;></head></html>&quot;;
       exit();
    }
    else
    {
       echo &quot;Обновление не произошло!&quot;;
    }


    ?>


    Сделал так. Нехочет.
  • Trej Gun

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

    Spritz 19 июля 2009 г. 12:11, спустя 1 час 2 минуты 41 секунду

    тип ИНТ сделал?
  • disc

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

    Spritz 19 июля 2009 г. 15:25, спустя 3 часа 13 минут 56 секунд


    $nlbu = mysql_query(&quot;UPDATE all_books SET load=load+1 WHERE id={$id}&quot;);
    if(!$nlbu)
    echo &quot;Обновление не произошло!\n Ошибка:&quot; . mysql_error();

    exit(header(&quot;Location: {$url_book}&quot;));


    Замени свой кусок моим и скажи что в ошибке пишется.

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