251

Re: Выпадающий список

Не нашел где у меня должен быть заполнен (еще один параметр $aSQL, который у вас должен быть заполнен выше в коде. ),  Поправил функцию выдает ошибку

еще один параметр $aSQL, который у вас должен быть заполнен выше в коде. 

код до списков 

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>
<?php

function sub_func($r, $aSQL) {
  global $db; // Эта строка необходима.
  $aSQL[] = ' `md` = "' . $r['md'] . '" '; // Добавляем условие выборки.
  $sql = 'SELECT * FROM `bf_goodrich` WHERE ' . implode('AND', $aSQL); // Формируем запрос к БД.
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        // Обратите внимание на то, что используется print, а не printf. Советую не использовать printf без надобности,
        // а использовать конкатенацию, то есть объединение строки и переменной через точку.
        print "<table width='900' border='1'>
          <tr>
             <td>таблица1111</td>     
            <td width='100'>" . $row["shirina"] . "</td>
            <td width='100'>" . $row["profil"] . "</td>
            <td width='100'>" . $row["diametr"] . "</td>
            <td width='100'>" . $row["indnag"] . "</td>
            <td width='150'>" . $row["indskor"] . "</td>
            <td width='150'>" . $row["ostatok"] . "</td>
            <td width='100'>" . $row["cena"] . "</td>
            <td width='100'>" . $row["id"] . "</td>
             <td width='100'>" . ($row["ostatok"] * $row["cena"]) . "</td>
             <td >" . $r["md"] . "</a></td>   
          </tr>
        </table>";
      } else {
        print '';
      }
    }
  }
}

252

Re: Выпадающий список

Обратите внимание на вызов функции. Выше по коду от этой функции должна существовать переменная $aSQL.
sub_func($row, $aSQL);

253

Re: Выпадающий список

А где должна существовать эта переменная $aSQL  вроде все как вы написали я у себя прописал всеравно ошибка,  что в переменной $aSQL находится?

254

Re: Выпадающий список

Вот эту строку как правильно записать

$sql = 'SELECT * FROM `bf_goodrich` WHERE `md` = "' . $r['md'] && implode('AND', $aSQL); // Формируем запрос к БД.

    эта чясть отвечает за то что будет выбрано в списках?

255

Re: Выпадающий список

Вернитесь в код на этой странице. http://forum.php-myadmin.ru/viewtopic.p … 656#p19656

Третья строка снизу:
sub_func($row);
Замените ее на:
sub_func($row, $aSQL);
Выше в коде у вас есть переменная $aSQL.

256

Re: Выпадающий список

Переписал но в результате выводятся одинаковые таблицы тоесть должно вывестся один раз, модель Activan под ней все размеры у которых одинаковый параметр md и один раз модель  GRIP  с теми же размерами что и у Activan но только со своим параметром md. А выводится дубликаты ТОесть если у модели Activan всего 4 строки с одинаковыми параметрами то она выведется 4 раза а под ней выведется 4 строки с этими размерами.  мой код,

<?php



function sub_func($r, $aSQL) {
  global $db; // Эта строка необходима.
  $aSQL[] = ' `md` = "' . $r['md'] . '" '; // Добавляем условие выборки.
  $sql = 'SELECT * FROM `bf_goodrich` WHERE ' . implode('AND', $aSQL); // Формируем запрос к БД.
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        // Обратите внимание на то, что используется print, а не printf. Советую не использовать printf без надобности,
        // а использовать конкатенацию, то есть объединение строки и переменной через точку.
        print "<table width='900' border='1'>
          <tr>
             <td>таблица1111</td>     
            <td width='100'>" . $row["shirina"] . "</td>
            <td width='100'>" . $row["profil"] . "</td>
            <td width='100'>" . $row["diametr"] . "</td>
            <td width='100'>" . $row["indnag"] . "</td>
            <td width='150'>" . $row["indskor"] . "</td>
            <td width='150'>" . $row["ostatok"] . "</td>
            <td width='100'>" . $row["cena"] . "</td>
            <td width='100'>" . $row["id"] . "</td>
             <td width='100'>" . ($row["ostatok"] * $row["cena"]) . "</td>
             <td >" . $r["md"] . "</a></td>   
          </tr>
        </table>";
      } else {
        print '';
      }
    }
  }
}

echo '<form method="post" action="">';
$auto = "Ширина <select  name='nazv_auto' size='1'  selected='selected' onchange=\"this.form.submit();\" >;
        <option value=''  >Все</option>";
          $query = mysql_query("SELECT * FROM auto ORDER BY id_auto  DESC");
        
              $result = mysql_fetch_array($query);
                do
                {
                    $auto .= "<option  value='".$result['nazv_auto']."'   "; /* то что передается  */
                    if (!empty($_POST['nazv_auto']) && $_POST['nazv_auto'] == $result['nazv_auto']) {
                     $auto .= ' selected="selected"';   
                    }
                    $auto .= ">".$result['nazv_auto']."</option>";  /* то что отобразится в списке  */
                }
               while($result = mysql_fetch_array($query));
$auto.= "</select>";
echo $auto."";
 {

     
     $model = "Профиль <select  name='nazv_model' size='1'onchange=\"this.form.submit();\" >;
                <option value=''>Все</option>";
      $query = mysql_query("SELECT * FROM automodel
WHERE id_auto = '" . addslashes($_POST['nazv_auto']) . "' ORDER BY id_model "); /* здесь нужно принять номер названия тоесть id_auto  */
                $result = mysql_fetch_array($query);
                 do
                {
                    $model .= "<option value='".$result['nazv_model']."'";
                    if (!empty($_POST['nazv_model']) && $_POST['nazv_model'] == $result['nazv_model']) {
                        $model .= ' selected="selected"';
                    }
                    $model .= ">".$result['nazv_model']."</option>";
                }
                while($result = mysql_fetch_array($query));
$model .= "</select>";
echo $model.""."";
}
{

 $year = "Диаметр <select nazv_year name='nazv_year' size='1' onchange=\"this.form.submit();\" >;
                <option value=''>Все</option>";
                $query = mysql_query("SELECT  nazv_year FROM year
WHERE id_model='" . addslashes($_POST['nazv_model']) . "' and id_year='" . addslashes($_POST['nazv_auto']) . "'  ORDER BY id_year ");
                $result = mysql_fetch_array($query);
                 do
                {
                    $year .= "<option value='".$result['nazv_year']."'";
                    if (!empty($_POST['nazv_year']) && $_POST['nazv_year'] == $result['nazv_year']) {
                        $year .= ' selected="selected"';
                    }
                    $year .= ">".$result['nazv_year']."</option>";
                }
                while($result = mysql_fetch_array($query));
$year .= "</select>";
echo $year.""."";




 $sezon = "Сезонность <select  name='nazv_sezon' size='1'  onchange=\"this.form.submit();\" >;
                
                <option value=''>Все</option>";
                $query = mysql_query("SELECT  nazv_sezon FROM sezon ");
                $result = mysql_fetch_array($query);
                 do
                {
                    $sezon .= "<option value='".$result['nazv_sezon']."'";
                    if (!empty($_POST['nazv_sezon']) && $_POST['nazv_sezon'] == $result['nazv_sezon']) {
                        $sezon .= ' selected="selected"';
                    }
                    $sezon .= ">".$result['nazv_sezon']."</option>";
                }
                while($result = mysql_fetch_array($query));
$sezon .= "</select>";
echo $sezon.""."";

}
 {
}                       

 /* echo ' <input type="submit" name="button" value="Поехали">'; */

echo "</form>";
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon');
// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$aSQL = array();
// Проходим цикл ассоциативного массива имен и добавляем элемент в массив $aSQL, если список выбран.
foreach ($aName as $select => $field) {
  if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" ';
}
// Если в массиве $aSQL есть хоть один элемент, то формируем запрос.
if (count($aSQL) > 0) {
  $sql = 'SELECT * FROM `bf_goodrich` WHERE ' . implode('AND', $aSQL);
} else { // Если в массиве ничего нет, значит ни один список из массива $aName не выбран и формируем запрос выбирающий все данные, например.
  $sql = 'SELECT * FROM `bf_goodrich`';
}
$result = mysql_query($sql);
 while ($row = mysql_fetch_array($result))
 {


printf("<table width='900' border='1'>
  <tr>
    <td colspan='9'>  Шины ...  Модель %s</td>
  </tr>
  <tr>
    <td colspan='2'>фото</td>
    <td colspan='7' rowspan='2'>текст</td>
  </tr>
  <tr>
    <td>%s</td>
    <td>md=%s</td>
  </tr>
  <tr>
    <td  width='100'>%s</td>
    <td width='100'>%s</td>
    <td width='100'>%s</td>
    <td width='150'>Инд.нагр</td>
    <td width='150'>Инд.скор</td>
    <td width='100'>Остаток</td>
    <td width='100'></td>
    <td width='100'></td>
    <td>%s</td>
  </tr>
</table>",$row["model"], $row["sezon"], $row["md"] , $row["shirina"], $row["profil"], $row["diametr"], $row["id"]);
sub_func($row, $aSQL); 
echo ('<br>');
}

  

 ?>

257

Re: Выпадающий список

Все запросы, которые выполняете, надо проверять в phpMyAdmin, иначе никакой скрипт написать нельзя.

Как я понимаю, Activan выводить должен этот запрос и записи не должны повторяться. Значит надо сгруппировать выводимый запрос по именам. Группировка делается с помощью GROUP BY `model`. Где model - это поле по которому надо группировать записи.

if (count($aSQL) > 0) {
  $sql = 'SELECT * FROM `bf_goodrich` WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`';
} else { // Если в массиве ничего нет, значит ни один список из массива $aName не выбран и формируем запрос выбирающий все данные, например.
  $sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';
}

258

Re: Выпадающий список

Впринципе получилось, Большое спасибо. Если можно еще обясните как запросы проверять в phpmyadmin хотябы намикните в какой стороне искать, ато вы говорите проверять запросы а для меня это как темный лес.

259

Re: Выпадающий список

Вот пример запроса в скрипте.
$sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';

Запустите phpMyAdmin, выберите нужную базу данных, перейдите во вкладку SQL и введите в поле запрос:

SELECT * FROM `bf_goodrich` GROUP BY `model`

Нажмите ОК.

Проверьте полученные данные. Возвращает ли запрос хоть что-нибудь.

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

Запросы вида:
$sql = 'SELECT * FROM `bf_goodrich` WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`';
Можно вывести прервав выполнение скрипта, добавив ниже него строку:

exit($sql);

260

Re: Выпадающий список

ок спасибо буду пробовоть, и учится

261

Re: Выпадающий список

Подскажите, как правильно присоединить вторую таблицу в запросе

 $sql = 'SELECT * FROM `bf_goodrich`  WHERE ' . implode('AND', $aSQL) . '  UNION SELECT * FROM `barum`  WHERE ' . implode('AND', $aSQL) . ' ';

так у меня не получилось

262

Re: Выпадающий список

павелsimon сказал:

Подскажите, как правильно присоединить вторую таблицу в запросе

Покажите структуры обеих таблиц и объясните как именно вы хотите их объединить.

UNION SELECT сливает данные двух таблиц с идентичной структурой.

263

Re: Выпадающий список

да у них идентичная структура, но в том запросе что вы написали для меня не ясен синтаксис подключения.
А таблицы такие у обеих одинаковые, поля, id  sezon, tip model и т.д тоесть они полностью идентичны

264

Re: Выпадающий список

Пробуйте таким образом.

$sql = '(
    SELECT * FROM `bf_goodrich`  WHERE ' . implode('AND', $aSQL) . '
  ) UNION (
    SELECT * FROM `barum`  WHERE ' . implode('AND', $aSQL) . '
  )';

265

Re: Выпадающий список

Да вы писали чтоб я не использовал без надобности параметр printf, в моем, случяе его использование не актуально? какой тогда использовать и почему?

266

Re: Выпадающий список

павелsimon сказал:

Да вы писали чтоб я не использовал без надобности параметр printf, в моем, случяе его использование не актуально? какой тогда использовать и почему?

printf используется для формирования строки с предварительным форматированием данных. В вашем случае это совершенно лишнее и только затрудняет понимание кода. Вот пример двух одинаковых строк.

printf('Переменная %s, конец строки.', $str);
print 'Переменная ' . $str . ', конец строки.';

267 (изменено: павелsimon, 2012-04-20 06:26:59)

Re: Выпадающий список

Доброе утро, возникла идея, в моем запросе к базе должно присутствовать множество таблиц с одинаковой структурой полей. И для єтого я обединял таблицы в запросе

 SELECT * FROM `bf_goodrich`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  ) UNION (
    SELECT * FROM `barum`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  )';

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


чекбоксы я доставил но как их с правильными параметрами в запрос вписать

<?php 



function sub_func($r, $aSQL) {
  global $db; // Эта строка необходима.
  $aSQL[] = ' `md` = "' . $r['md'] . '" '; // Добавляем условие выборки.
  $sql = '(
    SELECT * FROM `bf_goodrich`  WHERE ' . implode('AND', $aSQL) . '
  ) UNION (
    SELECT * FROM `barum`  WHERE ' . implode('AND', $aSQL) . '
  )'; // Формируем запрос к БД.
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        // Обратите внимание на то, что используется print, а не printf. Советую не использовать printf без надобности,
        // а использовать конкатенацию, то есть объединение строки и переменной через точку.
        print "<table width='900' border='1'>
          <tr>
             <td>таблица1111</td>     
            <td width='100'>" . $row["shirina"] . "</td>
            <td width='100'>" . $row["profil"] . "</td>
            <td width='100'>" . $row["diametr"] . "</td>
            <td width='100'>" . $row["indnag"] . "</td>
            <td width='150'>" . $row["indskor"] . "</td>
            <td width='150'>" . $row["ostatok"] . "</td>
            <td width='100'>" . $row["cena"] . "</td>
            <td width='100'>hhh" . $row["id"] . "</td>
             <td width='100'>" . ($row["ostatok"] * $row["cena"]) . "</td>
             <td >mmm" . $r["md"] . "</a></td>   
          </tr>
        </table>";
      } else {
        print '';
      }
    }
  }
}

echo '<form method="post" action="">';
$auto = "<p>Ширина <select  name='nazv_auto' size='1'  selected='selected' onchange=\"this.form.submit();\" >;
        <option value=''  >Все</option>";
          $query = mysql_query("SELECT * FROM auto ORDER BY id_auto  DESC");
        
              $result = mysql_fetch_array($query);
                do
                {
                    $auto .= "<option  value='".$result['nazv_auto']."'   "; /* то что передается  */
                    if (!empty($_POST['nazv_auto']) && $_POST['nazv_auto'] == $result['nazv_auto']) {
                     $auto .= ' selected="selected"';   
                    }
                    $auto .= ">".$result['nazv_auto']."</option>";  /* то что отобразится в списке  */
                }
               while($result = mysql_fetch_array($query));
$auto.= "</select>";
echo $auto."";
 {

     
     $model = "<p>Профиль <select  name='nazv_model' size='1'onchange=\"this.form.submit();\" >;
                <option value=''>Все</option>";
      $query = mysql_query("SELECT * FROM automodel
WHERE id_auto = '" . addslashes($_POST['nazv_auto']) . "' ORDER BY id_model "); /* здесь нужно принять номер названия тоесть id_auto  */
                $result = mysql_fetch_array($query);
                 do
                {
                    $model .= "<option value='".$result['nazv_model']."'";
                    if (!empty($_POST['nazv_model']) && $_POST['nazv_model'] == $result['nazv_model']) {
                        $model .= ' selected="selected"';
                    }
                    $model .= ">".$result['nazv_model']."</option>";
                }
                while($result = mysql_fetch_array($query));
$model .= "</select>";
echo $model.""."";
}
{

 $year = "<p>Диаметр <select nazv_year name='nazv_year' size='1' onchange=\"this.form.submit();\" >;
                <option value=''>Все</option>";
                $query = mysql_query("SELECT  nazv_year FROM year
WHERE id_model='" . addslashes($_POST['nazv_model']) . "' and id_year='" . addslashes($_POST['nazv_auto']) . "'  ORDER BY id_year ");
                $result = mysql_fetch_array($query);
                 do
                {
                    $year .= "<option value='".$result['nazv_year']."'";
                    if (!empty($_POST['nazv_year']) && $_POST['nazv_year'] == $result['nazv_year']) {
                        $year .= ' selected="selected"';
                    }
                    $year .= ">".$result['nazv_year']."</option>";
                }
                while($result = mysql_fetch_array($query));
$year .= "</select>";
echo $year.""."";




 $sezon = "<p>Сезонность <select  name='nazv_sezon' size='1'  onchange=\"this.form.submit();\" >;
                
                <option value=''>Все</option>";
                $query = mysql_query("SELECT  nazv_sezon FROM sezon ");
                $result = mysql_fetch_array($query);
                 do
                {
                    $sezon .= "<option value='".$result['nazv_sezon']."'";
                    if (!empty($_POST['nazv_sezon']) && $_POST['nazv_sezon'] == $result['nazv_sezon']) {
                        $sezon .= ' selected="selected"';
                    }
                    $sezon .= ">".$result['nazv_sezon']."</option>";
                }
                while($result = mysql_fetch_array($query));
$sezon .= "</select>";
echo $sezon.""."";

}
 {
}                       
echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="bf_goodrich" value="" >';
echo '<p> ТАБЛИЦА 2 <input type="checkbox" name="barum" value="" >';
echo '<p> таблица 3 <input type="checkbox" name="activan" value="" >';
 /* echo ' <input type="submit" name="button" value="Поехали">'; */

echo "</form>";
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon');
// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$aSQL = array();
// Проходим цикл ассоциативного массива имен и добавляем элемент в массив $aSQL, если список выбран.
foreach ($aName as $select => $field) {
  if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" ';
}
// Если в массиве $aSQL есть хоть один элемент, то формируем запрос.
if (count($aSQL) > 0) {
 
   $sql = '(
    SELECT * FROM `bf_goodrich`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  ) UNION (
    SELECT * FROM `barum`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  )';
} else { // Если в массиве ничего нет, значит ни один список из массива $aName не выбран и формируем запрос выбирающий все данные, например.
  $sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';
}


$result = mysql_query($sql);
 while ($row = mysql_fetch_array($result)){


printf("<table width='900' border='1'>
  <tr>
    <td colspan='9'>  Шины ...  Модель %s</td>
  </tr>
  <tr>
    <td colspan='2'>фото</td>
    <td colspan='7' rowspan='2'>текст</td>
  </tr>
  <tr>
    <td>%s</td>
    <td>md=%s</td>
  </tr>
  <tr>
    <td  width='100'>%s</td>
    <td width='100'>%s</td>
    <td width='100'>%s</td>
    <td width='150'>Инд.нагр</td>
    <td width='150'>Инд.скор</td>
    <td width='100'>Остаток</td>
    <td width='100'></td>
    <td width='100'></td>
    <td>%s</td>
  </tr>
</table>",$row["model"], $row["sezon"], $row["md"] , $row["shirina"], $row["profil"], $row["diametr"], $row["md"]);
sub_func($row, $aSQL); 
echo ('<br>');
}
 
?>

268

Re: Выпадающий список

павелsimon сказал:

а вот если не обединять ето все в запросе потому как таких таблиц может быть  и сотня а сделать для каждой из них чекбокс со своим иминем и если у меня например три чекбокса отмечено то выбор происходит по трем таблицам

Не правильно. Если структуры таблиц одинаковы, то надо данные из них сводить в одну таблицу, а для различения завести специальное поле, в этом случае не придется таблицы объединять, что крайне плохо сказывается как на логике написания скриптов, так и на производительности, то есть скорости обработки запросов.

269

Re: Выпадающий список

ну так делать чекбоксы не целесообразно? Тоесть я просто не понял ваш ответ что хуже не обединять таблицы или писать запрос через чекбокс?

270

Re: Выпадающий список

тоесть лутше когда таблицы сведены в одну? Тогда скорость обработки запроса быстрее чем при запросе с обединенными таблицами?

271

Re: Выпадающий список

павелsimon сказал:

тоесть лутше когда таблицы сведены в одну?

Да, так лучше.

272

Re: Выпадающий список

В данном случяэ у меня предполагается множество таблиц если их все слить в одну и индексировать их по одному схожему параметру но этотже параметр должен быть уникальным для всех строк, а строк будет больше 4 тысяч то при их редактировании очень легко ошибится. А на щет чекбоксов как же всетаки мне их подцепить в запрос в таком виде как он сейчяс?

273

Re: Выпадающий список

Примерно, как мы это делали для списков. Разберите пример кода и попробуйте собрать подобное для галочек.

$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon');
// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$aSQL = array();
// Проходим цикл ассоциативного массива имен и добавляем элемент в массив $aSQL, если список выбран.
foreach ($aName as $select => $field) {
  if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" ';
}
// Если в массиве $aSQL есть хоть один элемент, то формируем запрос.
if (count($aSQL) > 0) {
  $sql = 'SELECT * FROM `bf_goodrich` WHERE ' . implode('AND', $aSQL);
} else { // Если в массиве ничего нет, значит ни один список из массива $aName не выбран и формируем запрос выбирающий все данные, например.
  $sql = 'SELECT * FROM `bf_goodrich`';
}

274

Re: Выпадающий список

сначяла пишу сами чекбоксы, потом дописываю их в масив

echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="bf_goodrich" value="" >';
echo '<p> ТАБЛИЦА 2 <input type="checkbox" name="barum" value="" >';
echo '<p> таблица 3 <input type="checkbox" name="activan" value="" >';
 echo ' <input type="submit" name="button" value="Поехали">'; 

echo "</form>";
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon', 'bf_goodrich' => 'bf_goodrich', 'barum' => 'barum', 'activan' => 'activan');
// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$aSQL = array();
// Проходим цикл ассоциативного массива имен и добавляем элемент в массив $aSQL, если список выбран.
foreach ($aName as $select => $field) {
  if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" ';
}
// Если в массиве $aSQL есть хоть один элемент, то формируем запрос.
if (count($aSQL) > 0) {
 
   
  
  $sql = '(
    SELECT * FROM ???  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  )';
  

  
} else { // Если в массиве ничего нет, значит ни один список из массива $aName не выбран и формируем запрос выбирающий все данные, например.
  $sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';
}

но вот в запрос их как прописать и еще нужно в масив дописать

foreach ($aName as $select => $field) {
  if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" && ';
}

и в эту строку передать что были или небыли нажаты чекбоксы  я сам не разберусь что куда писать

275

Re: Выпадающий список

function sub_func($r, $aSub) {
  global $db;
  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
  }
// ...Дальше то же самое.
}

$aName = array('bf_goodrich', 'barum', 'activan');
$aUnion = array();
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL);
  }
}

if (count($aUnion) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
} else {
    // Здесь запрос, если не выбрана ни одна галочка.
}

// Дальше.
$aSub = array();
$aSQL[] = ' `md` = "' . $r['md'] . '" ';
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aSub[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL);
  }
}

sub_func($row, $aSub);