2013-04-12 4 views
0

У меня проблема с получением итоговых строк с условием. Это мой кодPHP и MySQL общий счет с условием

$pagesize = 10; 
$recordstart = (int)$_GET['recordstart']; 
$recordstart = (isset($_GET['recordstart'])) ? $recordstart : 0; 

$town = $_GET['label_town']; 
$sub = ucfirst($_GET['label_sub']); 

Это мое условие выбора. Я также использую это условие для подсчета totalrows

if (isset($_GET['label_town']) === true && isset($_GET['label_sub']) === true) { 
$where = "WHERE p.label_town = '$town' AND p.label_sub = '$sub' AND `visible` = 1"; 
} else if (isset($_GET['label_town']) === true && isset($_GET['label_sub']) === false) { 
$where = "WHERE p.label_town = '$town' AND `visible` = 1"; 
} else { 
$where = "WHERE `visible` = 1"; 
} 

// Selecting data 
$all_page_index = mysql_query("SELECT p.page_id, p.timestamp, p.label_town, p.label_sub, p.ime_nekretnine, p.mjesto, p.cijena_noc, p.krevet_apart, p.broj_apart, p.min_nocenja, p.description, p.visits, i.image_id, i.page_id, i.ext 
FROM data_page AS p 
LEFT JOIN (
SELECT MAX(image_id) AS max, page_id 
FROM images 
GROUP BY page_id 
) AS n ON p.page_id = n.page_id 
LEFT JOIN images AS i ON i.image_id = n.max 
$where 
ORDER BY p.page_id DESC 
LIMIT $recordstart, $pagesize"); 

// Counting rows with conditions 
function totalrows() { 
    return mysql_result(mysql_query("SELECT COUNT(p.page_id) FROM data_page AS p $where"), 0); 
} 

Выбор и отображение данных работает нормально, но проблема с SELECT COUNT. Всегда рассчитывайте, что нет никакого материального состояния. Где я ошибаюсь?

Спасибо!

+4

Вам нужно передать '$ where' в' totalrows() '- это вне сферы действия. – andrewsi

+0

Конечно. :) Благодаря! –

ответ

3

Ваш COUNT находится в определении функции, где $where не определен. Вам нужно передать его в качестве параметра или переместить запрос вне функции.