Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Срочно нужна помощь плззз...  (Прочитано 20899 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
Slavik333
Гость
« : 24-04-2007 20:00 » 

При обращении к базе на сравнение наименования чего-либо(кроме числовых символов)
пишет not found , а числовые символы находит сверяет и отображает...


Код:
<?php
if(isset(
$_GET[&#39;name_field&#39;]) and $_GET[&#39;name_field&#39;]=="Goods")
{
$find=trim($_GET[&#39;name_find&#39;]);
$find=htmlspecialchars($_GET[&#39;name_find&#39;]);
$_GET[&#39;name_field&#39;]=trim(htmlspecialchars($_GET[&#39;name_field&#39;]));

$result mysql_query("SELECT * FROM ".$db_table_name." WHERE Goods=".$find);
}
if(isset($_GET[&#39;name_field&#39;]) and $_GET[&#39;name_field&#39;]=="Price")
{
$result mysql_query("SELECT * FROM ".$db_table_name." WHERE Price=".$_GET[&#39;name_find&#39;]."");
}
if(@
$row=mysql_fetch_array($result))
{
echo 
$row[&#39;Date&#39;]." ";
echo $row[&#39;Lang&#39;]." ";
echo $row[&#39;Mail&#39;]." ";
echo $row[&#39;Goods&#39;]." ";
echo $row[&#39;Price&#39;]." ";
echo $row[&#39;Image&#39;]." ";
echo $row[&#39;Advance&#39;]." ";
echo $row[&#39;Text&#39;]." ";
}
else
{
print
"not found";
}
?>

« Последнее редактирование: 24-04-2007 21:05 от Slavik333 » Записан
Slavik333
Гость
« Ответ #1 : 24-04-2007 20:40 » 

SELECT * FROM table_b WHERE ...

Как считать все ответы с базы при Name=...
Код:
<?php
if(@$row=mysql_fetch_array($result))
{
echo 
$row[&#39;Date&#39;]." ";
echo $row[&#39;Lang&#39;]." ";
echo $row[&#39;Mail&#39;]." ";
echo $row[&#39;Goods&#39;]." ";
echo $row[&#39;Price&#39;]." ";
echo $row[&#39;Image&#39;]." ";
echo $row[&#39;Advance&#39;]." ";
echo $row[&#39;Text&#39;]." ";
}
?>

При этом коде мне выдаёт только первую найденную строчку.
« Последнее редактирование: 24-04-2007 20:53 от Slavik333 » Записан
Chuda
Гость
« Ответ #2 : 24-04-2007 21:08 » 

а если попробовать так?
Код:
$result = mysql_query("
                    select *
                    from `".$db_table_name."`
                    where `Price` = \"".$_GET['name_find']."\"
             ");
получится?
 
Записан
Slavik333
Гость
« Ответ #3 : 24-04-2007 21:28 » 

Нет выдаёт только первую из строчек
Записан
RXL
Технический
Администратор

Online Online
Пол: Мужской

WWW
« Ответ #4 : 24-04-2007 21:29 » 

Slavik333, прошу больше не плодить темы! Достаточно один раз написать.


Вместо
Код:
if(@$row=mysql_fetch_array($result))
нужно
Код:
while ($row = mysql_fetch_array($result))
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Slavik333
Гость
« Ответ #5 : 24-04-2007 21:37 » 

Спасибо...
 как я пропустил цикл , не знаю...

а вот почему не находит буквенные значения?
Записан
Slavik333
Гость
« Ответ #6 : 24-04-2007 21:47 » 

на код $row=mysql_fetch_array($result)
выдаёт ошибку
mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...\search_view.php on line 30
Записан
Slavik333
Гость
« Ответ #7 : 24-04-2007 23:07 » 

Всё нашёл:
Код:
<?php $result mysql_query("SELECT * FROM ".$db_table_name." WHERE Goods=&#39;".$find."&#39;"); ?>
в конце одинарные кавычки...
Записан
RXL
Технический
Администратор

Online Online
Пол: Мужской

WWW
« Ответ #8 : 25-04-2007 05:31 » 

Slavik333, то, что выдает ошибку - это хорошо, а вот подавлять ошибки - это "времянка" и в рабочем коде использовать не желательно.

После mysql_query() следует проверить результат.
Код:
if (!$result) die("DB Error: " . mysql_error());

Ошибку ищи в запросе.
« Последнее редактирование: 25-04-2007 05:44 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #9 : 25-04-2007 07:20 » 

Спасибо...
 как я пропустил цикл , не знаю...

не стоит пренебрегать оформлением кода, чтобы он хотя бы читаемым был. Так меньше вероятность допустить несуразную и глупую ошибку.

а вот почему не находит буквенные значения?
смотри мой пост выше.
вот твой вариант: WHERE Price=".$_GET['name_find'].""
этот вариант уместен, когда `Price` является числовым значением.
Когда там содержится строковое значение, следует его заключать в кавычки.
Хотя у меня обычно вообще в случае, если забыть кавычки, ничего не работало, ссылаясь на ошибку в синтаксисе SQL.
Записан
Slavik333
Гость
« Ответ #10 : 28-04-2007 12:07 » 

Спасибо ещё раз...
Записан
Slavik333
Гость
« Ответ #11 : 28-04-2007 18:53 » 

А как быть в случае если мне нужно выбрать при двух условиях...
where ... and where ...
можно так использовать ?
Код:
<?php
$result 
mysql_query ("SELECT * FROM ".$db_table_name."
 WHERE Price=&#39;"
.$_GET[&#39;name_find&#39;]."&#39;" and 
 
WHERE Lang=&#39;".$_GET[&#39;Lang&#39;]."&#39;");
?>

Записан
Chuda
Гость
« Ответ #12 : 28-04-2007 18:58 » 

Славик, так это.. синтаксис mysql лучше бы изучить, если с БД работать надо.
Код:
<?php
$result 
mysql_query ("
select *
from `"
.$db_table_name."`
where
`Price` = \""
.$_GET[&#39;name_find&#39;]."\" and
`Lang` = \"".$_GET[&#39;Lang&#39;]."\";
");
?>

Записан
Slavik333
Гость
« Ответ #13 : 28-04-2007 19:01 » 

Извеняюсь,но я не нашёл в учебнике.
Записан
Chuda
Гость
« Ответ #14 : 28-04-2007 19:10 » 

http://www.mysql.ru/docs/man/SELECT.html
на мой взгляд достаточно приличный учебник.
А ещё весьма рекомендую http://www.mysql.ru/docs/pautov/
я время от времени прочитываю эти учебники, когда посещаемые сайты начинают загибаться и требовать увеличения мощности железа, потом прочитанное применяю на практике, и загибающиеся сайты разгибаются и снова начинают летать Улыбаюсь забавно так..
Записан
Slavik333
Гость
« Ответ #15 : 28-04-2007 21:31 » new

Есть ещё вопросик...
Как лучше реализовать array_reverse с данными считанными с БД.
Считать кол-во rows и считывать по 10 (например) с обратной стороны с помощью LIMIT?
« Последнее редактирование: 28-04-2007 21:32 от Slavik333 » Записан
Slavik333
Гость
« Ответ #16 : 29-04-2007 22:08 » 

допустим мне нужно ...

Код:
<?php

$result 
mysql_query ("SELECT * FROM $db_name WHERE ID=&#39;".$_GET[&#39;id&#39;]."&#39;" 
LIMIT ".$limit_query.",".$limit_num.");
?>


вроде бы можно сначала узнать сколько всего строчек...

Код:
<?php
$result2 
mysql_query ("SELECT * FROM " .$db_table_name." WHERE ID=&#39;".$_GET[&#39;id&#39;]."&#39;");
$num_rows=mysql_num_rows($result2);
?>


и исходя из этого считывать по 5-10 строчек отталкиваясь от полученного числа строк...
По идее такой код должен работать.
Или всё таки есть более профессиональное решение этой задачи?
« Последнее редактирование: 29-04-2007 22:41 от Slavik333 » Записан
Chuda
Гость
« Ответ #17 : 02-05-2007 08:41 » 

ой!!!
нет.
всё куда проще.
Код:
select * from `".$db_table_name."`
where `ID` = ".(int)$_GET['id']."
order by `ID` desc
limit 10
где order by - это поле, по которому производится сортировка (desc - в обратном порядке), limit - количество строк, которые надо выбрать.
И ещё рекомендую обратить внимание на преобразование типа (int)$_GET['id']. Это так, на всякий случай, чтобы не случилось чего плохого, если пользователь по ошибке наберёт в адресной строке что-нибудь типа www.site.nah/index.php?id=5';drop table Улыбаюсь
Записан
Slavik333
Гость
« Ответ #18 : 12-05-2007 22:11 » 

что мне делать если нет разрешения на функции copy и move_uploaded_file ?

copy(./uploaded_images/3.jpg) [function.copy]: failed to open stream: Permission denied in

можно включить это в save_mode???
« Последнее редактирование: 12-05-2007 22:14 от Slavik333 » Записан
Slavik333
Гость
« Ответ #19 : 12-05-2007 22:21 » 

sorry плохо прочитал ошибку...
забыл поставить chmod 777 Улыбаюсь

а вообще можно включить что либо в save_mode???
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines