webForumDet fria alternativet

Hjalp med function

8 svar · 613 visningar · startad av mall

mallMedlem sedan jan. 2001135 inlägg
#1

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
#2

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
#3

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
#4
// 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
#5

detta verka inte fungera :(.

skriver inte ut print_r($array);

aasahMedlem sedan mars 20033 451 inlägg
#6

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
#7

Nej. Forutom $sql behover jag de andra variablerna med.

mallMedlem sedan jan. 2001135 inlägg
#8

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
#9

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...
Genererad på 383 ms · cache AV · v20260730165559-full.f96bc7eb