В таблице com_content_category хранятся категории.
При выводе 2 таблиц наченаются глюки. Выводится 1 запись в которой только название категории.
$sql = '
SELECT SQL_CALC_FOUND_ROWS
*
FROM
`com_content`
ORDER BY date DESC, id DESC
LIMIT
'. (($cur_page - 1) * $items_per_page) .', '. ((int) $items_per_page) .'';
// Исполнение запроса
$query=$GLOBALS['db']->query($sql);
while ( $row=$GLOBALS['db']->fetch_array($query) )
$cat=$GLOBALS['db']->super_fetch_array("SELECT * FROM com_content_category WHERE id='".$row['id']."'");
echo
'
<div class="post" id="post-1">
<h2 class="title"><a href="http://xtemplate.ru/wordpresslive/?p=1" rel="bookmark">'.$row["name"].'</a></h2>
<div class="meta"><br />Категория <a href="index.php?component=content&category='.$cat["cat_id"].'" rel="category">'.$cat["cat_name"].'</a>, автор admin - Фев 28, 2010</div>
<div class="entry">
'.$row["text"].'
</div>
<div class="meta"><br /></div><div class="comments"><a href="index.php?component=content&view='.$row["id"].'">1 Комментарий. »</a></div>
<div class="date">Фев<br />2</div>
</div>
';
Спустя 2 часа, 9 минут, 34 секунды (18.07.2010 - 22:16) jalvar написал(а):
Не ужели ни кто не знает?
Спустя 8 часов, 56 минут, 19 секунд (19.07.2010 - 07:12) Michael написал(а):
Ну мы во первых не знаем тонкостей работы super_fetch_array. Наверное делает запрос и возвращает первую строку результата.
Значит, что заметил:
1) Запросы в цикле - нехорошо. Эти данные можно получить и одним запросом
2) com_content_category WHERE id='".$row['id']."'"
А что id поле не целочисленное у тебя?
Значит, что заметил:
1) Запросы в цикле - нехорошо. Эти данные можно получить и одним запросом
SELECT con.*, cat.nazv
FROM `com_content` сon, `com_content_category` cat
WHERE con.id = cat.id
ORDER BY con.date DESC, con.id DESC
LIMIT
2) com_content_category WHERE id='".$row['id']."'"
А что id поле не целочисленное у тебя?
Спустя 3 часа, 55 минут, 23 секунды (19.07.2010 - 11:08) jalvar написал(а):
Нет полностью численное. Я юмор этого не понял что за con и cat `com_content` сon, `com_content_category` cat
И выводить массивом row как? 2 таблицы одновременно
И выводить массивом row как? 2 таблицы одновременно
Спустя 4 минуты, 29 секунд (19.07.2010 - 11:12) jalvar написал(а):
С твоим запросом следуйщие возникло
Bad SQL-query:
SELECT con.*, cat.nazv
FROM `com_content`, `com_content_category`
WHERE con.id = cat.id
ORDER BY con.date DESC, con.id DESC
LIMIT
0, 10
Unknown table 'con'
$query=$GLOBALS['db']->query($sql);
if ( !$query ) die('Bad SQL-query: <br /><pre>'. $sql .'</pre><p>'. mysql_error() .'</p>');
Bad SQL-query:
SELECT con.*, cat.nazv
FROM `com_content`, `com_content_category`
WHERE con.id = cat.id
ORDER BY con.date DESC, con.id DESC
LIMIT
0, 10
Unknown table 'con'
Спустя 10 минут (19.07.2010 - 11:22) Michael написал(а):
Это не мой запрос. Мой был с:
FROM `com_content` сon, `com_content_category` cat
- псевдонимы назначил, чтобы не писать везде длинное `com_content`.id =
FROM `com_content` сon, `com_content_category` cat
- псевдонимы назначил, чтобы не писать везде длинное `com_content`.id =
Цитата |
Нет полностью численное. |
ну значит вместо WHERE id='".$row['id']."'" надо
WHERE id=". (int)$row['id'];
- это если с моим вариантом не разберешься.
Спустя 12 минут, 26 секунд (19.07.2010 - 11:34) jalvar написал(а):
Почему он на запрос ругается.? ((((
Спустя 38 минут, 29 секунд (19.07.2010 - 12:13) jalvar написал(а):
Следуйщая проблема название категории выводит только в 1 записи
<?
$cur_page = isset($_GET['page']) ? (int) $_GET['page'] : 0;
// Текущая страница не может быть меньше единицы
if ( $cur_page < 1 ) $cur_page = 1;
// Количество записей на странице
$items_per_page = 10;
// Запрос на выборку
$sql = '
SELECT t1.*, t2.cat_id, t2.sys_name FROM com_content as t1 LEFT JOIN com_content_category as t2 ON t2.cat_id=t1.id ORDER BY t1.date DESC, t1.id DESC
LIMIT
'. (($cur_page - 1) * $items_per_page) .', '. ((int) $items_per_page) .'';
// Исполнение запроса
$query=$GLOBALS['db']->query($sql);
if ( !$query ) die('Bad SQL-query: <br /><pre>'. $sql .'</pre><p>'. mysql_error() .'</p>');
// Количество записей, которые вернул запрос
$items_count = mysql_affected_rows();
// Общее количество найденых записей, без учёта лимита
list($total) = mysql_fetch_row(mysql_query('SELECT FOUND_ROWS()'));
// Количество страниц, которое необходимо для просмотра списка
$pages_count = ceil($total / $items_per_page);
// Если страниц больше одной, то необходимо вывести их
if ( $pages_count > 1 )
{
echo '<p>Страницы: ';
// Поскольку количество страниц заранее известно, то используем for
for ( $i = 1; $i <= $pages_count; ++$i )
echo '<a href="?page=', $i, '">', $i, '</a> ';
echo '</p>';
}
// Если были найдены записи, то выводим список
if ( $items_count )
{
// Вывод найденных записей
while ( $row=$GLOBALS['db']->fetch_array($query) )
echo
'
<div class="post" id="post-1">
<h2 class="title"><a href="http://xtemplate.ru/wordpresslive/?p=1" rel="bookmark">'.$row["name"].'</a></h2>
<div class="meta"><br />Категория <a href="index.php?component=content&category='.$row["cat_id"].'" rel="category">'.$row["sys_name"].'</a>, автор admin - Фев 28, 2010</div>
<div class="entry">
'.$row["text"].'
</div>
<div class="meta"><br /></div><div class="comments"><a href="index.php?component=content&view='.$row["id"].'">1 Комментарий. »</a></div>
<div class="date">Фев<br />2</div>
</div>
';
}
else
{
// Список пуст, выводить нечего
echo '<p>К сожалению, нет подходящих записей для просмотра.</p>';
}
?>
Спустя 21 час, 29 минут, 56 секунд (20.07.2010 - 09:43) jalvar написал(а):
Люди ау!!
_____________
jallvar.oxnull.net - мой блог.