276

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

А куда девались строки

$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon', 'nazv_sezon' => 'sezon');

?

277

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

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

А куда девались строки

Они должны остаться на прежнем месте.

278 (изменено: павелsimon, 2012-04-21 19:44:23)

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

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

<?php 



function sub_func($r, $aSQL) {
  global $db; // Эта строка необходима.
  $aSQL[] = ' `md` = "' . $r['md'] . '" '; // Добавляем условие выборки.
  $sql = '(
    SELECT * FROM `achilles`  WHERE ' . implode('AND', $aSQL) . '
  ) UNION (
    SELECT * FROM `amtel`  WHERE ' . implode('AND', $aSQL) . '
  )  UNION (
    SELECT * FROM `autoguard`  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 width='100'>" . $row["shirina"] . "</td>
            <td width='100'>" . $row["profil"] . "</td>
            <td width='100'>" . $row["diametr"] . "</td>
            <td width='150'>" . $row["indnag"] . "</td>
            <td width='150'>" . $row["indskor"] . "</td>
            <td width='100'>" . $row["ostatok"] . "</td>
            <td width='100'>" . $row["cena"] . "</td>
             <td width='100'></td>
          </tr>
        </table>";
      } else {
        print '';
      }
    }
  }
}
// здесь идет код выпадающих списков 
}
 {
} 

echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="achilles" value="" >';
echo '<p> ТАБЛИЦА 2 <input type="checkbox" name="amtel" value="" >';
echo '<p> таблица 3 <input type="checkbox" name="autoguard" value="" >';


echo "</form>";
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon', 'nazv_sezon' => 'sezon', 
'achilles' => 'achilles', 'amtel' => 'amtel', 'autoguard' => 'autoguard',); 


 // сюда добавил три элемента по названию чекбоксов также как называются таблицы в базе по которым выбор должен быть незнаю, правильно я их назвал в масиве?


// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$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 `achilles`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  ) UNION (
    SELECT * FROM `amtel`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  )  UNION (
    SELECT * FROM `autoguard`  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   %s</td>
  </tr>
  <tr>
    <td colspan='2'>фото</td>
    <td colspan='7' rowspan='2'>текст</td>
  </tr>
  <tr>
    <td>%s</td>
    <td>%s</td>
  </tr>
  <tr>
    <td  width='100'>Ширина</td>
    <td width='100'>Профиль</td>
    <td width='100'>Диаметр</td>
    <td width='150'>Инд.нагр</td>
    <td width='150'>Инд.скор</td>
    <td width='100'>Остаток</td>
    <td width='100'>Цена</td>
    <td width='100'>Заказать</td>
    
  </tr>
</table>",$row["brand"],$row["model"], $row["sezon"], $row["tip"]);
sub_func($row, $aSQL); 
echo ('<br><br><br><br><br><br>');
}?>

Ваша новая функция полностью переписывает эту? Не могу связать ее с етим кодом

279

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

Если вы не понимаете строку в коде, то не копируйте ее, а смотрите сперва документацию, иначе то что вы делаете сейчас не имеет смысла.

function sub_func($r, $aSub) {
  global $db;
  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
  }
  // Формируем запрос к БД.
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        print "<table width='900' border='1'>
          <tr>
            <td width='100'>" . $row["shirina"] . "</td>
            <td width='100'>" . $row["profil"] . "</td>
            <td width='100'>" . $row["diametr"] . "</td>
            <td width='150'>" . $row["indnag"] . "</td>
            <td width='150'>" . $row["indskor"] . "</td>
            <td width='100'>" . $row["ostatok"] . "</td>
            <td width='100'>" . $row["cena"] . "</td>
             <td width='100'></td>
          </tr>
        </table>";
      } else {
        print '';
      }
    }
  }
}

280

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

Дело в том что я не пойму, сначяла была функция function sub_func($r) для нее был масив
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'sezon' => 'sezon');
// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$aSQL = array();  теперь функция   function sub_func($r, $aSub) и масив для нее $aName = array('bf_goodrich', 'barum', 'activan');
$aUnion = array();   они обе должны быть в коде страницы, как их записать?

281

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

Это собирает в запросе условия.
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'sezon' => 'sezon');

Это собирает запросы с помощью UNION.
$aName = array('bf_goodrich', 'barum', 'activan');

Саму функцию я уже написал. Перед ее вызовом надо прописать код:

$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);

282

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

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

<?php 



function sub_func($r, $aSQL) {
  global $db; // Эта строка необходима.
  $aSQL[] = ' `md` = "' . $r['md'] . '" '; // Добавляем условие выборки.
  $sql = '(
    SELECT * FROM `achilles`  WHERE ' . implode('AND', $aSQL) . '
  ) UNION (
    SELECT * FROM `amtel`  WHERE ' . implode('AND', $aSQL) . '
  )  UNION (
    SELECT * FROM `autoguard`  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 width='100'>" . $row["shirina"] . "</td>
            <td width='100'>" . $row["profil"] . "</td>
            <td width='100'>" . $row["diametr"] . "</td>
            <td width='150'>" . $row["indnag"] . "</td>
            <td width='150'>" . $row["indskor"] . "</td>
            <td width='100'>" . $row["ostatok"] . "</td>
            <td width='100'>" . $row["cena"] . "</td>
             <td width='100'></td>
          </tr>
        </table>";
      } else {
        print '';
      }
    }
  }
}

function sub_func($r, $aSub) {
  global $db;
  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
     $sql = '(
    SELECT * FROM `achilles`  WHERE ' . implode('AND', $aSQL) . '
  ) UNION (
    SELECT * FROM `amtel`  WHERE ' . implode('AND', $aSQL) . '
  )  UNION (
    SELECT * FROM `autoguard`  WHERE ' . implode('AND', $aSQL) . '
  ) ';
  }
  // Формируем запрос к БД.
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        print "<table width='900' border='1'>
          <tr>
            <td width='100'>" . $row["shirina"] . "</td>
            <td width='100'>" . $row["profil"] . "</td>
            <td width='100'>" . $row["diametr"] . "</td>
            <td width='150'>" . $row["indnag"] . "</td>
            <td width='150'>" . $row["indskor"] . "</td>
            <td width='100'>" . $row["ostatok"] . "</td>
            <td width='100'>" . $row["cena"] . "</td>
             <td width='100'></td>
          </tr>
        </table>";
      } else {
        print '';
      }
  

/* <td width='100'>hhh" . $row["id"] . "</td>
             <td width='100'>" . ($row["ostatok"] * $row["cena"]) . "</td>
             <td >" . $r["md"] . "</a></td> */

echo '<form method="post" action="">';

// здесь код выпадающих списков
echo $sezon.""."";

}
 {
} 

                     
echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="achiles" value="" >';
echo '<p> ТАБЛИЦА 2 <input type="checkbox" name="amtel" value="" >';
echo '<p> таблица 3 <input type="checkbox" name="autoguard" 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 `achilles`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  ) UNION (
    SELECT * FROM `amtel`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  )  UNION (
    SELECT * FROM `autoguard`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model`
  ) ';
  

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

$aName = array('achiles', 'amtel', 'autoguard');
$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);
  }
}
 
?>


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


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

283

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

<?php

function sub_func($r, $aSub) {
  global $db;
  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
  }
  
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        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]) . '" ';
}

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

if (count($aUnion) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
} else {
    $sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';
}

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

$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, $aSub);
    echo ('<br>');
}

?>

284

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

Выдает ошибку если выбираю ширину и ставлю все чекбоксы нажатыми

Warning: implode() [function.implode]: Bad arguments. in Z:\home\localhost\www\autoshina\222.php on line 152

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\autoshina\222.php on line 167
<?php 
$db = mysql_connect("localhost","alex","111");
mysql_select_db("shina",$db);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>
<?php

function sub_func($r, $aSub) {
  global $db;
  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
  }
  
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        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="amtel" 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]) . '" ';
}

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

if (count($aUnion) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
} else {
    $sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';
}

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

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    printf("<table width='900' border='1'>
      <tr>
        <td colspan='9'>  Шины %s ...  Модель %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["brand"], $row["model"], $row["sezon"], $row["md"] , $row["shirina"], $row["profil"], $row["diametr"], $row["md"]);
    sub_func($row, $aSub);
    echo ('<br>');
}

?>

</body>
</html>

285

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

Замените строку 152 на:

$sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';

286

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

Заработало!!!!!    А неподскажите как правильно написать функцию для чекбоксов на ончендж как для селектов,

onchange=\"this.form.submit();\"

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

287

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

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

288

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

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

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

Найдите решение, напишите код и покажите. Я проверю и если будет необходимо, то поправлю.

289

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

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

290 (изменено: павелsimon, 2012-04-23 08:23:40)

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

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

<?php
    
   
    function checked( $value )
    {
        $checkboxes = $_POST['checkboxes']; // Массив выделенных чекбоксов
        
        if( in_array( $value, (array)$checkboxes ) )
        {
            return "checked";
        }
        else
        {
            return false;
        }
    }
?>
<form action="" method="post">
    <label><input type="checkbox" name="checkboxes[]" value="1" <?=checked(1)?> /> Первый чекбокс</label><br />
    <label><input type="checkbox" name="checkboxes[]" value="2" <?=checked(2)?> /> Второй чекбокс</label><br />
    <label><input type="checkbox" name="checkboxes[]" value="3" <?=checked(3)?> /> Третий чекбокс</label><br />
    <label><input type="checkbox" name="checkboxes[]" value="4" <?=checked(4)?> /> Четвёртый чекбокс</label><br />
    <input type="submit" value="Отправить чекбоксы" />
</form>

291 (изменено: павелsimon, 2012-04-23 10:10:55)

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

Пробую вот так

<?php
 
function sub_func($r, $aSub) {
  
  
  function Checked( $checkbox )
  {
      if( isset( $_POST[$checkbox] ) )
      {
          return "checked";
      }
      else
      {
          return false;
      }
  }
  
  global $db;
  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
  }
  
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        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="">';
// здесь идет код для выпадающих списков 

 
 
 
}
 {
}  
 
                     
echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="bf_goodrich" value="" '.Checked("bf_goodrich").'  >';
echo '<p> ТАБЛИЦА 2 <input type="checkbox" name="barum" value="" '.Checked("barum").' >';
echo '<p> таблица 3 <input type="checkbox" name="amtel" value="" '.Checked("amtel").' >';
 /* 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]) . '" ';
}
 
$aName = array('bf_goodrich', 'barum', 'amtel');
$aUnion = array();
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model` ';
  }
}
 
if (count($aUnion) > 0) {
   $sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';
} else {
    $sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';
}
 
// Дальше.
$aSub = array();
$aSQL[] = ' `md` = "' . $r['md'] . '" ';
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aSub[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL);
  }
}
 
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    printf("<table width='900' border='1'>
      <tr>
        <td colspan='9'>  Шины %s ...  Модель %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["brand"], $row["model"], $row["sezon"], $row["md"] , $row["shirina"], $row["profil"], $row["diametr"], $row["md"]);
    sub_func($row, $aSub);
    echo ('<br>');
}
 
?>

но при этом выдает ошибку

Fatal error: Call to undefined function Checked() in

  и сами чекбоксы не выводятся

292

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

Постарайтесь понять что делает этот код, а не просто скопировать.

if (isset($_POST['achilles'])) {
  echo '<p> ТАБЛИЦА 1 <input type="checkbox" checked="checked" name="achilles" value="" >';
} else {
  echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="achilles" value="" >';
}

if (isset($_POST['amtel'])) {
  echo '<p> ТАБЛИЦА 2 <input type="checkbox" checked="checked" name="amtel" value="" >';
} else {
  echo '<p> ТАБЛИЦА 2 <input type="checkbox" name="amtel" value="" >';
}

if (isset($_POST['autoguard'])) {
  echo '<p> таблица 3 <input type="checkbox" checked="checked" name="autoguard" value="" >';
} else {
  echo '<p> таблица 3 <input type="checkbox" name="autoguard" value="" >';
}

293

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

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

<?php 
$db = mysql_connect("localhost","alex","111");
mysql_select_db("shina",$db);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Untitled Document</title>
</head>

<body>
<?php

function sub_func($r, $aSub) {
  global $db;
  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
  }
  
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        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="amtel" 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]) . '" ';
}

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

if (count($aUnion) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';
} else {
    $sql = 'SELECT * FROM `bf_goodrich` GROUP BY `model`';
}

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

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    printf("<table width='900' border='1'>
      <tr>
        <td colspan='9'>  Шины %s ...  Модель %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["brand"], $row["model"], $row["sezon"], $row["md"] , $row["shirina"], $row["profil"], $row["diametr"], $row["md"]);
    sub_func($row, $aSub);
    echo ('<br>');
}

?>

</body>
</html>

294

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

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

<?php 
$db = mysql_connect("localhost","alex","111");
mysql_select_db("shina",$db);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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, $aName) {
    global $db;
    $aSub = array();
    $aSQL[] = ' `md` = "' . $r['md'] . '" ';
    foreach ($aName as $checkbox) {
      if (isset($_POST[$checkbox])) {
        $aSub[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL);
      }
    }

  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    // Здесь запрос, если не выбрана ни одна галочка.
  }
  
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        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="amtel" 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]) . '" ';
}

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

if (count($aUnion) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';
} else {
    $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 ...  Модель %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["brand"], $row["model"], $row["sezon"], $row["md"] , $row["shirina"], $row["profil"], $row["diametr"], $row["md"]);
    sub_func($row, $aSQL, $aName);
    echo ('<br>');
}

?>

</body>
</html>

295

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

// Здесь запрос, если не выбрана ни одна галочка.


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

if (count($aUnion) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';
} else {
    $sql = 'SELECT * FROM `barum` GROUP BY `model`';
}

296

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

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

297

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

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

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

Не перебивает.

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

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

Приведите пример.

298

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

Пример таблица amtel  размер 175   70    R13 параметр  md= 5     таблица gislaved  размер 175   70    R13 параметр  md= 5  должно вывестся, amtel  и
1 раз 175   70    R13  md= 5 а выводится, 
amtel  175   70    R13  md= 5
175   70    R13  md= 5  но здесь уже id из таблицы gislaved

тоже самое выводится из таблицы gislaved одна строка из нее а другая из таблицы  amtel

299 (изменено: павелsimon, 2012-04-23 16:48:04)

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

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



сам код

<?php

function sub_func($r, $aSQL, $aName) {
    global $db;
    $aSub = array();
    $aSQL[] = ' `md` = "' . $r['md'] . '" ';
    foreach ($aName as $checkbox) {
      if (isset($_POST[$checkbox])) {
        $aSub[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL);
      }
    }

  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' )';
  } else {
    
  }
  
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        print "<table width='900' border='1'>
          <tr>
                  
            <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["model"] . "</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.""."";

}
 {
}  
if (isset($_POST['achilles'])) {
  echo '<p> ТАБЛИЦА 1 <input type="checkbox" checked="checked" name="achilles" value="" >';
} else {
  echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="achilles" value="" >';
}

if (isset($_POST['amtel'])) {
  echo '<p> amtel <input type="checkbox" checked="checked" name="amtel" value="" >';
} else {
  echo '<p> amtel <input type="checkbox" name="amtel" value="" >';
}

if (isset($_POST['autoguard'])) {
  echo '<p> таблица 3 <input type="checkbox" checked="checked" name="autoguard" value="" >';
} else {
  echo '<p> таблица 3 <input type="checkbox" name="autoguard" value="" >';
}
if (isset($_POST['gislaved'])) {
  echo '<p> gislaved<input type="checkbox" checked="checked" name="gislaved" value="" >';
} else {
  echo '<p> gislaved 3 <input type="checkbox" name="gislaved" 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]) . '" ';
}

$aName = array('achilles','amtel','autoguard','gislaved','barum');
$aUnion = array();
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model` ';
  }
}

if (count($aUnion) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';
} else {
    $sql = 'SELECT * FROM `barum` GROUP BY `model`';
}

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    printf("<table width='900' border='1'>
      <tr>
        <td colspan='9'>  Шины %s ...  Модель %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'>Ширина</td>
        <td width='100'>Профиль</td>
        <td width='100'>Диаметр</td>
        <td width='150'>Инд.нагр</td>
        <td width='150'>Инд.скор</td>
        <td width='100'>Остаток</td>
        <td width='100'></td>
        <td width='100'></td>
        <td>%s1119999</td>
      </tr>
    </table>",$row["brand"], $row["model"], $row["sezon"], $row["md"] , $row["md"]);
    sub_func($row, $aSQL, $aName, $aUnion);
    echo ('<br>');
}

?>

300

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

Ошибка

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
<?php include ("blocks/conect3.php");?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<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, $aName) {
    global $db;
    $aSub = array();
    $aSQL[] = ' `md` = "' . $r['md'] . '" ';
    foreach ($aName as $checkbox) {
      if (isset($_POST[$checkbox])) {
        $aSub[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL);
      }
    }

  if (count($aSub) > 0) {
    $sql = '( ' . implode(' ) UNION ( ', $aSub) . ' ) GROUP BY `model` ';
  } else {
    
  }
  
  if ($result = mysql_query($sql, $db)) {
    while ($row = mysql_fetch_array($result)) {
      if ($row["ostatok"] > 0) {
        print "<table width='900' border='1'>
          <tr>
                  
            <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["model"] . "</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.""."";

}
 {
}  
if (isset($_POST['achilles'])) {
  echo '<p> ТАБЛИЦА 1 <input type="checkbox" checked="checked" name="achilles" value="" >';
} else {
  echo '<p> ТАБЛИЦА 1 <input type="checkbox" name="achilles" value="" >';
}

if (isset($_POST['amtel'])) {
  echo '<p> amtel <input type="checkbox" checked="checked" name="amtel" value="" >';
} else {
  echo '<p> amtel <input type="checkbox" name="amtel" value="" >';
}

if (isset($_POST['autoguard'])) {
  echo '<p> таблица 3 <input type="checkbox" checked="checked" name="autoguard" value="" >';
} else {
  echo '<p> таблица 3 <input type="checkbox" name="autoguard" value="" >';
}
if (isset($_POST['gislaved'])) {
  echo '<p> gislaved<input type="checkbox" checked="checked" name="gislaved" value="" >';
} else {
  echo '<p> gislaved 3 <input type="checkbox" name="gislaved" 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]) . '" ';
}

$aName = array('achilles','amtel','autoguard','gislaved','barum');
$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 ( ', $aUnion) . ' ) GROUP BY `model` ';
} else {
    $sql = 'SELECT * FROM `barum` GROUP BY `model`';
}

$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    printf("<table width='900' border='1'>
      <tr>
        <td colspan='9'>  Шины %s ...  Модель %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'>Ширина</td>
        <td width='100'>Профиль</td>
        <td width='100'>Диаметр</td>
        <td width='150'>Инд.нагр</td>
        <td width='150'>Инд.скор</td>
        <td width='100'>Остаток</td>
        <td width='100'></td>
        <td width='100'></td>
        <td>%s1119999</td>
      </tr>
    </table>",$row["brand"], $row["model"], $row["sezon"], $row["md"] , $row["md"]);
    sub_func($row, $aSQL, $aName, $aUnion);
    echo ('<br>');
}

?>

</body>
</html>