powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / А как результат с одинаковыми айдишками
68 сообщений из 68, показаны все 3 страниц
А как результат с одинаковыми айдишками
    #38209955
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
структура такая:

table1(текстовые данные )
id_table1 | user_id | model | marka


table2( путь к имеджам)
id_table2 | user_id | small | big |

в таблице два (table2) может содержаться несколько записей(пути к имеджам) касающейся одной строке из table1

С помощью данного запроса получаю результат показанный во вложенном файле.

$result = mysql_query("SELECT * FROM add_new_car , image_add_car where id_add_car = user_id and mark like '%$model%' and model like '%$SelectCarModel' AND year like '%$year' ORDER BY id_add_car");
Где хочу пересылать по ссылке на подробное описание.

А как правильно построить запрос что бы получить результат с одинаковыми айдишками т е целью является построить форму по типу

http://www.tinydeal.com/ru/ainol-spark-97-retina-android-41-quad-core-tablet-pc-p-80311.html

Спасибо!
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38209964
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вложенный файл где
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210092
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А щас
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210319
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно ничего не понятно.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210546
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alfaperkв таблице два (table2) может содержаться несколько записей(пути к имеджам) касающейся одной строке из table1

А в каком поле таблицы2 вы храните id записи таблицы1 ?
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210668
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett

Вопрос в том что к одному описанию может принадлежать несколько имеджей помимо того что там видим и при щелчке на нем открываю новое окно куда пытаюсь вывести имеджи связанные с ним.

Должно получится что то по типу

$res="Select all ID_images from image_table where id_images= айдишке со страницы с описанием на делаю выбор.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210682
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ROCKWELL
user_id
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210695
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Выглядит приблизительно так
id_image_add_car user_id ap_id ------------- big----------------------------- small
532----------- 373----- 2---- images/1364804327.jpg--- images/small_1364804327.jpg
531 -----------373------2 -----images/1364804320.jpg-- images/small_1364804320.jpg
530 -----------373------2 -----images/1364804564.jpg-- images/small_1364804564.jpg
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210743
Фотография Hett
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А в чем сложность?
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210801
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hett

А как считывать айдишку с описания и по нему делать выбор всех остальных айди.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210879
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь я делаю селект и получаю результат

$result = mysql_query("SELECT * FROM add_new_car , image_add_car where id_add_car = user_id and mark like '%$model%' and model like '%$SelectCarModel' AND year like '%$year' ORDER BY id_add_car");

if($result)
{
while($row = mysql_fetch_array($result))
{

echo "<table border='0' align=center >
<tr>
<th>Фото</th>
<th>Характеристики</th>
<th>Описание</th>


</tr>";
echo "<tr>";
// echo "<td>" . $row['small'] . "</td>";
//<div class="hovergallery">hhhh</div>


echo "<td> <img src='" .$row['big'] ."' style='width: 150px; height: 100px;' /></td>";

echo "<td>" ."Марка: ". $row['mark'] . "<br>"
."Модель: ". $row['model'] . "<br>"
."Год выпуска: " . $row['year'] . "<br>"
."Цена: " . $row['price'] . "<br>"
."Пробег: " . $row['run_km'] . "<br>"
."Цвет: " . $row['color'] . "</td>";


echo '<td><a href="index.html">' .$row['description'].'</a>' ."<br>"."<br>"
."Контактное лицо: " . $row['name'] ."<br>"
."Контактный номер: " . $row['mobile'] .'</td>';
// ."Контактный номер: " . $row['mobile'] .

echo "</tr>";
echo ("<br />");
}
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38210999
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам же надо просто выбрать все записи из таблицы2, где table2.user_id = table1.user_id

Код: sql
1.
2.
3.
SELECT t1.user_id id1, t2.user_id id2, t2.small
FROM table1 t1, table t2
WHERE t1.user_id = t2.user_id



Поля выборки id1 и id2 и будут у Вас "одинковыми айдишками"
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38211062
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!

Но вот как мне словить айдишку описания на которой щелкаю
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38211074
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alfaperkСпасибо!

Но вот как мне словить айдишку описания на которой щелкаю

Сама ссылка у Вас должна передавать id как параметр. Скажем есть ссылка вида

Код: html
1.
<a href=site.com/out.php?ref_id=240>Модель 240</a>



Она обращается к той же странице, но методом GET передает параметр ref_id. Основная выборка меняется следующим образом

Код: sql
1.
2.
3.
4.
SELECT t1.user_id id1, t2.user_id id2, t2.small
FROM table1 t1, table2 t2
WHERE t1.user_id = t2.user_id
AND t1.user_id = $_GET['ref_id']



Выберутся только записи с "айдишкой" )) 240
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38211096
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И форматируйте, пожалуйста, код. Кнопка SRC после выделения части текста
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38211296
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ок спасибо буду разбираться
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38213789
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получилось то что хотел после двух запросов

$res_lastid = mysql_query("SELECT * FROM image_add_car WHERE user_id='".$rmsd."' and id_image_add_car='".$xlxs."' ORDER BY id_image_add_car Limit 1");
$maxid1 = mysql_fetch_array($res_lastid);



$res_lastid = mysql_query("SELECT * FROM image_add_car WHERE user_id='".$rmsd."' ORDER BY id_image_add_car Limit 6");
$maxid2 = mysql_fetch_array($res_lastid);
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38213791
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как при клике на миниатюре показывать его большую копию.

Я так понимаю при каждом клике нужно делать селект из базы по айдишке.

Спасибо
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38218190
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alfaperkа как при клике на миниатюре показывать его большую копию.

Я так понимаю при каждом клике нужно делать селект из базы по айдишке.

Спасибо

Ну здесь может быть 2 варианта (как думается лично мне ):

1. Хранить полноформатные изображения, но при показе превью ограничивать его размер необходимым. Само превью - ссылка вида

Код: html
1.
<a href=# onclick="window.open('Ваше изображение','Имя окна', 'Параметры')"><img ...></a>



Откроется в новом окне полное изображение. Ссылка естесственно, формируется кодом PHP на основе выборки из базы.

2. Хранить маленькие превью и полные изображения отдельно. Но здесь Вам придется немного сложнее, поэтому попробуйте первый вариант.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38218490
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ROCKWELLХранить полноформатные изображения, но при показе превью ограничивать его размер необходимымНа лету чтоль ресайзить, при выдаче? Неоправданная нагрузка на сервер. Средствами браузера ограничивать размеры? Ну тоже далеко не прямое решение.

ROCKWELLХранить маленькие превью и полные изображения отдельно. Но здесь Вам придется немного сложнееНичего сложного. Несколько вариантов одной картинки. Уникальное имя - одно и то же (а значит, не нужно лазить в БД за каждым вариантом), меняются только модификаторы размеров. Впрочем, нередко картинки разных размеров рассовываются по разным папкам - большие, средние, мелкие и т.п. И тот и другой способ по сложности не отличаются и вполне реализуемы где-то на уровне шаблона при выдаче. Сложнее придется когда окажется что картинок много - более тысячи. Вот тогда придется строить дерево и ограничивать к-во файлов в одной директории.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38218518
ROCKWELL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkleROCKWELLХранить полноформатные изображения, но при показе превью ограничивать его размер необходимымНа лету чтоль ресайзить, при выдаче? Неоправданная нагрузка на сервер. Средствами браузера ограничивать размеры? Ну тоже далеко не прямое решение.


Естесственно браузером )) Либо помещать как фон в див определенного размера либо задавать размер объекту img
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38221664
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спосибо заработало ROCKWELL и vkle !


Возник следующий вопрос по построению запроса

Выборка идет по трем критериям
марка=======модель========год

Код: 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 '%$SelectCarModel' AND year like '%$year' ORDER BY id_add_car" );


Это запрос выдает результат если я укажу все три критерия запроса.
но как в этом запросе сделать так что бы когда я укажу только марку он выдал бы результат по марке.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222715
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убрать из запроса ненужные критерии.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222735
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторУбрать из запроса ненужные критерии.

Но ведь кто то выберет просто модель кто то будет делать выбор по всем трем критериям а как тогда быть?
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38222754
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, ну елки зеленые... Формируйте запрос динамически, а не тупо подставляйте параметры в шаблон. Есть критерий отбора - добавляйте в условие WHERE соответствующий этому критерию кусок с правилом фильтрации " AND `field` LIKE '$blablabla'" или как там... По дефолту (нет критериев) либо предложение WHERE совсем убрать, либо что-то вроде "WHERE 1" сделать.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #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
А как результат с одинаковыми айдишками
    #38224804
авторв коде могут быть небольшие погрешности
c user_id промазал! ;) но, там по аналогии - такой-же параметр!!
:user_id и в execute!!!
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38225214
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю за отклик!
Этот абсолютно новое для меня вещь выдаёт ошибку :
Код: sql
1.
Fatal error: Uncaught exception 'PDOException' with message 'invalid data source name' in F:\home\search\www\search.php:1495 Stack trace: #0 F:\home\search\www\search.php(1495): PDO->__construct('') #1 {main} thrown in F:\home\search\www\search.php on line 1495
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38225230
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38225232
http://php.net/manual/ru/pdo.connections.php - ман на русском (с примерами mysql)...
http://habrahabr.ru/post/137664/ - более детальное описание!
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38226384
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо локалхоста поставил 127.0.0.1 а также включил в try {

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
	try {  
  
  $dbh = new PDO('mysql:host=127.0.0.1;dbname=jsalon', $user, $pass);
 
}  
catch(PDOException $e) {  
    echo $e->getMessage();  
}




Стал выдавать ощибку типа : invalid data source name
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38226491
Код: php
1.
var_dump(PDO::getAvailableDrivers());


выложи сюда получившийся результат
П.С. php очень мощный и гибкий инструмент, но с ним всё таки нужно уметь работать ;)
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38226658
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто в коде ставлю результатов не выдает
Код: php
1.
var_dump(PDO::getAvailableDrivers());

.

Ставлю сюда
Код: php
1.
2.
3.
4.
catch(PDOException $e) {  
    echo $e->getMessage();  
	var_dump (PDO::getAvailableDrivers());
}



выдает array(1) { [0]=> string(5) "mysql" }
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38226724
авторвыдает array(1) { [0]=> string(5) "mysql" }
уже не плохо - будем считать, что драйвер пдо для мускула у тебя есть! ;)
давай дальше думать:
версия операционной системы + версия веб-сервера + версия PHP?
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38226848
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
XP service pack 3

php 5.3.3

Версия: Денвер-3 2010-11-07
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38226849
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invalid data source name

Мне кажется там где то название неправильно передаём.
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38227240
авторМне кажется там где то название неправильно передаём.
да ладно! чего тебе мозг выносить (сам установил MySQL попробовал - вот что получилось ;)
Код: 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.
mysql_connect('localhost', '', '');
        mysql_select_db('world');
        
        $query = sprintf('SELECT country.Continent, country.Name, GROUP_CONCAT(city.Name) AS Cities
                            FROM country 
                            LEFT JOIN city ON city.CountryCode = country.Code                        
                            WHERE ((country.Continent LIKE "%s")
                            AND (country.Name LIKE "%s"))
                            GROUP BY country.Code
                            ORDER BY Continent, Name;',
                (isset($_GET['continent']) ? $_GET['continent'] : '') . '%',
                (isset($_GET['country']) ? $_GET['country'] : '') . '%'
        );
                      
        $result = mysql_query($query);
        
        $world = array();
        while ($row = mysql_fetch_assoc($result)) {
            $row['Cities'] = isset($row['Cities']) ? explode(',', $row['Cities']) : array();
            $world[] = $row;
        }        
        mysql_close();
        
        var_dump($world);


в зипе файл для создания БД world для MySQL!
http://www.heidisql.com/download.php - бесплатный визуальный редактор для MySQL!

P.S. MySQL_PDO у тебя либо не подключен, либо фаервол, либо инопланетяне ИМХО ;)
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38227334
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо ща папробую
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38231814
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая вещь получилась вроде работает

Код: sql
1.
SELECT * FROM `add_new_car` AS a INNER JOIN `image_add_car` AS b ON a.id_add_car = b.user_id WHERE (b.user_id, b.id_image_add_car) IN (SELECT user_id, MIN(id_image_add_car) FROM image_add_car GROUP BY user_id) AND a.mark='$mark' and a.model='$model' and a.year='$year' ORDER BY a.id_add_car
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38234129
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Могли бы помочь внедрить это условие в запрос

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$where = array();
$whereclause = '';

if (!empty($mark)) {
    $where[] = "a.mark = '$model'";
}
if (!empty($model)) {
    $where[] = "a.model = '$mark'";
}
if (!empty($year)) {
    $where[] = "a.year = $year";
}
if (count($where > 0)) {
    $whereclause = 'WHERE ' . join(' AND ', $where);
}




Код: sql
1.
SELECT * FROM `add_new_car` AS a INNER JOIN `image_add_car` AS b ON a.id_add_car = b.user_id WHERE (b.user_id, b.id_image_add_car) IN (SELECT user_id, MIN(id_image_add_car) FROM image_add_car GROUP BY user_id) AND a.mark='$mark' and a.model='$model' and a.year='$year' ORDER BY a.id_add_car
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38234156
мог бы выложить дамп этих двух таблиц сюда?
без них ИМХО разговор безпредметен...
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38234198
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здесь дамп приложил
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38234520
Код: 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.
-- --------------------------------------------------------
-- Хост:                         localhost
-- Версия сервера:               5.6.10 - MySQL Community Server (GPL)
-- ОС Сервера:                   Win32
-- HeidiSQL Версия:              7.0.0.4387
-- --------------------------------------------------------

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

-- Дамп структуры базы данных jsalon
CREATE DATABASE IF NOT EXISTS `jsalon` /*!40100 DEFAULT CHARACTER SET cp1251 */;
USE `jsalon`;


-- Дамп структуры для процедура jsalon.find_by_mark_model_year
DELIMITER //
CREATE DEFINER=`root`@`127.0.0.1` PROCEDURE `find_by_mark_model_year`(IN `mark` VARCHAR(100), IN `model` VARCHAR(100), IN `year` VARCHAR(100))
    READS SQL DATA
BEGIN
	SET mark = CONCAT(IFNULL(mark, ''), '%');
	SET model = CONCAT(IFNULL(model, ''), '%');
	SET year = CONCAT(IFNULL(year, ''), '%');
	
	SELECT a.*, b.big, b.small
	FROM add_new_car AS a 
	LEFT OUTER JOIN (
		SELECT user_id, MIN(big) AS big, small 
		FROM image_add_car
		GROUP BY user_id
	) AS b ON a.id_add_car = b.user_id 
	WHERE a.mark LIKE mark AND a.model LIKE model AND a.year LIKE year 
	ORDER BY a.id_add_car;	
END//
DELIMITER ;
/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */;
/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;


Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
        $mark   =& $_GET['mark'];
        $model  =& $_GET['model'];
        $year   =& $_GET['year'];
        
        mysql_connect('localhost', '', '');
        mysql_select_db('jsalon');
        
        $query = sprintf('call find_by_mark_model_year("%s", "%s", "%s");',
                $mark,
                $model,
                $year
        );
               
        $result = mysql_query($query);
        while($rows = mysql_fetch_array($result, MYSQL_ASSOC)) {
            var_dump($rows);        
        }
        mysql_close();
...
Рейтинг: 0 / 0
А как результат с одинаковыми айдишками
    #38234653
alfaperk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо огромное буду тестить.
...
Рейтинг: 0 / 0
68 сообщений из 68, показаны все 3 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / А как результат с одинаковыми айдишками
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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