ошибка в коде

Программирование, которое не связано с API.
Ответить
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19: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");$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'] - старая дата
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

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

Сообщение 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)) {бла бла бла} 
но так он будет изменять столько раз, сколько столбцов в базе ,а это хрень какая-то)
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

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

Сообщение Serge »

Какой-то стремный скрипт.
Надо через while, оно идет не по столбикам, а по строкам, которые в результате. Если Вы уверен, что в результате одна строка - используйте mysql_fetch_assoc
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

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

Сообщение Fedya »

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

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

Сообщение 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 + время посещения в базу
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

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

Сообщение Fedya »

Нашел ошибку,

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

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

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

$qwe['data']
Fedya
Сообщения: 174
Зарегистрирован: 21 июл 2012, 19:56

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

Сообщение Fedya »

WHERE data='{$qwe[data]}'
все, спасибо, за помощь)
Serge
WEB Team
WEB Team
Сообщения: 520
Зарегистрирован: 04 мар 2011, 21:55

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

Сообщение Serge »

Fedya писал(а):все равно ошибка.

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

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

INSERT INTO ... ON DUPLICATE UPDATE ... 
Как-то так.
Ответить