[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Cron + изменение значения записи в MySQL
des.denis
Здравствуйте уважаемые форумчане. У меня такая задача. Через cron запускать на хостинге скрипт, который будет менять значение некоторых записей в одной из таблиц MySQL.

Как лучше реализовать вот такое.
Есть таблица jos_item в ней хранятся данные о заведениях. Нужно менять параметр hits у каждой записи. Чтобы параметр брался случайный от 100 до 200. И этот скрипт надо запускать раз в сутки. Я так понял возможно запускать только cgi или можно сделать простой php


Извините, я думаю задача не тяжелая. Просто я не знаю MySQL и в php тоже не силен. Но задачу нужно решить как можно быстрее. Заранее огромное спасибо. Здоровья и счастья всем)))



Спустя 1 час, 17 минут, 35 секунд (5.09.2012 - 13:41) Xakep написал(а):

Спустя 16 часов, 8 минут, 35 секунд (6.09.2012 - 05:50) des.denis написал(а):
А можно еще пример через cron и запуск файла php. Я вот уже на таком пути.

<?php
$host='localhost'; // host
$database='radar'; // name base
$user='denis'; // name
$pswd='190890'; // parol

$dbh = mysql_connect($host, $user, $pswd) or die("error MySQL.");
mysql_select_db($database) or die("error base");
$query = "SELECT * FROM `jos_sobi2_item`";
$quert = "UPDATE `jos_sobi2_item`
SET `hits` = 0;

?>
Ну здесь правда много чего не правильно написанно. Но можно ли такое применить?

Единственно в этой таблице теперь надо поменять параметр поля hits во всех имеющихся там записях.

Или поясните выше стоящую ссылку. Я почитал, но толком не понял, что там и где.

Спустя 1 час, 26 минут, 42 секунды (6.09.2012 - 07:17) Игорь_Vasinsky написал(а):
crontab - это всего лишь планировщик задач.

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

если вы хотите запускать какой нить скрипт в определённое время или интервал - то он будет его выполнять, а как сработает код и как он написан - ему фиолетово.

управление планировщиком из панели управления хостингом

cPanel https://www.google.ru/search?aq=0&oq=js+loc...iw=1680&bih=916
ISPManager https://www.google.ru/search?aq=0&oq=js+loc...iw=1680&bih=916

Спустя 2 часа, 44 минуты, 46 секунд (6.09.2012 - 10:01) des.denis написал(а):
Да это я уже понял. Просто вопрос теперь уже по скрипту который будет запускаться cron'ом.

Вот я сделал вот так вот. Все работает.

<?php
$host='localhost';
$database='db';
$user='user';
$pswd='pthgjlfhrb';
$dbh = mysql_connect($host, $user, $pswd) or die("error MySQL.");
mysql_select_db($database) or die("error base");
$query = "SELECT * FROM `jos_sobi2_item`";
$res = mysql_query($query);
$itemid='1';
while($row = mysql_fetch_array($res))
{
$rand=rand(50,150);
$itemid=$itemid+1;
mysql_query("UPDATE jos_sobi2_item SET hits='$rand' WHERE itemid=$itemid");
echo "ID: ".$row['itemid']."<br>\n";
echo "HITS: ".$row['hits']."<br>\n";
echo "TITLE: ".$row['title']."<br><hr>\n";
echo $res;
}

?>

В общем этот код. Находит значения в таблице jos_sobi2_item
Затем в столбце hits каждой записи он меняет значение на рандомное.
В общем одна загвостка. Параметр itemid начинается не с 1, и еще некоторые числа отсутствуют. Потому что записи удалялись. Есть ли какой нибудь порядковый номер у записей в SQL таблице.

Спустя 29 минут, 30 секунд (6.09.2012 - 10:31) Игорь_Vasinsky написал(а):
Цитата
Затем в столбце hits каждой записи он меняет значение на рандомное.

великий махинатор :D


ты можеш получать этот itemid обычной выборкой при limit 1 ORDER DESC или ASC, не знаю как там у тя задача


или тебе полный обход таблицы и обновление?

Цитата
while($row = mysql_fetch_array($res))

ты же получаешь этот id

вообще бы

запустить в цикле

$rand = rand(999,99999);
mysql_query("UPDATE jos_sobi2_item SET hits='$rand');


а вообще не очень гладко стока запросов в цикле слать.

Спустя 2 часа, 55 минут, 26 секунд (6.09.2012 - 13:26) des.denis написал(а):
Спасибо буду пробовать.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.