Грешки при $_GET заявка?

nom3r1

Registered
Код:
if(isset($_GET['page'])){
	$page = clean($_GET['page']);
} else {
	$page = 1;
}
if($page != 1){
	$start = ($page-1)*$limiter;
} else {
	$start = 0;
}

При слагане на кавичка естествено ще ми даде грешка от този вид:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

Но защо, когато променя променливата със int() или с друга функция примерно: clean ми идва тази грешка?

Код:
Parse error: syntax error, unexpected T_VARIABLE in

Код:
$page = int()$_GET['page'];
if(isset($page)){
	$page = clean($_GET['page']);
} else {
	$page = 1;
}
if($page != 1){
	$start = ($page-1)*$limiter;
} else {
	$start = 0;
}

да съм по-точен става на въпрос, точно за тази част от кода:
$page = int()$_GET['page'];
if(isset($page)){
 
спя и пиша.. Мерси за грешката, но работата си е същата;

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in

ЕДИТ: След като плеснах едно or die (mysql_error()); към заявката ми изкара това:

Код:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-15, 15' at line 1


Код:
$limiter = conf('topiclimit');
$sql = "SELECT * FROM topics WHERE forum_id = '$f' ";
$page = (int)$_GET['page'];
if(isset($page)){
	$page = clean($_GET['page']);
} else {
	$page = 1;
}
if($page != 1){
	$start = ($page-1)*$limiter;
} else {
	$start = 0;
}
$forumsql = mysql_query("SELECT * FROM topics WHERE forum_id = '$f' ORDER BY sticky DESC, date DESC LIMIT $start, $limiter") or die (mysql_error());
 
Давам ти заявката за втори път ;)

$limiter = conf('topiclimit');
$page = (int)$_GET['page'];
if(isset($page)){
$page = clean($_GET['page']);
} else {
$page = 1;
}
if($page != 1){
$start = ($page-1)*$limiter;
} else {
$start = 0;
}
$forumsql = mysql_query("SELECT * FROM topics WHERE forum_id = '$f' ORDER BY sticky DESC, date DESC LIMIT $start, $limiter") or die (mysql_error());
 
Хмм, я кажи какво прави тази функция clean, не я виждам в Мануал-а и ми дай едно print-че на заявката, в LIMIT-a е проблема и по тoчно в $start, мисля...
 
Karcho каза:
Хмм, я кажи какво прави тази функция clean, не я виждам в Мануал-а и ми дай едно print-че на заявката, в LIMIT-a е проблема и по тoчно в $start, мисля...

Код:
function clean($c){
	$cl = htmlspecialchars(mysql_real_escape_string(strip_tags($c)));
		return $cl;
}

Когато махна (int) ->

print "$start : $limiter";
0 : 15

Когато сложа (int) ->
print "$start : $limiter";
-15 : 15
 
Пробвай без тази функция clean, няма смисъл от нея, ако гет-а ми е асд'ас'дасд INT ще го превърне в 0. Пробвай без функцията.
 
Код:
$sql = "SELECT * FROM forum_topics WHERE forum_id = '$f' ";
$page = (int)$_GET['page'];
if(isset($page)){
	$page = (int)$_GET['page'];
} else {
	$page = 1;
}
if($page != 1){
	$start = ($page-1)*$limiter;
} else {
	$start = 0;
}
$page= pagnate("$sql","$limiter");
$forumsql = mysql_query("SELECT * FROM forum_topics WHERE forum_id = '$f' ORDER BY sticky DESC, date DESC LIMIT $start, $limiter;");
print "$start : $limiter";

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
on line 32

print-a вади: -15 : 15

Ред 32:
Код:
while ($row = mysql_fetch_array($forumsql)){


Функция pagnate:
Код:
function pagnate($sql, $amount, $relay){
global $page;
$query = mysql_query("$sql") or die(mysql_error());
$num   = mysql_num_rows($query);
$num2 = $num;
$count = 0;
$pagestext = '';
$final = $num / $amount;
if ($num){
$pagestext .= '<br />Иди на страница: <a href="index.php">Първа | </a>';
	while($num2 > 0 ){
		$num2-=$amount;
		$count++;
		$low = $page - 5;
		$high = $page + 5;
		if ($count > $low &&  $count < $high){
			$pagestext .= '<a href="'.$relay.'&page='.$count.'">'.$count.' </a>';
		}
	}
	$pagestext .= '<a href="index.php?page='.$count.'">| Последна</a>';
}
return $pagestext;
}
 
Не мога да разбера каква каша забъркваш ... Правиш си някакви проверки с $page и после след това изведнъж му присвояваш нещо друго?
 
Аз използвам тази алтернатива:

<?php
$p = $_GET['page'];
if (isset($p))
{
if (!empty($p) {
if (is_numeric($p)) {
if ($p == 0) { $page = 1; }
else { $page = $p; }
}
else { $page = 1; }
}
else { $page = 1; }
}
else { $page = 1; }
?>

Малко по-дълго е но винаги числото е положително и не ми прави грешка. Защото попринцип с ?page=0 пак изважда грешка , а така си решавам и проблема ако ?page не е число , ако е празно, ако не съществува и ако е 0.

Можеш и да го направиш един фаил page.php и да го include във файла , и в други файлове в които използваш странициране.
 

Back
Горе