Здравствуйте, подскажите пожалуйста как подключить постраничный вывод. Пробую вот так не получяется
function sub_func($r, $aSQL, $aName) {
$aSQL[] = ' `md` = "' . $r['md'] . '" ';
$aSQL[] = ' `brand` = "' . $r['brand'] . '" ';
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 {
$sql = '(
SELECT * FROM `achilles` WHERE ' . implode('AND', $aSQL) . '
)
UNION (
SELECT * FROM `aeolus` 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='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'>Заказать</td>
</tr>
</table>";
} else {
print '';
}
}
}
}// здесь выпадающие списки
// условия для чекбоксов
if (isset($_POST['achilles']) || !isset($_POST['nazv_sezon'])) {
echo '<p>ACHILLES <input type="checkbox" checked="checked" name="achilles" value="" onchange="this.form.submit();">';
} else {
echo '<p>ACHILLES <input type="checkbox" name="achilles" value="" onchange="this.form.submit();">';
}
if (isset($_POST['aeolus'])) {
echo '<p>AEOLUS <input type="checkbox" checked="checked" name="aeolus" value="" onchange="this.form.submit();">';
} else {
echo '<p>AEOLUS <input type="checkbox" name="aeolus" value="" onchange="this.form.submit();">';
}
// условия и запросы с выводом из нескольких таблиц
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','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` ';
}
}
if (count($aUnion) > 0) { $sql = '( ' . implode(' ) UNION ( ', $aUnion) . ' ) ';
} else if ( count($aSQL) <= 0) {$sql = '(
SELECT * FROM `achilles` 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
)
UNION (
SELECT * FROM `amtel` 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;
} // Конец функции
// Подключение к базе данных
mysql_connect('localhost', 'alex', '111') or die('error! Нет соединения с сервером mysql!');
mysql_select_db('shina') or die('error! Нет соединения с базой данных!');
// Подготовка к постраничному выводу
$perpage = 2; // Количество отображаемых данных из БД
if (empty($_GET['page']) || ($_GET['page'] <= 0)) {
$page = 1;
} else {
$page = (int) $_get['page']; // Считывание текущей страницы
}
// Общее количество информации
$count = mysql_numrows(mysql_query('select * from achilles')) or die('error! Записей не найдено!');
$pages_count = ceil($count / $perpage); // Количество страниц
// Если номер страницы оказался больше количества страниц
if ($page > $pages_count) $page = $pages_count;
$start_pos = ($page - 1) * $perpage; // Начальная позиция, для запроса к БД
// Вызов функции, для вывода ссылок на экран
link_bar($page, $pages_count);
// Вывод информации из базы данных
echo '<p><b>Постраничный вывод информации</b></p>';
$result2 = mysql_query('select * from achilles limit '.$start_pos.', '.$perpage) or die('error!');
while ($row2 = mysql_fetch_array($result2)) {
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
print "<table width='900' border='1'>
<tr>
<td colspan='9'> Шины " . $row["brand"] . " ... Модель " . $row["model"] . "</td>
</tr>
<tr>
<td colspan='2'>фото</td>
<td colspan='7' rowspan='2'>текст</td>
</tr>
<tr>
<td>" . $row["sezon"] . "</td>
<td>" . $row["tip"] . "</td>
</tr>
<tr>
<td width='100'>" . $row["shirina"] . "</td>
<td width='100'>Профиль</td>
<td width='100'>Диаметр</td>
<td width='150'>Инд.нагр</td>
<td width='150'>Инд.скор</td>
<td width='100'>Остаток</td>
<td width='100'>Цена за 1</td>
<td>Заказать</td>
</tr>
<tr>
</tr>
</table>" ;
sub_func($row, $aSQL, $aName, $aUnion);
print "<br><br>";
}
echo '<p>'.$row2['some_field'].'</p>';
}
ссылки выводятся но их количество не соответствует количеству данных тоесть ссылок на 8 страниц а данных хватает лиш на одну, и при етом естественно по ссылкам не удается никуда перейти, и здесь еще видимо проблема возникает, ведь в условиях выше прописан вывод не только с одной таблицы а в скрипте постраничного вывода только для одной ето както тоже нужно соединить