mallMedlem sedan jan. 2001135 inlägg
Nu e jag ganska ny till PHP och undrar hur man gor foljande.
Jag har en function
function paging_1($content_table)
{
//PAGING FUNCTOINS START 1 *****************************************//
$records_page_limit = 10;
if(!$_GET['page']) { $page = 1; } else { $page = $_GET['page']; }
$record_limitstart = $page * $records_page_limit;
$record_limitstart + 1;
$record_limitstart = $record_limitstart - $records_page_limit;
//SELECT RTABLE FOR THE PAGES FUNCTION
$result_entys = mysql_query("SELECT ID FROM $content_table",$db);
$page_nums = mysql_num_rows($result_entys);
//GET PAGING INFO FOR THE INFO BAR
if(!$_GET['page']) { $record_start = 1; } else { $record_start = $record_limitstart+1; }
$record_end = ($record_start + $records_page_limit) -1;
//PAGING FUNCTOINS END 1 *****************************************//
//MAKE LIST ORDERED IN THE SELECTED ORDER
if($_GET['order_by'])
{
$order_by = $_GET['order_by'];
$order_set = $_GET['order_set'];
$sql = "SELECT * FROM $content_table ORDER BY $order_by $order_set LIMIT $record_limitstart, $records_page_limit";
}
//JUST RUN ORDINARY SELECTION
else { $sql = "SELECT * FROM $content_table order by ID DESC LIMIT $record_limitstart, $records_page_limit"; }
return $sql;
}
Sedan anropar jag den sahar
$result = mysql_query(paging_1($content_table),$db);
Hur passar jag foljande variabler ut ur funktionen?
$record_end
$page_nums
$record_start
$records_page_limit
K@llenMedlem sedan mars 20032 654 inlägg
Jag hade gjort en pagingklass istället, alternativt delat upp i fler mindre funktioner.
Vill du trots att returnera flera värden ur din funktion kan du lägga dem i en array och sedan returnera arrayen.
mallMedlem sedan jan. 2001135 inlägg
Tack K@llen.
Skulle du kunna visa hur jag " lägga dem i en array och sedan returnera arrayen."?
K@llenMedlem sedan mars 20032 654 inlägg
// Sist i din funktion.
// Ta bort return $sql.
// Du kan se innehållet i arrayen med: print_r($array);
$array[] = $record_end;
$array[] = $page_nums;
$array[] = $record_start;
$array[] = $records_page_limit;
return $array;
mallMedlem sedan jan. 2001135 inlägg
detta verka inte fungera :(.
skriver inte ut print_r($array);
aasahMedlem sedan mars 20033 451 inlägg
Vill du verkligen returnera de variablerna? Varför då? De är ju redan instoppade på rätt plats i SQL-frågan. Om du låter paging_1 se ut som från början och returnerar $sql, ser den inte ut precis som du vill då? Alltså, pröva:
function paging_1($content_table) {
//som ovan enda hit....
//JUST RUN ORDINARY SELECTION
else {
$sql = "SELECT * FROM $content_table order by ID DESC
LIMIT $record_limitstart, $records_page_limit";
}
return $sql;
}
$query = paging_1($content_table);
echo $query;
$result = mysql_query($query, $db);
Vad ska du med dessa variabler till, utanför funktionen?
mallMedlem sedan jan. 2001135 inlägg
Nej. Forutom $sql behover jag de andra variablerna med.
mallMedlem sedan jan. 2001135 inlägg
Jag anvander dessa
$record_end
$page_nums
$record_start
$records_page_limit
For att visa i infobaren vilka sidor anvandaren befinner sig oa just nu.
Typ. "Sidor 21-30 av 56"
aasahMedlem sedan mars 20033 451 inlägg
Ah, OK. Då får du stoppa in dem i en array:
function paging_1($content_table) {
//som ovan enda hit....
//JUST RUN ORDINARY SELECTION
else {
$sql = "SELECT * FROM $content_table order by ID DESC
LIMIT $record_limitstart, $records_page_limit";
}
$arr = array("sql" => $sql, "start" => $record_start,
"end" => $record_end, "num" => $page_nums,
"limit" => $records_page_limit, );
return $arr;
}
$queryVars = paging_1($content_table);
print_r($queryVars); //Visar hur det ser ut
//Du kommer åt variablerna enligt:
$result = mysql_query($queryVars["sql"], $db);
echo "Sidor ".$queryVars["start"]."-".$queryVars["end"]." av ".$queryVars["num"];
//Eller vilka variabler som är vilka...