SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 25.06.2015 11:11:01

Running_nymph
Участник
Зарегистрирован: 25.06.2015
Сообщений: 5

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Здравствуйте,
php, mysql начала изучать совсем недавно, сегодня столкнулась с такой ошибкой: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' Resource id #84' at line 1".
Моя цель - достать из базы данных план одного из студентов с возможностью скачивания.

Кусок кода:

<a href="#x" class="overlay" id="lightbox"></a>

<div class="popup">

<ol>


<?php

$link = mysql_connect('u371440.mysql.xxxx.ru','u371440','xxxxxxxxxx');
mysql_select_db('u371440_xxxxxxx');
mysql_set_charset('utf8');
$res = mysql_query("SELECT `indiv_plan_url` FROM `muis3_users` WHERE id='$user->id', $link") or die(mysql_error());
$row=mysql_fetch_assoc($res);
echo '<li><a href="'.$row["indiv_plan_url"].'">Скачать план ('.$user->name.')</a></li>';

?>
 

</ol>

<a class="close" title="Закрыть" href="#close"></a>

</div>

Подскажите, как устранить ошибку.

Неактивен

 

#2 25.06.2015 11:25:26

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Попробуйте вот так

$res = mysql_query("SELECT `indiv_plan_url` FROM `muis3_users` WHERE id=" . $user->id . ";", $link)


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#3 25.06.2015 11:30:56

Running_nymph
Участник
Зарегистрирован: 25.06.2015
Сообщений: 5

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

deadka написал:

Попробуйте вот так

$res = mysql_query("SELECT `indiv_plan_url` FROM `muis3_users` WHERE id=" . $user->id . ";", $link)

Ничего не изменилось.

Отредактированно Running_nymph (25.06.2015 11:37:21)

Неактивен

 

#4 25.06.2015 11:51:12

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Давайте убедимся для начала, что сам sql-запрос корректный.

Вместо

$res = mysql_query("SELECT `indiv_plan_url` FROM `muis3_users` WHERE id='$user->id', $link") or die(mysql_error());


напишите

$query = "SELECT `indiv_plan_url` FROM `muis3_users` WHERE id = " . $user->id;
print $query; //Это чтобы увидеть текст запроса
$res = mysql_query($query, $link) or die(mysql_error());


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#5 25.06.2015 12:01:01

Running_nymph
Участник
Зарегистрирован: 25.06.2015
Сообщений: 5

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

На экране отобразилось следующее:
"SELECT `indiv_plan_url` FROM `muis3_users` WHERE id = 0

Скачать  план ()" //неработающая ссылка

Неактивен

 

#6 25.06.2015 12:26:15

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Тек-с, а не кажется ли Вам, что id равный 0 - это что-то странное? Какое содержимое у объекта $user?


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#7 26.06.2015 10:12:03

Running_nymph
Участник
Зарегистрирован: 25.06.2015
Сообщений: 5

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

$user=JFactory::getUser();

Как-то так...

Неактивен

 

#8 26.06.2015 10:27:38

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Я не про то, как Вы его получили, а что внутри.  После
$user=JFactory::getUser();
сделайте
print_r($user);
и пришлите вывод. Как Вы понимаете, id не должен быть равен 0, если это так, то ищите ошибку в php-коде, mysql тут уже ни причем совершенно.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#9 26.06.2015 11:23:24

Running_nymph
Участник
Зарегистрирован: 25.06.2015
Сообщений: 5

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Вывод пришел следующий:


JUser Object
( [isRoot:protected] =>
[id] => 0
[name] =>
[username] =>
[email]=>
[password] =>
[password_clear] =>
[block] =>
[sendEmail] => 0
[registerDate] =>
[lastvisitDate] =>
[activation] =>
[params] =>
[groups] => Array ( [0] => 9 )
[guest] => 1
[lastResetTime] =>
[resetCount] =>
[requireReset] =>
[_params:protected] =>
Joomla\Registry\Registry Object
( [data:protected] => stdClass Object
( ) [separator] => . )
[_authGroups:protected] => Array ( [0] => 1 [1] => 9 )
[_authLevels:protected] => Array ( [0] => 1 [1] => 1 [2] => 5 )
[_authActions:protected] =>
[_errorMsg:protected] =>
[userHelper:protected] => JUserWrapperHelper Object ( )
[_errors:protected] =>
Array ( )
[aid] => 0
)
 


Погуглив, выяснила, что это из-за того, что я не зарегистрирована на сайте. Но проблема в том, что такова задумка: все эти пользователи и их работы должны быть видны каждому, кто заходит на страницу.

Неактивен

 

#10 26.06.2015 11:31:04

deadka
Администратор
Зарегистрирован: 14.11.2007
Сообщений: 2422

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

id равен 0, что и требовалось доказать..
Значит Ваша задача - любым способом (тут не подскажу уже) получить id пользователя, и его уже подставлять в sql-запрос.


Зеленый свет для слабаков, долги отдают только трусы, тру гики работают только в консоли...

Неактивен

 

#11 26.06.2015 12:48:18

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version

Получается, что id юзера равен нулю. Ваша задача получить из базы план студента. В данный момент реализация такова, что код пытается получить план данного юзера. Для id равного 0 это бессмысленно, поэтому нужно пересмотреть логику приложения.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson