Re: Выпадающий список
А куда девались строки
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon', 'nazv_sezon' => 'sezon');
?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Страницы Назад 1 … 10 11 12 13 14 … 41 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
А куда девались строки
$aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon', 'nazv_sezon' => 'sezon');
?
А куда девались строки
Они должны остаться на прежнем месте.
Здравствуйте я просто не понял новая функция дописывается до прежнего кода или же она заменяет прежний код мой код с еще нерабочими чекбоксами выглядит так
<?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>');
}?>
Ваша новая функция полностью переписывает эту? Не могу связать ее с етим кодом
Если вы не понимаете строку в коде, то не копируйте ее, а смотрите сперва документацию, иначе то что вы делаете сейчас не имеет смысла.
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 '';
}
}
}
}
Дело в том что я не пойму, сначяла была функция 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(); они обе должны быть в коде страницы, как их записать?
Это собирает в запросе условия.
$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);
Да функцию вы написали, мне не понятно только как ее записать в мой код и куда девать предидущюю функцию.
Выкладываю свой код полную ахинею, потому как на страницу вписал две функции и два их масива может вы просто лишнее удалите из етого кода, я не разберусь что оставить из функций а что удалить?
<?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>');
}?>
<?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>');
}
?>
Выдает ошибку если выбираю ширину и ставлю все чекбоксы нажатыми
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>
Замените строку 152 на:
$sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';
Заработало!!!!! А неподскажите как правильно написать функцию для чекбоксов на ончендж как для селектов,
onchange=\"this.form.submit();\"
и как их написать чтоб они оставались нажаты при перезагрузке, тоесть сейчяс после каждого обновления, чекбоксы обнуляются
тоесть если написать на всех чекбоксах checked="checked" то ето не решает проблему так как после загрузки страницы щни выйдут нажаты а нужно чтоб после обновления страницы нажатыми остались лиш те что были нажаты а не все где прописано checked="checked"
тоесть если написать на всех чекбоксах checked="checked" то ето не решает проблему так как после загрузки страницы щни выйдут нажаты а нужно чтоб после обновления страницы нажатыми остались лиш те что были нажаты а не все где прописано checked="checked"
Найдите решение, напишите код и покажите. Я проверю и если будет необходимо, то поправлю.
У меня пока нету решения, может вы подскажите хотябы как чекбоксы оставлять нажатыми после перезагрузки страницы? Но не все а только те что были нажаты
Здравствуйте вот нашол чтото похожее функция при которой чекбоксы остаются нажатыми после перезагрузки страницы, только вот как это адаптировать к моему коду незнаю
<?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>
Пробую вот так
<?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
и сами чекбоксы не выводятся
Постарайтесь понять что делает этот код, а не просто скопировать.
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="" >';
}
Помогите пожалуйста, в коде гдето ошибку допустил я. До того как прицепили чекбоксы все выводилось нормально а теперь под каждой моделью выводится только одна первая таблица, подозреваю что таблицы не цепляются по параметру 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>
Обратите внимание, что в функцию надо добавить еще один запрос, который будет выполняться, если не выбрана ни одна галочка.
// Здесь запрос, если не выбрана ни одна галочка.
<?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>
// Здесь запрос, если не выбрана ни одна галочка.
если поставить сюда запрос то ничего не выводится так как его перебивает вот этот запрос
if (count($aUnion) > 0) {
$sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' )';
} else {
$sql = 'SELECT * FROM `barum` GROUP BY `model`';
}
Возникла новая ошибка, при запросе из базы двух идентичных таблиц выводятся строки по параметру md. Они идут как оглавления под каждым таким оглавлением должны выводится строки у которых одинаковый параметр md , а сейчяс получяется что выводится оглавление а под ним с одинаковым параметром md выводятся строки из всех таблиц которые были указаны чекбоксами, как их разделить?
если поставить сюда запрос то ничего не выводится так как его перебивает вот этот запрос
Не перебивает.
Возникла новая ошибка, при запросе из базы двух идентичных таблиц выводятся строки по параметру md. Они идут как оглавления под каждым таким оглавлением должны выводится строки у которых одинаковый параметр md , а сейчяс получяется что выводится оглавление а под ним с одинаковым параметром md выводятся строки из всех таблиц которые были указаны чекбоксами, как их разделить?
Приведите пример.
Пример таблица 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
тоесть каждая таблица цепляет к себе строки с с одинаковым параметром 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>');
}
?>
Ошибка
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>
Страницы Назад 1 … 10 11 12 13 14 … 41 Далее
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум PHP-MyAdmin.RU → Работа с phpMyAdmin → Выпадающий список
Форум работает на PunBB, при поддержке Informer Technologies, Inc
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.