Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Webbuben
1 / 1 / 2
Регистрация: 06.04.2012
Сообщений: 40
1

Выборка из бд

11.05.2012, 00:28. Просмотров 1279. Ответов 12
Метки нет (Все метки)

Добрый день!
Я не знаю как сделать выборку из таблицы по четырем параметрам (записям в бд). Таблица одна. При этом необходимо чтобы даже если был выбран один из параметров или их комбинации сортировка производилась. Помогите пожалуйста!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2012, 00:28
Ответы с готовыми решениями:

Выборка без ключевых слов/Выборка без столбцов/Выборка с условием
Нужно сделать 2 типа выборки в отдельный столбец: #1 без ключевых слов типа...

Выборка уникальных записей с максимальными датами, и затем выборка по найденому
Как вообще такой запрос лучше составить? У меня есть таблица User(id) и...

Выборка задолженностей по таблице (выборка строк с пустыми ячейкам даты оплаты) для отчета
Имеется таблица учета продаж, в ней нужно сделать выборку по дате оплаты для...

Выборка из Combobox, причем выборка должна быть частичной
Добрый день. Подскажите пожалуйста как реализовать такого рода задачу: ...

Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене
Всем привет, нужна помошь. Имеется следующая таблица товаров Таблица:...

12
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
11.05.2012, 01:13 2
SQL Order by Multiple columns:
SQL
1
2
3
4
5
USE mydatabase;
 
SELECT *
FROM orders
ORDER BY customer, day_of_order;
это пример сортировки сразу по нескольким полям.
0
Webbuben
1 / 1 / 2
Регистрация: 06.04.2012
Сообщений: 40
11.05.2012, 02:51  [ТС] 3
Цитата Сообщение от AlienNation Посмотреть сообщение
SQL Order by Multiple columns:
SQL
1
2
3
4
5
USE mydatabase;
 
SELECT *
FROM orders
ORDER BY customer, day_of_order;
это пример сортировки сразу по нескольким полям.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$cena2=$_POST['cena2'];
        $probeg2=$_POST['probeg2'];
        $marka2=$_POST['marka'];
        $models2=$_POST['models'];
        mysql_connect('localhost', 'ivan', 'lehfrz1');
        mysql_select_db('avto');    
        
        $num = 5;     
        $page = $_GET['page']; 
 
$rgWheres=array();
if(!empty($cena2)) 
{
   $rgWheres[]="cena<=".addslashes($cena2);
}
 
if(!empty($probeg2))
{
   $rgWheres[]="probeg<=".addslashes($probeg2);
}
 
if(!empty($marka2))
{
   $rgWheres[]="marka=".addslashes($marka2);
}
 
if(!empty($models2))
{
   $rgWheres[]="models=".addslashes($models2);
}
$strWhere=join(" AND ", $rgWheres);
if($strWhere)
{
   $strWhere="  WHERE ".$strWhere;
}
$sql="SELECT * FROM auto ".$strWhere;
 
$result = mysql_query($sql);
я сделал так, но на последней строке ругань (где резалт)
PHP
1
Warning: mysql_result() expects parameter 1 to be resource, boolean given in Z:\denwer\www\denwer\sortirovka.php on line 151
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
11.05.2012, 02:56 4
PHP
1
var_dump($sql);
перед
PHP
1
$result = mysql_query($sql);
а после этой строчки
PHP
1
2
3
if (!$result){
die('query error : '. mysql_error());
}
смотрите в чем проблема.
0
Webbuben
1 / 1 / 2
Регистрация: 06.04.2012
Сообщений: 40
11.05.2012, 03:02  [ТС] 5
string(48) "SELECT * FROM auto WHERE marka=ChevroletCorvet" query error : Unknown column 'ChevroletCorvet' in 'where clause'

я что неправильно снимаю значения селекта?

тоже самое если только пробег например выбрать

string(41) "SELECT * FROM auto WHERE probeg<=500000"

и все остальное..)
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
11.05.2012, 03:11 6
Цитата Сообщение от Webbuben Посмотреть сообщение
я что неправильно снимаю значения селекта?
не знаю что вы там снимаете, но поле вы неправильно задали хотя ругается на значение, значит и значение может быть в bad condition, используйте одинарные ` кавычки. Составьте запрос руками сначала, проверьте.
0
Webbuben
1 / 1 / 2
Регистрация: 06.04.2012
Сообщений: 40
11.05.2012, 03:18  [ТС] 7
а вообще принцип выборки правильный?
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
11.05.2012, 03:23 8
PHP
1
$sql = "SELECT * FROM `auto` WHERE `probeg`<=500000";
правильный, а вот что у вас в БД творится сомнительно...
Консолью MySQL пользоваться умеете?
0
Webbuben
1 / 1 / 2
Регистрация: 06.04.2012
Сообщений: 40
11.05.2012, 03:26  [ТС] 9
Цитата Сообщение от AlienNation Посмотреть сообщение
PHP
1
$sql = "SELECT * FROM `auto` WHERE `probeg`<=500000";
правильный, а вот что у вас в БД творится сомнительно...
Консолью MySQL пользоваться умеете?
умею, там вообще должны не значения быть, а как в стандартном запросе типо
PHP
1
mysql_query ("select * from table WHERE name='$name' AND name1='$name1' ",$db);
но почему то он подставляет значения переменных...
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
11.05.2012, 03:31 10
Цитата Сообщение от Webbuben Посмотреть сообщение
умею, там вообще должны не значения быть, а как в стандартном запросе типо
я о том чтобы протестить, не надо значения переменных вам сейчас.

Цитата Сообщение от Webbuben Посмотреть сообщение
но почему то он подставляет значения переменных...
PHP
1
mysql_query ("select * from table WHERE name='$name' AND name1='$name1' ",$db);
если вы об этой строке, то оно и должно вставлять значение переменных.
0
Webbuben
1 / 1 / 2
Регистрация: 06.04.2012
Сообщений: 40
11.05.2012, 03:37  [ТС] 11
Цитата Сообщение от AlienNation Посмотреть сообщение
я о том чтобы протестить, не надо значения переменных вам сейчас.


PHP
1
mysql_query ("select * from table WHERE name='$name' AND name1='$name1' ",$db);
если вы об этой строке, то оно и должно вставлять значение переменных.
вручную вбиваешь запрос с where и and где перечислены все условия (как в строке в цитате) - все работает сортирует как надо. только если не выбрано что-то такая сортировка сыплется.
я не понимаю почему не работает этот код, ошибка ведь в нем?
0
Schtrich
weboman
210 / 195 / 63
Регистрация: 13.08.2010
Сообщений: 1,531
Записей в блоге: 6
11.05.2012, 04:11 12
Цитата Сообщение от Webbuben Посмотреть сообщение
сортирует
не путайте сортировку с выборкой!

Я протестил одну из своих таблиц, все прекрасно сработало:

SQL
1
SELECT * FROM `mir` WHERE `id`=1 AND `name`='america';
С кавычками таки может быть запара. ' и ` это видимо не одно и то же.

Добавлено через 13 минут
а возможно я вас недопонимаю и вы хотите разделить строку:
PHP
1
2
3
4
5
6
7
8
9
10
11
<?php
$name = "porshe";
$name1 = "jeep";
$where = " WHERE name='$name'";
$and = " AND name1='$name1'";
$str.=$where.=$and;
$query="SELECT * FROM `table` ". $str;
//var_dump($query);
//mysql_query ("select * from table $str",$db); // это я тестил, 
mysql_query($query,$db);
?>
0
Webbuben
1 / 1 / 2
Регистрация: 06.04.2012
Сообщений: 40
11.05.2012, 11:08  [ТС] 13
нет, мне не надо разделят строку, мне нужно только чтобы он по умному формировал правильный запрос. А протестировать мой код вы не можете?
0
11.05.2012, 11:08
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2012, 11:08

Выборка из БД
Начинаю программировать под ООП. Как можно реализовать подобный код? class...

выборка по id
вот к примеру делаю выборку по id (по убыванию) $n=1; while($n&lt;=4): ...

Выборка из БД
Пытаюсь сделать код который выбирает данные из таблицы имеется форма &lt;FORM...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru