Страница 1 из 1

ошибка в коде

Добавлено: 28 июл 2012, 18:45
Fedya
Здравствуйте!

Код: Выделить всё

mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");mysql_select_db($dbName) or die (mysql_error());$cdate = date("Y-m-d G:i:s");$h=mysql_query("SELECT vkid, data FROM $table");$qwe = mysql_fetch_array($h);if ($qwe['vkid'] == $uid){mysql_query("UPDATE $table SET data='$cdate' WHERE data='$qwe['data']'") or die(mysql_error());}else{$query = "INSERT INTO $table SET vkid='$uid', data='$cdate'";mysql_query($query) or die(mysql_error());}
не понимаю, почему не работает


$qwe['vkid'] - id пользователя в базе
$uid - id пользователя на сайте
$cdate - новая дата
$qwe['data'] - старая дата

Re: ошибка в коде

Добавлено: 28 июл 2012, 18:56
Fedya
Без отбора работает отлично

Код: Выделить всё

 mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");mysql_select_db($dbName) or die (mysql_error());$cdate = date("Y-m-d G:i:s");$query = "INSERT INTO $table SET vkid='$uid', data='$cdate'";mysql_query($query) or die(mysql_error()); 

_______________________
Мне кажется проблема вот в этом

Код: Выделить всё

 $qwe = mysql_fetch_array($h); 
но я не знаю как по другому сделать, я знаю, что с этой фигнюшкой надо брать так

Код: Выделить всё

 while ($qwe = mysql_fetch_array($h)) {бла бла бла} 
но так он будет изменять столько раз, сколько столбцов в базе ,а это хрень какая-то)

Re: ошибка в коде

Добавлено: 28 июл 2012, 21:19
Serge
Какой-то стремный скрипт.
Надо через while, оно идет не по столбикам, а по строкам, которые в результате. Если Вы уверен, что в результате одна строка - используйте mysql_fetch_assoc

Re: ошибка в коде

Добавлено: 28 июл 2012, 21:30
Fedya
Читал, что это не важно,
вообще скрипт выдает ошибку 500, может просто запятой где не хватает?

Re: ошибка в коде

Добавлено: 28 июл 2012, 21:41
Fedya

Код: Выделить всё

$cdate = date("Y-m-d G:i:s");$h=mysql_query("SELECT vkid, data FROM $table");$res = mysql_fetch_array($h);while ($qwe = mysql_fetch_array($res)) {if ($qwe['vkid'] == $uid){mysql_query("UPDATE $table SET data='$cdate' WHERE data='$qwe['data']'") or die(mysql_error());}else{$query = "INSERT INTO $table SET vkid='$uid', data='$cdate'";mysql_query($query) or die(mysql_error());}}
все равно ошибка.

если не понятно, то, я хочу, чтобы,
если id пользователя на сайте == id пользователю из базы,
то просто измени время посещения у этого пользователя,
если этого id нету в базе, то запиши его id + время посещения в базу

Re: ошибка в коде

Добавлено: 28 июл 2012, 21:44
Fedya
Нашел ошибку,

Код: Выделить всё

mysql_query("UPDATE $table SET data='$cdate' WHERE data='$qwe['data']' ") or die(mysql_error());
в этой строке как-то неправильно записано

Код: Выделить всё

$qwe['data']

Re: ошибка в коде

Добавлено: 28 июл 2012, 22:06
Fedya
WHERE data='{$qwe[data]}'
все, спасибо, за помощь)

Re: ошибка в коде

Добавлено: 28 июл 2012, 23:26
Serge
Fedya писал(а):все равно ошибка.

если не понятно, то, я хочу, чтобы,
если id пользователя на сайте == id пользователю из базы,
то просто измени время посещения у этого пользователя,
если этого id нету в базе, то запиши его id + время посещения в базу
Тогда вам проще посмотреть в сторону

Код: Выделить всё

INSERT INTO ... ON DUPLICATE UPDATE ... 
Как-то так.