Скрипт для работы cron не работает. PHP / MySQL - PullRequest
0 голосов
/ 24 декабря 2011

Я настроил задание cron для запуска следующего скрипта каждые 30 минут. В основном этот скрипт выбирает информацию о статье из историй таблицы, где поле показывает = 0 И это подсчитывает голоса к этой статье голоса располагаются в таблице голос . itemname_field в таблице голосов равно id в таблице историй. Если вам нужна дополнительная информация о структуре базы данных и системе голосования, я опишу ее более подробно здесь:
Установить задание cron для обновления информации о статье в зависимости от значений ее голосов

<?php 
    mysql_connect("localhost","username","password") or die (mysql_error("There was an error in connection"));
    mysql_select_db("database") or die (mysql_error("There was an error in connection"));

    $query = "select sum(vt.vote_value) as vote_value, vt.item_name from Votes vt join stories st on st.id = vt.item_name and st.showing = 0 group by vt.item_name";
    $result = mysql_query($query); 
    while($row = mysql_fetch_array($result))
    {
        if($row['vote_value'] > 9) {
            $showing = 1;
        }
        else if($row['vote_value'] < -9) {
            $showing = 2;
        }
        else {
            $showing = 0;
        }
        $query2 = "UPDATE `stories` SET `showing` = $showing WHERE `id` = '".$row['item_name']."'";
        mysql_query($query2); 
    }
?>

Кто-нибудь может подсказать причину, почему этот скрипт не работает? Если со сценарием все в порядке, может ли это быть что-то в работе cron, которую нужно сделать?

РЕДАКТИРОВАТЬ: при запуске скрипта в браузере выдает следующую ошибку:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL

Что это за строка while($row = mysql_fetch_array($result))

Ответы [ 2 ]

1 голос
/ 24 декабря 2011

Указанное вами сообщение об ошибке означает, что в вашем запросе есть ошибка. Запустите его через клиент MySQL, чтобы получить больше информации, или выведите mysql_error() в php.

В таких случаях mysql_query() возвращает логическое значение false, вы можете использовать это для обработки ошибок.

1 голос
/ 24 декабря 2011

Проблема была в этой части:

$query = "... from Votes vt join ...";

это не должна быть заглавная буква "V".

...