Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хитрость Msql, Почему запрос не выполняется... 
:(
    Опции темы
PARROT
Дата 1.5.2005, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Есть запрос к базе:
Код

if (!isset($s)) $s=0;
$res2=mysql_query("SELECT id_reference,data,name,city,mail,site,txt FROM reference order by name asc limit $s,30") or die(mysql_error());
for($i=0;$i<mysql_num_rows($res2);$i++)
{
        $mas=mysql_fetch_row($res2);
     $mas[2]=stripslashes($mas[2]);
      $mas[0]=stripslashes($mas[0]);
        $mas[3]=stripslashes($mas[3]);
        $mas[4]=stripslashes($mas[4]);
        list($y,$m,$d)=explode("-",$mas[1]);
        $mas[1]="$d.$m.$y";
    $l++;

Если в запрос добавить условие:
Код

if (!isset($s)) $s=0;
$res2=mysql_query("SELECT id_reference,data,name,city,mail,site,txt FROM reference WHERE id_reference=$idr order by name asc limit $s,30") or die(mysql_error());
for($i=0;$i<mysql_num_rows($res2);$i++)
{
        $mas=mysql_fetch_row($res2);
     $mas[2]=stripslashes($mas[2]);
      $mas[0]=stripslashes($mas[0]);
        $mas[3]=stripslashes($mas[3]);
        $mas[4]=stripslashes($mas[4]);
        list($y,$m,$d)=explode("-",$mas[1]);
        $mas[1]="$d.$m.$y";
    $l++;

То запрос не выполняется, сообщается о такой ошибке:
Код

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 'order by name asc limit 0,30' at line 1

Что я неправильно пишу? Почему без условия запрос выполняется и данные из базы воводятся, а при добавлении условия, сразу возникает ошибка?
Мистика какая-то smile
Условия нужно для отправки письма пользователю по номеру ссылки.



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Sardar
Дата 1.5.2005, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



Скорее всего в $idr пустая строка. Кстати все параметры лучше оборачивать в кавычки и экранировать mysql_escape_string smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
PARROT
Дата 1.5.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Может быть... Но $idr является числом, зачем ее оборачивать в кавычки? Разве надо?
На меня только вчера орали по этому поводу smile
Бред какой-то...


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 1.5.2005, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



PARROT
А ты выведи запрос:
Код

print "SELECT id_reference,data,name,city,mail,site,txt FROM reference WHERE id_reference=$idr order by name asc limit $s,30";

А там посмотрим..
PM ICQ   Вверх
PARROT
Дата 1.5.2005, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Код

SELECT id_reference,data,name,city,mail,site,txt FROM reference WHERE id_reference= order by name asc limit 0,30
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in z:\home\avtodiesel\www\pages\reference.php on line 9

Пустая переменная, а почему? id_reference- номер записи, он никуда не может деться!
У меня просто постоянно эти ошибки!



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 1.5.2005, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



PARROT
idr откуда берется?
Про register_globals = Off не забыла?
PM ICQ   Вверх
PARROT
Дата 1.5.2005, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



$idr это номер записи в базе, откуда он берется... уже незнаю. smile Присваивается. Что $mas[0], что $idr ... это тоже самое?
Я запуталась... smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 1.5.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



При чем тут $mas... Это уже у тебя идет после.
idr у тебя случаем не с формы или адресной строки появляется?
PM ICQ   Вверх
PARROT
Дата 1.5.2005, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



По идее...да. Должно быть оттуда, но это должно происходить гораздо позже.
А присвоить $idr нужно в данный момент, чтобы после кликая на ссылку, эта переменная именно приходила из формы, а она не приходит... вот я и подумала, что может так решить проблему... Можно?
Добавлено @ 18:26
А если сделать скрытое поле при добавлении ссылки и обозвать его $idr, можно потом будет так поступать?

$idr нужна при выводе инфы, чтобы после к ней можно было обращаться, как сделать?

Это сообщение отредактировал(а) PARROT - 1.5.2005, 18:31


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Mal Hack
Дата 1.5.2005, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 122
Всего: 261



Цитата(PARROT @ 1.5.2005, 19:23)
А если сделать скрытое поле при добавлении ссылки и обозвать его $idr, можно потом будет так поступать?

Да.


Для формы делаешь скрытое поле. В противном случае передаешь через GET запрос.
PM ICQ   Вверх
PARROT
Дата 1.5.2005, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Цитата(Mal @ 1.5.2005, 18:45)
В противном случае передаешь через GET запрос.

$_GET['page']

Так?

Я честно, не совсем понимаю эту идею, нас просто этому не учили, если учесть, что нас не учили не чему, только денег брали и все.

Можно объяснить словами, как сделать?


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Sardar
Дата 1.5.2005, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



PARROT а может просто скинешь больше кода, вдуг ты просто забыла что $идр это глобальная переменная, следовательно global $idr опускать не надо smile smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
PARROT
Дата 1.5.2005, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Не, это точно не глобальная переменная, это я просто переписываю свой рабочий сайт, убираю все то,чему меня учили на курсах, исправляю на то, чему меня научил НАШ Форум!, могу запутаться! Что и произошло.
Потому как странно получается, два похожих кода, доски объяв и добавления ссылок, практически едентичны, а работают по разному. У доски работает то, о чем я писала выше, а у ссылок не работает! А написано одно и тоже.
Вот и берут меня сомнения, возникают вопросы, а почему?
Скрытого поля в форме доски нет, а переменная не пустая!
Я и говорю, бред...


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Sardar
Дата 1.5.2005, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



PARROT так не бывает smile

Скинь код, лучше весь, иначе помочь тебе нельзя smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
PARROT
Дата 1.5.2005, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: 23
Всего: 50



Код добавления ссылок:
Код

<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td>
<?
if (!isset($s)) $s=0;
$res2=mysql_query("SELECT id_reference,data,name,city,mail,site,txt FROM reference order by name asc limit $s,30");
for($i=0;$i<mysql_num_rows($res2);$i++)
{
        $mas=mysql_fetch_row($res2);
     $mas[2]=stripslashes($mas[2]);
      $mas[0]=stripslashes($mas[0]);
        $mas[3]=stripslashes($mas[3]);
        $mas[4]=stripslashes($mas[4]);
        list($y,$m,$d)=explode("-",$mas[1]);
        $mas[1]="$d.$m.$y";
    $l++;
        ?>
    <Div id="mydiv<?=$l;?>" onclick="javascript:Set_Display(document.getElementById('mysubdiv<?=$l;?>'));" style="cursor:hand">
    <table id="t7" width=443 align=center cellpadding=0 cellspacing=2 border=0>
    <tr>
    <td  style="padding-left:120"><u><?=$mas[2];?></u></td>
    </tr>
    </table>
    </div>
    
    <Div id="mysubdiv<?=$l?>" style="display:none">
    <table width="443" align=center cellpadding="0" cellspacing="0">
    <tr valign=top>
    <td class=7>
    <table class="out" width="443" cellpadding="0" cellspacing="0">
    <tr valign=top>
    <td align=left style="padding-left:5">город: <?=$mas[3]?></td>
    <td align=right style="padding-right:5"><?=$mas[1]?></td>
    </tr>
    <tr>
    <td colspan=2 style="padding-left:5"><?=$mas[6]?></td>
    </tr>
    <tr>
    <td align=left style="padding-left:5">e-mail: <a href="?page=post&idr=<?=$mas[0];?>">послать письмо</a></td>
    <td align=right style="padding-right:5">site: <a href="<?=$mas_not[5];?>"><?=$mas[5];?></a></td>
    </tr>
    </table></td></tr></table><br>
    </div>
    <?}
echo"<center>";
$res3=mysql_query("select count(id_reference) from reference");
$num=mysql_fetch_row($res3);

$numstr=ceil($num[0]/30);
echo "<table><tr><td>Страницы: ($numstr)</td>";
for($i=1; $i<=$numstr; $i++){
        $start=($i-1)*30;
    if ($start==$s OR ($s==0 AND $i==1));
    print "<td><a href=index.php?page=reference&s=$start>[$i]</a></td> ";
    if ($start==$s OR ($s==0 AND $i==1));
}

?>
</tr>
</table>
</td>
</tr>
</table>

Код добавления объяв:
Код

 <table width=100%>
 <tr>
<td colspan=2><hr color=#28166F size=0></td>
</tr>
 <tr>
 <td align=center><a class=2 href=?page=board&cat=1>Спрос</a></td>
<td align=center><a class=2 href=?page=board&cat=2>Предложение</a></td>
</tr>
<tr>
<td colspan=2><hr color=#28166F size=0></td>
</tr>
</table>
 <?
 if(empty($cat)){$cat=2;}
if(!$id)
{    
?>
<table  width=100%  cellpadding=0 cellspacing=0>
 <tr>
 <td align=center class=1>Добавлено</td>
 <td align=center class=1>Заголовок</td>
 <td align=center class=1>Город</td>
 <td align=center class=1>Автор</td>
 <td align=center class=1>Просмотров</td>
 </tr>
<?
if (!isset($s)) $s=0;
$res2=mysql_query("select  id_notice,data,caption,txt,name,city,phone,site,mail,cnt FROM notice where id_cat=$cat order by id_notice desc limit $s,20");
 $break    = array('#F4F2FA', '#F9EBDF'); 
for($i=0;$i<mysql_num_rows($res2);$i++)
{
    $mas[0]=stripslashes($mas[0]);
    $mas=mysql_fetch_row($res2);
        $mas[3]=stripslashes($mas[3]);
        $mas[4]=stripslashes($mas[4]);
        list($y,$m,$d)=split("-",$mas[1]);
        $mas[1]="$d.$m.$y";
        $color    = (($i%2) != 0) ? $break[0] : $break[1];
      
       echo  "<tr bgcolor=$color>
        <td align=center>$mas[1]</td>
        <td style='padding-left:5'><a class=4 href=?page=board&id=$mas[0]>$mas[2]</a></td>
        <td style='padding-left:5'>$mas[5]</td>
        <td style='padding-left:5'>$mas[4]</td>
        <td align=center>$mas[9]</td>   
        </tr>";
}
echo "</table>";
echo"<center>";
$res3=mysql_query("select count(id_notice) from notice where id_cat=$cat");
$num=mysql_fetch_row($res3);

$numstr=ceil($num[0]/20);
echo "<table><tr><td>Страницы: ($numstr)</td>";
for($i=1; $i<=$numstr; $i++){
        $start=($i-1)*20;
    if ($start==$s OR ($s==0 AND $i==1));
    print "<td><a href=index.php?page=board&s=$start>[$i]</a></td> ";
    if ($start==$s OR ($s==0 AND $i==1));
}
echo "</tr></table>";
}
if($id)
{
$res3=mysql_query("select id_notice,data,caption,txt,name,city,phone,site,mail,cnt FROM notice WHERE id_notice=".$id);
for($i=0;$i<mysql_num_rows($res3);$i++)
{
        $mas=mysql_fetch_row($res3);
        $mas[0]=stripslashes($mas[0]);
        $mas[3]=stripslashes($mas[3]);
        $mas[4]=stripslashes($mas[4]);
        $mas[5]=stripslashes($mas[5]);
        $mas[6]=stripslashes($mas[6]);
        $mas[2]=stripslashes($mas[2]);
         $mas[7]=stripslashes($mas[7]);
        $mas[8]=stripslashes($mas[8]);
        list($y,$m,$d)=split("-",$mas[1]);
        $mas[1]="$d.$m.$y";
        if(mysql_query("UPDATE notice SET cnt=cnt+1   WHERE  id_notice=".$mas[0]));
        echo "<table  width=100%>
        <tr>
        <td class=3>$mas[2]</td>
        </tr>
        <tr>
        <td style='padding-left:10'>$mas[3]</td>
        </tr>
        <tr>
        <td>Имя: $mas[4]</td>
        </tr>
        <tr>
        <td>город: $mas[5]</td>
        </tr>
        <tr>
        <td>телефон: $mas[6]</td>
        </tr>
        <tr>
        <td>site: <a href=$mas[7]>$mas[7]</a></td>
        </tr>
        <tr>
        <td><a href=?page=post&id=$id>послать письмо</a></td>
        </tr></table>";
}
}
?>

Ни в том, ни в другом случае нет скрытого поля при добавлении из формы. smile


--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0655 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.