Bin ich blöd? Warum funktioniert meine Funktion nicht?

Danke für die teilweise "sehr netten" antworten :eek:



Also,
hier, ich habe doch hier folgenden Code, der die Parameter für die blätter-funktion angibt:
also, das ist der aufruf meiner blätter-funktion mit den zugehörigen wichtigen Paramtern.
PHP:
		//display the funktion to turn the page
		$itemCount 		= mysql_num_rows($result); //errechnet alle einträge
		$itemsPerPage	= 1; //einträge pro seite
		$pageCount 		= ceil($itemCount/$itemsPerPage); //seiten zählen
		display_blaettern($itemCount, $itemsPerPage, $pageCount);

Da ist eine Variable $itemCount von der ich nicht weiß, wie ich die einträge zählen lassen soll, wenn das doch gar nicht geht!!

Weil hier ist das Script, das die db_query funktion aufruft:
PHP:
		$table_name	= "news";
		$result = db_query($table_name);

Ich kann ja nicht einfach sagen, zähle $result. das wär ja schwachsinn, nicht wahr?

Ohne die Blätter-funktion geht es ja auch. PHP gibt diese Meldung aus
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/www/web245/html/news.php on line 12
Das ist die Zeile mit dem $itemCount

Wie kann ich denn nun die Einträge zählen lassen? Ich kann ja schließlich nur einen return-Wert angeben:
PHP:
	function db_query($table_name)
	{
		@ $result	= mysql_query("select * from $table_name order by id desc");
		
		//tell error
		if (!$result) {
			echo 'Es konnten keine Einträge gefunden oder ausgelesen werden!';
		}
		
		//define important variables for the "turn-page" function
		@ $itemCount 		= mysql_num_rows($result);
			$itemsPerPage	= $items;
		@ $pageCount 		= ceil($itemCount/$itemsPerPage);
		
		if (!isset($_GET['page'])) {
			@ $read_entrys			= "select * from $table_name order by id desc LIMIT 0, ".$itemsPerPage.";";
		} else {
			@ $abeintrag 				= $_GET['page'] * $itemsPerPage - $itemsPerPage;
			@ $read_entrys 			= "select * from $table_name order by id desc LIMIT ".$abeintrag.", ".$itemsPerPage.";";
		}
		$result 			= mysql_query($read_entrys);
		
		return $result;
	}


kalma
 
Lies dir nochmal meinen Posts durch und bearbeite dementsprechend deinen Code :). Wird dir zu 100% helfen den Fehler zu finden.
 
PHP:
function db_query($tableName, $itemsPerPage=10)
{ 
	$itemCount = mysql_result(mysql_query('SELECT COUNT(*) FROM `'.$tableName.'`'), 0);
	$offset = ( empty($_GET['page']) )
		? intval($_GET['page']) * $itemsPerPage - $itemsPerPage
		: 0;

	$query = '
		SELECT
		        *
		  FROM
		        `'.$tableName.'`
		  ORDER BY
		        `id` DESC
		  LIMIT
		        '.$offset.', '.$itemsPerPage.'
		';
	$result = mysql_query($query);

	return $result;
}
 
Tach,


mir fehlen aber immer nachher aber immer noch die Angaben von $itemCount und $pageCount bei der ausgabe, da ich diese nicht mit übergeben kann...



edit:
habe jetzt meinen code so umgeschrieben:
PHP:
<?php
function db_query($tableName, $itemsPerPage=1)
{ 
    $itemCount = mysql_num_rows(mysql_query('select count(*) from '.$tableName.''));
    $pageCount = ceil($itemCount/$itemsPerPage);

    $offset = (empty($_GET['page'])) ? intval($_GET['page']) * $itemsPerPage - $itemsPerPage: 0;

    $query	= 'select * from '.$tableName.' order by id desc limit '.$offset.', '.$itemsPerPage.'';
    $result = mysql_query($query);

		//return $result;
		return compact($itemCount, $pageCount, $result);
}  
?>
<< die funktion


PHP:
		$tableName	= "news";
		$result = extract(db_query($itemCount, $pageCount, $result));
		
		$itemCount	= $itemCount;
		$pageCount	= $pageCount;
		$itemsPerPage = 1;
		
		display_blaettern($itemCount, $itemsPerPage, $pageCount);
<< der aufruf


aber irgendwas is da wohl immer noch falsch :-\
 
Zuletzt bearbeitet:
Zurück