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

Форум MySQL

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

 

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

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

тема: Не срабатывает UPDATE-запрос
 
 автор: gecccter   (01.07.2008 в 15:24)   письмо автору
 
 

<?php
$sql="SELECT * FROM bd_hat WHERE login!=''";
$result=mysql_query($sql);
while ($row=mysql_fetch_array($result))
{


$login = $row["login"];
$moder = $row["moder"];


if ($moder=="1")
{
$people = file_get_contents('http://'.$login.'.mydomen.ru/incfile.php');
$h++;
}
else
{
$people = 0;

}


$res = "UPDATE bd_hat SET people='".$people."' WHERE login='".$login."'";
$resup=mysql_query($res);

}
?>

Суть такая, скрипт идет по всей базе и смотрит какие строки промодерированы, потом в случае истины он вытаскивает количество человек на сайте и это количество должен записать в строку соответствующую данному логину в поле people но почемуто не делает этого, т.е.

$res = "UPDATE bd_hat SET people='".$people."' WHERE login='".$login."'";
$resup=mysql_query($res);

не срабатывает, подскажите как это реализовать

   
 
 автор: Эй   (01.07.2008 в 15:53)   письмо автору
 
   для: gecccter   (01.07.2008 в 15:24)
 

Так наверно попроще будет:

$sql="SELECT * FROM bd_hat WHERE login!='' AND `moder`=1";


Переменную $login нужно обрабатывать перед вставкой в запрос.

Все запросы выполняются без ошибок?

   
 
 автор: gecccter   (01.07.2008 в 16:59)   письмо автору
 
   для: Эй   (01.07.2008 в 15:53)
 

все запросы выполняются гуд, кроме update, может из за того что из цикла обращаюсь к таблице которая сам этот цикл и задает?

   
 
 автор: GeorgeIV   (01.07.2008 в 17:04)   письмо автору
 
   для: gecccter   (01.07.2008 в 16:59)
 

Не срабатывает - ошибка мускула выдается или просто не то апдэйтится?

   
 
 автор: Gecccter   (01.07.2008 в 19:28)   письмо автору
 
   для: GeorgeIV   (01.07.2008 в 17:04)
 

Ошибки выдается и не убдэйтится, пробую так:

$sql="INSERT INTO bd_hat (id, ip, login, password, name, email, icq, data, uroven, people, moder) VALUES ('".$id."','".$ip."', '".$login."', '".$password."', '".$name."', '".$email."', '".$icq."', '".$data."', '".$uroven."', '".$people."', '".$moder."')";
$result=mysql_query($sql);
if (!$result) echo mysql_error();

ошибка Duplicate entry '4' for key 1Duplicate entry '7' for key 1Duplicate entry '10' for key 1Duplicate entry '13' for key 1Duplicate entry '29' for key 1Duplicate entry '33' for key 1

   
 
 автор: gecccter   (01.07.2008 в 19:39)   письмо автору
 
   для: Gecccter   (01.07.2008 в 19:28)
 

что это значит? в этих столбцах повторяется значение moder 1 но первичный ключ id а не moder, почему пишет ошибку?

   
 
 автор: Trianon   (01.07.2008 в 19:59)   письмо автору
 
   для: gecccter   (01.07.2008 в 19:39)
 

Что-то Вы путаете. Не 1 у вас повторяется, а 4, 7, 10 и т.д.

   
 
 автор: gecccter   (01.07.2008 в 20:09)   письмо автору
 
   для: Trianon   (01.07.2008 в 19:59)
 

Trianon, есть поле moder оно отображает какие чаты уже созданы и имеет значения 0 и 1, если 0 то еще не создан, если 1, то создан, так в чем тут ошибка?

   
 
 автор: Trianon   (01.07.2008 в 20:25)   письмо автору
 
   для: gecccter   (01.07.2008 в 20:09)
 

чтобы понять что у Вас происходит, нужно видеть
а) дамп таблицы.
б) исходник.

Кроме того, помимо mysql_error() имеет смысл выводить и текст самого запроса .
echo "Error in $sql : " . mysql_error();

Предположительно, дело вовсе не в поле moder.

   
 
 автор: gecccter   (01.07.2008 в 20:51)   письмо автору
 
   для: Trianon   (01.07.2008 в 20:25)
 

я все с нуля переделал и начало работать, хотя по идеи в бд ниче не менял и функции вобщемто те же самые использовал, чудеса, Trianon спасибо вам и всем кто отвечал

   
 
 автор: GeorgeIV   (02.07.2008 в 09:27)   письмо автору
 
   для: gecccter   (01.07.2008 в 20:51)
 

Чудес не бывает. Где то что то просто правильно переписал, вот и все.

   
Rambler's Top100
вверх

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