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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Запись крон
 
 автор: vic445   (28.02.2013 в 06:59)   письмо автору
 
 

Написал файл для для ежедневной записи в базу `pays`
Вот файл cron.php

<?php
header
('If-Modified-Since: Thu, 01 Jan 1970 00:00:00 GMT');
header('Last-Modified: ' gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Pragma: no-cache');
header('Content-Type: text/html; charset=utf-8');

 require_once(
$_SERVER['DOCUMENT_ROOT']."/ad_in/config.php");

$get_pays "SELECT * FROM `pays`";
$opsd        mysql_query($get_pays);
$count=mysql_num_rows($opsd);
echo 
$count."<br>";
$i=0;
if(
$i<$count) {
$day=""$us_id=""$sum="";
while(
$osmysql_fetch_array($opsd))
{
$us_id=$os['id'];
$id_user=$os['id_user'];
$sum=$os['sum'];
unset(
$day);
$day=(200*$sum/100)/40;
$sql "UPDATE `pays` SET `out_sum` = out_sum + '".$day."' WHERE `id`='".$us_id."' LIMIT 1";
if(
mysql_query($sql)) echo "Saces!".$day;   unset($day);
$i++;        }
}
?>


Но происходит следующее : $day почему-то пишется 3 раза. А показывает один раз например 5.
По идее как задумывалось изначально $day должна вноситься только один раз.
Как сделать чтобы запись вносилась только по одному разу?

  Ответить  
 
 автор: vic445   (28.02.2013 в 10:35)   письмо автору
 
   для: vic445   (28.02.2013 в 06:59)
 

Неужели никто не знает?
Тут явно какая-то ошибка все таки есть.

  Ответить  
 
 автор: Lotanaen   (28.02.2013 в 11:32)   письмо автору
 
   для: vic445   (28.02.2013 в 10:35)
 

Сейчас ваш скрипт выполняет то что выполнит один запрос к БД : UPDATE `pays` SET `out_sum` = `out_sum` + 0.05*`sum`

  Ответить  
 
 автор: vic445   (28.02.2013 в 14:00)   письмо автору
2.3 Кб
 
   для: Lotanaen   (28.02.2013 в 11:32)
 

В данный момент скрипт вытаскивает из базы pays все записи.
Затем по одному запросу редактирует столбец `out_sum` .
Но вся проблема что запрос происходит не один раз хотя указано LIMIT 1,
а 3 раза.
Например если переменная $day=5; то происходит изменнение не на 5; а на 15?

Чтобы вы увидели как это происходит -файлы прилагаются.

  Ответить  
 
 автор: Lotanaen   (28.02.2013 в 14:20)   письмо автору
 
   для: vic445   (28.02.2013 в 14:00)
 

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

  Ответить  
 
 автор: Lotanaen   (28.02.2013 в 14:39)   письмо автору
 
   для: vic445   (28.02.2013 в 14:00)
 

Да и Ваш скрипт один раз добавляет к каждой записи на моем денвере. А как Вы скрипт этот вызываете? Если трижды происходит добавление у Вас, то значит Вы его трижды запускаете.

  Ответить  
 
 автор: vic445   (01.03.2013 в 05:06)   письмо автору
 
   для: Lotanaen   (28.02.2013 в 14:39)
 

В том то и дело. Скрипт запускается один раз. Файл находится в корне сайта.
Для тестирования запускается просто в адресной строке:
http://localhost/cron.php

Кстати это я замечал на многих скриптах запускаем один раз а прописывается по два раза или три раза. Пробовал варианты for. То же самое.

  Ответить  
 
 автор: vic445   (01.03.2013 в 05:07)   письмо автору
 
   для: Lotanaen   (28.02.2013 в 14:39)
 

А вы пробовали запустить скрипт. Исходные файлы я выслал. По идее скрипт очень простой.

  Ответить  
 
 автор: Lotanaen   (01.03.2013 в 10:14)   письмо автору
 
   для: vic445   (01.03.2013 в 05:07)
 

да, все нормально сработало.

  Ответить  
Rambler's Top100
вверх

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