426

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

function link_bar($page, $pages_count)
{
for ($j = 1; $j <= $pages_count; $j++)
{
// Вывод ссылки
if ($j == $page) {
echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
} else {
echo ' <a style="color: #808000;" href='.$_server['php_self'].'?page='.$j.'>'.$j.'</a> ';
}
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j != $pages_count) echo ' ';
}
return true;
} // Конец функции
$perpage = 2; // Количество отображаемых данных из БД
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
$count_sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' ) ';
$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД

выдает ошибку

WARNING: IMPLODE() [FUNCTION.IMPLODE]: BAD ARGUMENTS. IN Z:\HOME\LOCALHOST\WWW\AUTOSHINA\ACHILLES.PHP ON LINE 64

WARNING: MYSQL_NUMROWS(): SUPPLIED ARGUMENT IS NOT A VALID MYSQL RESULT RESOURCE IN Z:\HOME\LOCALHOST\WWW\AUTOSHINA\ACHILLES.PHP ON LINE 65

427

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

Массив $aUnion надо сформировать выше по коду.

428

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

<?php     
    $aName = array('nazv_auto' => 'shirina', 'nazv_model' => 'profil', 'nazv_year' => 'diametr', 'nazv_sezon' => 'sezon');
// Теперь создаем пустой массив для хранения данных формирующих запрос (имя поля = значение).
$aSQL = array();
// Проходим цикл ассоциативного массива имен и добавляем элемент в массив $aSQL, если список выбран.
    $aName = array('achilles','aeolus','amtel','autoguard','barum','bf_goodrich','blackstone','cooper','cordiant','daewoo','debica','diplomat','dunlop','falken','firestone','fulda','gislaved','goodyear','hercules','hifly','kama','kingstar','kleber','kormaran','lassa','maragoni','marshal','maxtrek','michelin','nokian','pirelli','premiori','rosava','sava','semperit','tigar','toyo','unirojal','viking','westlake','yokohama');
$aUnion = array();
    
function link_bar($page, $pages_count)
{
for ($j = 1; $j <= $pages_count; $j++)
{
// Вывод ссылки
if ($j == $page) {
echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
} else {
echo ' <a style="color: #808000;" href='.$_server['php_self'].'?page='.$j.'>'.$j.'</a> ';
}
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j != $pages_count) echo ' ';
}
return true;
} // Конец функции

// Подключение к базе данных


// Подготовка к постраничному выводу
$perpage = 2; // Количество отображаемых данных из БД

if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
$count_sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' ) ';
$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');

$pages_count = ceil($count / $perpage); // Количество страниц

// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД

// Вызов функции, для вывода ссылок на экран

теперь такая ошибка

WARNING: MYSQL_NUMROWS(): SUPPLIED ARGUMENT IS NOT A VALID MYSQL RESULT RESOURCE IN Z:\HOME\LOCALHOST\WWW\AUTOSHINA\ACHILLES.PHP ON LINE 72
ERROR! ЗАПИСЕЙ НЕ НАЙДЕНО!

строка 72

$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');

429

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

Надо сформировать массив $aUnion.

430

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

Еще один?  етот что есть не пойдет?

431

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

Это пустой массив.
$aUnion = array();

432

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

$aUnion2 = array('achilles','aeolus','amtel','autoguard','barum','bf_goodrich','blackstone','cooper','cordiant','daewoo','debica','diplomat','dunlop','falken','firestone','fulda','gislaved','goodyear','hercules','hifly','kama','kingstar','kleber','kormaran','lassa','maragoni','marshal','maxtrek','michelin','nokian','pirelli','premiori','rosava','sava','semperit','tigar','toyo','unirojal','viking','westlake','yokohama');
    $aUnion2 = array();    
function link_bar($page, $pages_count)
{
for ($j = 1; $j <= $pages_count; $j++)
{
// Вывод ссылки
if ($j == $page) {
echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
} else {
echo ' <a style="color: #808000;" href='.$_server['php_self'].'?page='.$j.'>'.$j.'</a> ';
}
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j != $pages_count) echo ' ';
}
return true;
} // Конец функции

// Подключение к базе данных


// Подготовка к постраничному выводу
$perpage = 2; // Количество отображаемых данных из БД

if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
$count_sql = '( ' . implode(' ) UNION ( ', $aUnion2) . ' ) ';
$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц

// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД

// Вызов функции, для вывода ссылок на экран

таже ошибка на ету строку

$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');

433

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

Вы можете переставлять строки местами сколько угодно, это ничего не изменит. Начните с изучения основ PHP, иначе все остальное не имеет никакого смысла. Вы должны понимать что делаете.

434

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

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

435

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

Массив $aUnion формируется один раз и используется в обоих запросах.

436

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

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

437

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

Вот код, который формирует массив $aUnion и он уже есть в скрипте.

$aName = array('achilles','aeolus','amtel','autoguard','barum','bf_goodrich','blackstone','cooper','cordiant','daewoo','debica','diplomat','dunlop','falken','firestone','fulda','gislaved','goodyear','hercules','hifly','kama','kingstar','kleber','kormaran','lassa','maragoni','marshal','maxtrek','michelin','nokian','pirelli','premiori','rosava','sava','semperit','tigar','toyo','unirojal','viking','westlake','yokohama');
$aUnion = array();
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model` ';
  }
}

438

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

Я вырезал его из кода и вставил над функцией

$aName = array('achilles','aeolus','amtel','autoguard','barum','bf_goodrich','blackstone','cooper','cordiant','daewoo','debica','diplomat','dunlop','falken','firestone','fulda','gislaved','goodyear','hercules','hifly','kama','kingstar','kleber','kormaran','lassa','maragoni','marshal','maxtrek','michelin','nokian','pirelli','premiori','rosava','sava','semperit','tigar','toyo','unirojal','viking','westlake','yokohama');
$aUnion = array();
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model` ';
  }
}
function link_bar($page, $pages_count)
{
for ($j = 1; $j <= $pages_count; $j++)
{
// Вывод ссылки
if ($j == $page) {
echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
} else {
echo ' <a style="color: #808000;" href='.$_server['php_self'].'?page='.$j.'>'.$j.'</a> ';
}
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j != $pages_count) echo ' ';
}
return true;
} // Конец функции

// Подключение к базе данных


// Подготовка к постраничному выводу
$perpage = 2; // Количество отображаемых данных из БД

if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
$count_sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' ) ';
$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц

// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД

// Вызов функции, для вывода ссылок на экран

ошибка

WARNING: MYSQL_NUMROWS(): SUPPLIED ARGUMENT IS NOT A VALID MYSQL RESULT RESOURCE IN Z:\HOME\LOCALHOST\WWW\AUTOSHINA\ACHILLES.PHP ON LINE 72

439

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

Обратите внимание на переменную $aSQL. Если выше в коде она не заполняется - значит она не определена и работать не будет.
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model` ';
  }
}

440

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

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


$aName = array('achilles','aeolus','amtel','autoguard','barum','bf_goodrich','blackstone','cooper','cordiant','daewoo','debica','diplomat','dunlop','falken','firestone','fulda','gislaved','goodyear','hercules','hifly','kama','kingstar','kleber','kormaran','lassa','maragoni','marshal','maxtrek','michelin','nokian','pirelli','premiori','rosava','sava','semperit','tigar','toyo','unirojal','viking','westlake','yokohama');
$aUnion = array();
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model` ';
  }
}

Ети два масива вынести над функцией? ,  но 

$aSQL = array()

и 

$aUnion = array();

пустые
я незнаю как их записать

441

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

Как же его всетаки прописать правильно?

442

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

Читайте документацию. http://lv.php.net/manual/ru/language.types.array.php

$aSQL = array(); // Здесь создается пустой массив.
foreach ($aName as $select => $field) {
  // Здесь добавляем элемент массива $aSQL.
  if (!empty($_POST[$select])) $aSQL[] = ' `' . $field . '` = "' . mysql_real_escape_string($_POST[$select]) . '" ';
}

Так же собирается массив $aUnion.

443

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

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

444

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

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

но функция берется щитать строки из масивов которые пусты, я правильно понимаю?

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

445

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

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

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


$aName = array('achilles','aeolus','amtel','autoguard','barum','bf_goodrich','blackstone','cooper','cordiant','daewoo','debica','diplomat','dunlop','falken','firestone','fulda','gislaved','goodyear','hercules','hifly','kama','kingstar','kleber','kormaran','lassa','maragoni','marshal','maxtrek','michelin','nokian','pirelli','premiori','rosava','sava','semperit','tigar','toyo','unirojal','viking','westlake','yokohama');
$aUnion = array();
foreach ($aName as $checkbox) {
  if (isset($_POST[$checkbox])) {
    $aUnion[] = ' SELECT * FROM `' . $checkbox . '`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY `model` limit '.$start_pos.', '.$perpage.' ';
  }
}
 
function link_bar($page, $pages_count)
{
for ($j = 1; $j <= $pages_count; $j++)
{
// Вывод ссылки
if ($j == $page) {
echo ' <a style="color: #808000;" ><b>'.$j.'</b></a> ';
} else {
echo ' <a style="color: #808000;" href='.$_server['php_self'].'?page='.$j.'>'.$j.'</a> ';
}
// Выводим разделитель после ссылки, кроме последней
// например, вставить "|" между ссылками
if ($j != $pages_count) echo ' ';
}
return true;
} // Конец функции

// Подключение к базе данных


// Подготовка к постраничному выводу
$perpage = 2; // Количество отображаемых данных из БД

if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_GET['page']; // Считывание текущей страницы
}
// Общее количество информации
if (count($aUnion) > 0) { $count_sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' ) ';
$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');
} else if ( count($aSQL) <= 0) {$sql = '(
    SELECT * FROM `aeolus`  GROUP BY model )';
}
 else {
$sql = '(
    SELECT * FROM `achilles`  WHERE ' . implode('AND', $aSQL) . ' GROUP BY model 
  ) UNION (
  
    SELECT * FROM `aeolus`  WHERE ' . implode('AND', $aSQL) . 'GROUP BY model )

   
   
   ';
   
}
$pages_count = ceil($count / $perpage); // Количество страниц

// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД

// Вызов функции, для вывода ссылок на экран

446

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

Какая ошибка? Я не могу запустить скрипт, чтобы ее увидеть.

447

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

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\autoshina\AEOLUS.php on line 743

строка

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

448

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

а если нигде ничего не выбрано то ошбка такова

Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\autoshina\AEOLUS.php on line 85
error! Записей не найдено!

строка

$count = mysql_numrows(mysql_query($count_sql)) or die('error! Записей не найдено!');

449

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

Проверяйте запросы.

450

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

А само условие для функции я правильно написал?