Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее / 22 сообщений из 22, страница 1 из 1
14.02.2016, 17:05
    #39170762
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
Не нашел в интернете ответа, подскажите пожалуйста - Как сделать запрос выборки из БД по нескольким столбцам отсекая лишние данные
Есть БД с пользователями такая

ID ИМЯ ГОД РОЖДЕНИЯ ГОРОД
id FIRST_NAME BIRTHDAY_YEAR NAS_PUNKT
1 Михаил 1999 Москва
2 Иван 1984 Воронеж

- то есть если в поиске выбрали Михаил+Москва (сейчас выводиться правильно), а если выбрали Михаил+Воронеж - показывало что такого результата нет! то есть что в БД такая комбинация не найдена (т.е. нет пользователя с данными и имя-Михаил и город-Воронеж), а сейчас показывает и Михаила и Ивана т.к. при поиске у одного совпадает имя а у второго город, как это отфильтровать???
код ПХП
Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
<?php
require '../database_connection.php';

if (!mysql_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DATABASE_NAME)) {
    exit('Cannot select database');
}

{
$first_name = trim($_REQUEST['first_name']);
$nas_punct = trim($_REQUEST['nas_punct']);
$birthday = trim($_REQUEST['birthday']);
}

/* Выполнение SQL запроса */
$query = "
SELECT *
    FROM USERS
    WHERE FIRST_NAME = '$first_name'
        OR NAS_PUNKT = '$nas_punct'
        OR BIRTHDAY_YEAR = '$birthday'

";
$result = mysql_query($query) or die("Запрос ошибочный");
if (!$result) {
        echo "Could not successfully run query ($query) from DB: " . mysql_error();
        exit;
    }
    
    if (mysql_num_rows($result) == 0) {
        echo "Результаты по заданным параметрам не найдены!";
        exit;
    }
    while ($row = mysql_fetch_assoc($result)) 
    
    {
	printf("

<p>ФИО: " .$row['LAST_NAME'] . " " .$row['FIRST_NAME'] . " " .$row['MIDDLE_NAME'] . "  </p> 
<ul>
<li>Город: " .$row['NAS_PUNKT'] ." </li>
<li>Год рождения: " .$row['BIRTHDAY_YEAR'] ." </li>
</ul>

</div>
"
	);
}

?>



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

объединил данные из полей поиска так
Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
<?php
require '../php_primer/database_connection.php';
if (!mysql_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DATABASE_NAME)) {
    exit('Cannot select database');
}

{
$first_name = trim($_REQUEST['first_name']);
$nas_punct = trim($_REQUEST['nas_punct']);
$birthday = trim($_REQUEST['birthday']);
}
/* Выполнение SQL запроса */
$data = array();
if(!empty($_REQUEST['first_name']))
$data[] = "'first_name'='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "'nas_punct'='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "'birthday'='".($_REQUEST['birthday'])."'";
if(count($data) > 0)
{
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE ".implode(' AND ', $data)
               );
}
$result = mysql_query($data) or die("Запрос ошибочный");
if (!$result) {
        echo "Could not successfully run query ($data) from DB: " . mysql_error();
        exit;
    }
    if (mysql_num_rows($result) == 0) {
        echo "Результаты по заданным параметрам не найдены!";
        exit;
    }
    while ($row = mysql_fetch_assoc($result)) 
    {
	echo("

<p style='font-size: 25px;margin-bottom: 10px;'>ФИО: " .$row['LAST_NAME'] . " " .$row['FIRST_NAME'] . " " .$row['MIDDLE_NAME'] . "  </p> 
<ul>
<li>Город: " .$row['NAS_PUNKT'] ." </li>
<li>Год рождения: " .$row['BIRTHDAY_YEAR'] ." </li>
</ul>
"	);
}

?>



но все равно не работает, кто-нибудь может подсказать???
...
Рейтинг: 0 / 0
14.02.2016, 17:47
    #39170787
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684, подозреваю что:
Код: php
1.
2.
3.
4.
5.
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE ".implode(' AND ', $data)
               );


превращается в не то, что нада.
...
Рейтинг: 0 / 0
14.02.2016, 17:51
    #39170789
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
блин. вот это:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
/* Выполнение SQL запроса */
$data = array();
if(!empty($_REQUEST['first_name']))
$data[] = "'first_name'='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "'nas_punct'='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "'birthday'='".($_REQUEST['birthday'])."'";
if(count($data) > 0)
{
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE ".implode(' AND ', $data)
               );
}
$result = mysql_query($data) or die("Запрос ошибочный");
...
Рейтинг: 0 / 0
14.02.2016, 17:55
    #39170792
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
didgik,

хорошо а что мне подставить в
Код: php
1.
$data = array();


удалив
Код: php
1.
2.
3.
4.
5.
6.
7.
if(!empty($_REQUEST['first_name']))
$data[] = "'first_name'='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "'nas_punct'='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "'birthday'='".($_REQUEST['birthday'])."'";
if(count($data) > 0)


чтоб проверить работает ли переменная $data в моем sql запросе?????????
...
Рейтинг: 0 / 0
14.02.2016, 18:23
    #39170799
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
1. Смотрите текст готового запроса перед выполнением.
2. Кажется, бардак с кавычками имеет место быть.
...
Рейтинг: 0 / 0
14.02.2016, 18:32
    #39170800
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
vkle,

автор1. Смотрите текст готового запроса перед выполнением. - а как мне это сделать?????? вот этого я и не понимаю(
...
Рейтинг: 0 / 0
14.02.2016, 18:39
    #39170804
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684,
Через сервер чтоли по журналу?
...
Рейтинг: 0 / 0
14.02.2016, 19:13
    #39170810
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684vkle,

автор1. Смотрите текст готового запроса перед выполнением. - а как мне это сделать?????? вот этого я и не понимаю(Выбирайте по вкусу:
echo $data;
var_dump($data);
print_r($data);
И ещё с десяток способов чуток посложнее
...
Рейтинг: 0 / 0
14.02.2016, 20:33
    #39170838
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
vkle,

с кодом:
Код: sql
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<?php
require '../php_primer/database_connection.php';

if (!mysql_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DATABASE_NAME)) {
    exit('Cannot select database');
}
/* Выполнение SQL запроса */
$data = array();
if(!empty($_REQUEST['first_name']))
$data[] = "'first_name'='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "'nas_punct'='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "'birthday'='".($_REQUEST['birthday'])."'";
if(count($data) > 0)
{
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE '.implode(' AND ', $data)"
               );
}
echo $data;
var_dump($data);
print_r($data);

$result = mysql_query($data) or die("Запрос ошибочный");
if (!$result) {
        echo "Could not successfully run query ($data) from DB: " . mysql_error();
        exit;
    }
    if (mysql_num_rows($result) == 0) {
        echo "Результаты по заданным параметрам не найдены!";
        exit;
    }
    while ($row = mysql_fetch_assoc($result)) 
    {
	echo("
<p style='font-size: 25px;margin-bottom: 10px;'>ФИО: " .$row['LAST_NAME'] . " " .$row['FIRST_NAME'] . " " .$row['MIDDLE_NAME'] . "  </p> 
<ul>
<li>Город: " .$row['NAS_PUNKT'] ." </li>
<li>Год рождения: " .$row['BIRTHDAY_YEAR'] ." </li>
<li>Дом.телефон: " .$row['PHONE_1'] ." </li>
</ul>

<p style='font-size: 18px;margin-top: 0px;'><a href='../php_primer/show_user222.php?idUSERS=" .$row['idUSERS'] . "'>Посмотреть проект полностью</a></p>
---------<br/>
"
	);
}

?>



выдает такое:
Код: sql
1.
Arrayarray(3) { [0]=> string(27) "'first_name'='Михаил'" [1]=> string(26) "'nas_punct'='Москва'" [2]=> string(17) "'birthday'='1999'" } Array ( [0] => 'first_name'='Михаил' [1] => 'nas_punct'='Москва' [2] => 'birthday'='1999' ) Запрос ошибочный



это то что нужно???
...
Рейтинг: 0 / 0
14.02.2016, 21:22
    #39170869
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
1. "Выбирайте по вкусу" вовсе не означает "пихайте всё подряд". Достаточно какого-то одного варианта. Лично я предпочитаю var_dump() - он показывает тип данных (если даже придёт булево значение вместо строки, то сей факт будет виден). Ваш же вариантавтор
Код: php
1.
echo "Could not successfully run query ($data) from DB: " . mysql_error();

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

2. В $data у Вас массив, в то время, как mysql_query() ожидает получить строкуавтор
Код: php
1.
$result = mysql_query($data) or die("Запрос ошибочный");

. Забыли из компонентов составить запрос? Возможно, Вы не вполне поняли смысл просмотра текста проблемного запроса перед выполнением.
Смысл примерно такой.
Код: php
1.
2.
3.
$sql = "SELECT ...." ; // подготавливаете полный текст запроса для выполнения
var_dump($sql); // показываете текст запроса
$result = mysql_query($sql) or die(mysql_error()); // выполняете запрос с выводом сообщения об ошибке и остановкой в случае проблемы

Сопоставляете рядом расположенные текст запроса и сообщение об ошибке, находите проблему.
Да, при отладке в die() нужно не бестолковое "Запрос ошибочный" выводить, а mysql_error() - тогда увидите и сообщение об ошибке.

3. Ещё раз. Разберитесь внимательно с кавычками в запросе - для строк используются одинарные, а для имён полей, таблиц - обратные.

PS: Такое ощущение, что Вы пытаетесь изучать программирование не с самых простых примеров, да ещё и методом тыка. Может, учебники почитать? Не конкретно даже по PHP, а общего плана.
...
Рейтинг: 0 / 0
14.02.2016, 21:25
    #39170871
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
Вдогонку. На форуме неплохо работает подсветка синтаксиса. Она подсветила ещё один бардак с кавычками.
...
Рейтинг: 0 / 0
14.02.2016, 21:55
    #39170887
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
vkle,

читать уже некогда 2 недели решить вопрос, денег тоже нема, спасибо большое буду разбираться!
...
Рейтинг: 0 / 0
14.02.2016, 22:11
    #39170892
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684,

тоесть в примерно так?
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
/* Выполнение SQL запроса */
$sql = "SELECT * FROM USERS WHERE FIRST_NAME = '$first_name' AND NAS_PUNKT = '$nas_punct' AND BIRTHDAY_YEAR = '$birthday'";// подготавливаю правильный текст запроса для выполнения
var_dump($sql); // показываете текст запроса
$result = mysql_query($sql) or die(mysql_error());
$data = array();
if(!empty($_REQUEST['first_name']))
$data[] = "FIRST_NAME='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "'nas_punct'='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "'birthday'='".($_REQUEST['birthday'])."'";
if(count($data) > 0)
{
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE '.implode(' AND ', $data)"
               );
}
var_dump($data);
$result = mysql_query($data) or die(mysql_error());
...
Рейтинг: 0 / 0
14.02.2016, 22:19
    #39170895
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684,

<?php
require '../php_primer/database_connection.php';

if (!mysql_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD)) {
exit('Cannot connect to server');
}
if (!mysql_select_db(DATABASE_NAME)) {
exit('Cannot select database');
}
/* Выполнение SQL запроса */
$sql = "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
FROM USERS
WHERE '.implode(' AND ', $data)";
var_dump($sql); // показываете текст запроса
$result = mysql_query($sql) or die(mysql_error());
$data = array();
if(!empty($_REQUEST['first_name']))
$data[] = "FIRST_NAME='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "'nas_punct'='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "'birthday'='".($_REQUEST['birthday'])."'";
if(count($data) > 0)
{
mysql_query(
"SELECT * FROM USERS WHERE FIRST_NAME = '$data' AND NAS_PUNKT = '$data' AND BIRTHDAY_YEAR = '$data'"
);
}
var_dump($data);
$result = mysql_query($data) or die(mysql_error());
if (!$result) {
echo "Could not successfully run query ($data) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "Результаты по заданным параметрам не найдены!";
exit;
}
while ($row = mysql_fetch_assoc($result))
{
echo("
<p style='font-size: 25px;margin-bottom: 10px;'>ФИО: " .$row['LAST_NAME'] . " " .$row['FIRST_NAME'] . " " .$row['MIDDLE_NAME'] . " </p>
<ul>
<li>Город: " .$row['NAS_PUNKT'] ." </li>
<li>Год рождения: " .$row['BIRTHDAY_YEAR'] ." </li>
<li>Дом.телефон: " .$row['PHONE_1'] ." </li>
</ul>

<p style='font-size: 18px;margin-top: 0px;'><a href='../php_primer/show_user222.php?idUSERS=" .$row['idUSERS'] . "'>Посмотреть проект полностью</a></p>
---------<br/>
"
);
}

?>
...
Рейтинг: 0 / 0
14.02.2016, 22:20
    #39170898
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684,

Код: 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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
<?php
require '../php_primer/database_connection.php';

if (!mysql_connect(DATABASE_HOST, DATABASE_USERNAME, DATABASE_PASSWORD)) {
    exit('Cannot connect to server');
}
if (!mysql_select_db(DATABASE_NAME)) {
    exit('Cannot select database');
}
/* Выполнение SQL запроса */
$sql = "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE '.implode(' AND ', $data)";
var_dump($sql); // показываете текст запроса
$result = mysql_query($sql) or die(mysql_error());
$data = array();
if(!empty($_REQUEST['first_name']))
$data[] = "FIRST_NAME='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "'nas_punct'='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "'birthday'='".($_REQUEST['birthday'])."'";
if(count($data) > 0)
{
   mysql_query(
              "SELECT * FROM USERS WHERE FIRST_NAME = '$data' AND NAS_PUNKT = '$data' AND BIRTHDAY_YEAR = '$data'"
               );
}
var_dump($data);
$result = mysql_query($data) or die(mysql_error());
if (!$result) {
        echo "Could not successfully run query ($data) from DB: " . mysql_error();
        exit;
    }
    if (mysql_num_rows($result) == 0) {
        echo "Результаты по заданным параметрам не найдены!";
        exit;
    }
    while ($row = mysql_fetch_assoc($result)) 
    {
	echo("
<p style='font-size: 25px;margin-bottom: 10px;'>ФИО: " .$row['LAST_NAME'] . " " .$row['FIRST_NAME'] . " " .$row['MIDDLE_NAME'] . "  </p> 
<ul>
<li>Город: " .$row['NAS_PUNKT'] ." </li>
<li>Год рождения: " .$row['BIRTHDAY_YEAR'] ." </li>
<li>Дом.телефон: " .$row['PHONE_1'] ." </li>
</ul>

<p style='font-size: 18px;margin-top: 0px;'><a href='../php_primer/show_user222.php?idUSERS=" .$row['idUSERS'] . "'>Посмотреть проект полностью</a></p>
---------<br/>
"
	);
}

?>
...
Рейтинг: 0 / 0
14.02.2016, 22:30
    #39170900
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
vkle,

а разве
Код: sql
1.
2.
3.
4.
5.
6.
7.
{
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE '.implode(' AND ', $data)" - вот это не преобразует массив в строку?
               );
}
...
Рейтинг: 0 / 0
14.02.2016, 23:30
    #39170921
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684,

Нет.
...
Рейтинг: 0 / 0
14.02.2016, 23:33
    #39170924
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684читать уже некогдаЛучше день потерять, потом за пять минут долететь.
(С) м/ф Крылья, ноги, хвосты.
...
Рейтинг: 0 / 0
15.02.2016, 12:10
    #39171180
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684,
вместо
Код: php
1.
2.
3.
4.
5.
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE '.implode(' AND ', $data)" - вот это не преобразует массив в строку?
               );


напиши так:
Код: php
1.
2.
3.
4.
5.
   $query =  "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE '.implode(' AND ', $data)";
   echo $query; // чтоб посмотреть что передается
   mysql_query($query) or die("Запрос: $query ошибочный"); //или так 
...
Рейтинг: 0 / 0
15.02.2016, 13:28
    #39171284
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
didgik,
вот такой код
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
/* Выполнение SQL запроса */
$data = array();
if(!empty($_REQUEST['first_name']))
$data[] = "FIRST_NAME='".($_REQUEST['first_name'])."'";
if(!empty($_REQUEST['nas_punct']))
$data[] = "NAS_PUNKT='".($_REQUEST['nas_punct'])."'";
if(!empty($_REQUEST['birthday']))
$data[] = "BIRTHDAY_YEAR='".($_REQUEST['birthday'])."'";
if(count($data) > 0)
{
   mysql_query(
              "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
               FROM USERS
               WHERE ".implode(' AND ', $data)
               );
}
$query = "SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR'
FROM USERS WHERE ".implode(' AND ', $data);
echo $query; // чтоб посмотреть что передается
$result = mysql_query($data) or die(mysql_error());



дает такой текст запроса
Код: php
1.
SELECT 'FIRST_NAME', 'NAS_PUNKT', 'BIRTHDAY_YEAR' FROM USERS WHERE FIRST_NAME='Михаил' AND NAS_PUNKT='Москва' AND BIRTHDAY_YEAR='1999'
...
Рейтинг: 0 / 0
15.02.2016, 13:48
    #39171300
didgik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
drey190684, phpmyadmin есть? Если туда этот запрос вставить, выдает что нада?
...
Рейтинг: 0 / 0
15.02.2016, 15:17
    #39171419
drey190684
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее
didgik,

спасибо разобрался!)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как сделать запрос выборки из БД на PHP по нескольким столбцам отсекая лишнее / 22 сообщений из 22, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]