powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / А как результат с одинаковыми айдишками
25 сообщений из 68, страница 2 из 3
А как результат с одинаковыми айдишками
    #38222790
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можно ли воспользоватся этим вариантом
IF( EXISTS( SELECT * FROM
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222797
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Стоит ли воспользоватся таким вариантом.
IF( EXISTS( SELECT * FROM
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222801
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А смысл?
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222806
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vkle
Я новичок в sql прощу прощения за настырность но можно ли на запросе
Код: sql
1.
$result = mysql_query("SELECT * FROM add_new_car , image_add_car where id_add_car = user_id and mark like '$model' and model like '$mark' AND year like '$year' ORDER BY id_add_car LIMIT 1" );



показать примерчик.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222817
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прочтите уже руководство по основам PHP. В частности по оператору if и по конкатенции строк.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222820
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Впрочем, каким уж тут боком PHP, когда эти вещи есть в любом ЯП
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222826
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор В частности по оператору if и по конкатенции строк.

Понял смысл ! Вообщем проверяем переменную на empty и если так то отдаем в запрос 0 что бы по этому полю не искал.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222828
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что то по типу такого
Код: sql
1.
2.
3.
4.
if(isset($_GET['hyb']))
		  {
			$keyword = mysql_real_escape_string($_GET['hyb']);
			$query   = "SELECT * FROM ***** WHERE _subModel LIKE $keyword";
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222907
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alfaperkЧто то по типу такого
Код: sql
1.
2.
3.
4.
if(isset($_GET['hyb']))
		  {
			$keyword = mysql_real_escape_string($_GET['hyb']);
			$query   = "SELECT * FROM ***** WHERE _subModel LIKE $keyword";



Не совсем )) Я бы сделал так:

Код: php
1.
2.
3.
4.
5.
6.
if (!empty(<переменная1>))
{
$cond1 = 'and _subModel like <переменная1>';
}

$q = 'SELECT ... WHERE <основное условие>'.$cond1;



И так можно по каждому условию, которое указано

П.С.: А почему Вы используете LIKE? У Вас нет справочника моделей? Просто поиск по LIKE является не точным, лучше Вам уж привязываться к ID
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222912
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROCKWELLП.С.: А почему Вы используете LIKE? У Вас нет справочника моделей? Просто поиск по LIKE является не точным, лучше Вам уж привязываться к ID

Я имел ввиду, что если есть какие-то типовые вещи, которые могут относится к нескольким машинам (тип кузова, например), то их лучше вывести в отдельную табличку. А в основной указывать ссылку на их ID. И также при выборке по этим критериям ориентироваться не на текст, а на конкретный ID. Потому как при поиске по тексту 'model1' будут найдены и 'abmodel12' и '123 - model1'. Но может это и не так критично
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224055
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал такое вот изменение в запросе т е убрав
Код: sql
1.
LIKE


Код: sql
1.
$result = mysql_query("SELECT * FROM add_new_car,image_add_car where id_add_car = user_id and mark=".$mark."" );


И стал получать ощибку Unknown column 'Prado' in 'where clause'

Ввожу в БД в таком виде
Код: sql
1.
2.
 $mark =  htmlspecialchars( trim($_POST['mark']));         
  $model = htmlspecialchars( trim($_POST['model']));
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224067
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кавычек нет. Строка, все же ж.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224079
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторКавычек нет. Строка, все же ж.

В смысле там где делаю пост?
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224080
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ Надо юзать не htmlspecialchars а mysql_real_ecape_string
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224082
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор+ Надо юзать не htmlspecialchars а mysql_real_ecape_string

Да буду переправлять =)
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224128
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alfaperkавторКавычек нет. Строка, все же ж.

В смысле там где делаю пост?В запросе
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224165
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что то не врубился где там =(
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224170
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Странно так выдаёт ощибку Unknown column 'Audi' in 'where clause'

Код: sql
1.
$result = mysql_query("SELECT * FROM add_new_car,image_add_car where id_add_car = user_id and mark=".$mark."" );



а если меняю
Код: sql
1.
 mark=".$mark."

на
Код: sql
1.
 mark='$mark'


Выдает результат.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224175
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alfaperkСтранноНичего странного. Основы синтаксиса запросов MySQL прочтите.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224371
14170442
Код: 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.
function check_empty_string($string) {
            $string = trim($string);
            if (empty($string)) {
                return '%';
            }
            return $string . '%';
}
$get = filter_input_array(INPUT_GET, array(
            'model' => array(
                  'filter' => FILTER_CALLBACK,
                  'options' => 'check_empty_string'         
            ) ,
            'mark' => array(
                 'filter' => FILTER_CALLBACK,
                 'options' => 'check_empty_string'         
            ) ,
            'year' => array(
                 'filter' => FILTER_CALLBACK,
                 'options' => 'check_empty_string'         
            ) 
        ));

$query = sprintf('SELECT * 
FROM add_new_car , image_add_car 
WHERE id_add_car = user_id 
AND mark LIKE "%s"
AND model LIKE "%s"
AND year LIKE "%s"
ORDER BY id_add_car LIMIT 1',
$get['model'], $get['mark'], $get['year']);
//дальше работаем с запросом $query, хотя я бы использовал PDO!!!


Почитать:
http://php.net/manual/en/function.sprintf.php
http://php.net/manual/en/ref.pdo-mysql.php
http://php.net/manual/en/function.filter-input-array.php
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224583
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как-то так...

Конкретно на данный момент этот вариант для меня сложен!
Ищу как бы более простые способы!
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224634
авторИщу как бы более простые способы!
дорогу осилит идущий ;)
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224690
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автордорогу осилит идущий ;)
Ты прав =)
Метод указанный Вами мне понравился я воспользуюсь им чуть позже.



Но есть у меня возник другой вопрос который я на данный момент формирую....
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224722
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На странице поиска делаю выборку по ниже приведенному запросу и получаю результат как показано на рисунке.
Код: sql
1.
$result = mysql_query("SELECT * FROM `add_new_car`,`image_add_car` where id_add_car = user_id and mark='$model' and model='$mark' and year='$year'ORDER BY image_id_add_car");



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
id_image_add_car=user_id
			602	386	2	images/1365172947.jpg	images/small_1365172947.jpg
			601	386	2	images/1365172945.jpg	images/small_1365172945.jpg
			600	386	2	images/1365172942.jpg	images/small_1365172942.jpg
			599	386	2	images/1365172940.jpg	images/small_1365172940.jpg
			598	384	2	images/1365172691.jpg	images/small_1365172691.jpg
			597	384	2	images/1365172688.jpg	images/small_1365172688.jpg
			596	384	2	images/1365172685.jpg	images/small_1365172685.jpg
			595	384	2	images/1365172683.jpg	images/small_1365172683.jpg
			594	384	2	images/1365172679.jpg	images/small_1365172679.jpg
			593	384	2	images/1365172677.jpg	images/small_1365172677.jpg



у каждого объявления могут быть несколько имеджей т е из таблички видно 4шт -user_id= 386 и 6шт-user_id = 384
но их на странице поиска не должно быть видно т е должно быть от каждого объявления по одной фотки.
А у меня получается цикл повторяет для каждого обявления количество user_id и т о получается если обявлений 5 и у каждого по 5 имеджей то на странице поиска печатается 25 строк как видно рисунке .
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38224799
Код: 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.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
function check_empty_string($string) {
            $string = trim($string);
            if (empty($string)) {
                return '%';
            }
            return $string . '%';
}
$get = filter_input_array(INPUT_GET, array(
            'model' => array(
                  'filter' => FILTER_CALLBACK,
                  'options' => 'check_empty_string'         
            ) ,
            'mark' => array(
                 'filter' => FILTER_CALLBACK,
                 'options' => 'check_empty_string'         
            ) ,
            'year' => array(
                 'filter' => FILTER_CALLBACK,
                 'options' => 'check_empty_string'         
            ) 
        ));

$connection = new PDO($connection_string);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$query = 'SELECT add_new_car.*, 
GROUP_CONCAT(image_add_car.image_small) AS images_small
FROM add_new_car , image_add_car 
WHERE id_add_car = user_id 
AND mark LIKE :mark 
AND model LIKE :model 
AND year LIKE :year 
GROUP BY add_new_car.id
ORDER BY id_add_car';

//или как там называются поля в твоих таблицах "с картинками" ;)

$stmt = $connection->prepare($query);
$stmt->execute(array(
                ':mark' => $get['mark'],
                ':model' => $get['model'],
                ':year' => $get['year']
            ));

$messages = array();

while ($row = $stmt->fetchAll(PDO::FETCH_ASSOC)) {          
           $row['images_small'] = $row['images_small'] ? explode(',', $row['images_small']) : array();
           $messages[] = $row;
    }
/*
дальше работаем с массивом $messages!!!
трудно сказать какие у тебя там колонки ;) по этому массив будет выглядеть как-то так... ;)
$messages = array(
         'id' => 'blah-blah',
         'something' => 'blah-blah',
         'something1' => 'blah-blah',        
         'images_small' => array(
                  'images/small_1365172947.jpg',
                  'images/small_1365172948.jpg',
                  'images/small_1365172949.jpg'
         )
);
вывод на страницу будет примерно таким:
foreach($messages as $message) {
           echo($message['id']);
           echo($message['something']);          
           echo(isset($message['images_small'][0]) ? $message['images_small'][0] : 'not small image');
}
*/


Почитать:
http://php.net/manual/en/ref.pdo-mysql.connection.php
http://mahmudahsan.wordpress.com/2008/08/27/mysql-the-group_concat-function/

P.S. в коде могут быть небольшие погрешности - писал на коленке - т.ч. будут вопросы - задавай - подкорректирую по ходу!!! ;)
...
Рейтинг: 0 / 0
25 сообщений из 68, страница 2 из 3
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / А как результат с одинаковыми айдишками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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