|
|
|
| Всем привет! у меня какие то проблемы с запросом а в чем дело никак не пойму.
вот код:
session_start();
$SID=session_id();
$timestamp = time();
$s = strftime("%d-%m-%Y %H:%M:%S", $timestamp);
$sql = "SELECT * FROM zakaz WHERE user='$SID'";
$q = mysql_query($sql);
if ($q)
{
$idzakaz = mysql_result($q,'',"idzakaz");
$sql = "UPDATE cart SET zakaz='$idzakaz', done='1' WHERE user='$SID'";
$q = mysql_query($sql);
}
else
{
$sql = "INSERT INTO zakaz (user, date, first_name, last_name, email, adres, telefon)
VALUES ('$SID','$s','$_POST[first_name]','$_POST[last_name]','$_POST[email]','$_POST[adres]','$_POST[telefon]')";
$q = mysql_query($sql);
$sql = "SELECT * FROM zakaz ORDER BY idzakaz DESC LIMIT 1,1";
$q = mysql_query($sql);
$idzakaz = mysql_result($q,'',"idzakaz");
$sql = "UPDATE cart SET zakaz='$idzakaz', done='1' WHERE user='$SID'";
$q = mysql_query($sql);
}
$zak = 1;
$zak_text = "<div align=center><b>Спасибо за Ваш заказ!<br>В ближайшее время наш менеджер свяжется с Вами</b><br><br></div>";
session_destroy();
|
выдается ошибка:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 6 in T:\home\virtual\cifrus2\zakaz.php on line 30
|
30 строка это:
if ($q)
{
$idzakaz = mysql_result($q,'',"idzakaz");
$sql = "UPDATE cart SET zakaz='$idzakaz', done='1' WHERE user='$SID'";
$q = mysql_query($sql);
} | |
|
|
|
|
|
|
|
для: Spenser
(07.03.2007 в 00:18)
| | Проверьте при помощи функции mysql_num_rows() возвращает ли SQL-запрос
SELECT * FROM zakaz ORDER BY idzakaz DESC LIMIT 1,1
|
хотя бы одну запись? | |
|
|
|
|
|
|
|
для: cheops
(07.03.2007 в 00:33)
| | Не будет он ничего возвращать. Как раз из-за LIMITа и не будет. Хотя формально запрос корректный, смысла в нем 0. | |
|
|
|
|
|
|
|
для: Trianon
(07.03.2007 в 09:51)
| | >Как раз из-за LIMITа и не будет.
Тем не менее возвращает. | |
|
|
|
|
|
|
|
для: cheops
(07.03.2007 в 13:16)
| | вы говорите про запрос уже в блоке else а не работает самый первый запрос до if.там есть 100% данные так что должно работать, а не работает:(
я аже не могу предположить в чем дело. | |
|
|
|
|
|
|
|
для: cheops
(07.03.2007 в 13:16)
| | Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Эти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно 0 (не 1):
Да. Ошибся. Возвращать, конечно, будет. Но явно не первую строку. | |
|
|
|
|
|
|
|
для: cheops
(07.03.2007 в 00:33)
| | Все нашел свою ошибку.но тут возникла другая проблема как раз с тем запросом о котором вы говорили.мне надо выбрать только что добаленную запись.я пытаюсь делать это с помощью запроса:
SELECT * FROM zakaz ORDER BY idzakaz DESC LIMIT 1,1
|
ошибка такая же как и в первом случае.может я неправильно составил запрос?подскажите как правильно.данные есть 100%. | |
|
|
|
|
|
|
|
для: Spenser
(08.03.2007 в 20:55)
| | в MySQL только что добавленная запись определяется через вызов функции mysql_insert_id()
А не отдельным запросом. | |
|
|
|
|
|
|
|
для: Trianon
(08.03.2007 в 21:12)
| | спасибо огромное! с этой функцией намного проще и ошибок нет:) | |
|
|
|