Blätterfunktion funktioniert nicht

Meine Blätterfunktion funktioniert nicht. Es wird keine Zahl angezeigt. Hier ist der Code:
[php]

$sql = „SELECT COUNT() as anzahl FROM gc_game_games WHERE cat=„.$_GET[‚id‘].“";
$result = mysql_query($sql) OR die(mysql_error());
$anzahl = mysql_result($result, 0);
$num_pages = ceil($anzahl/10);
/

if(!$num_pages) {
$num_pages = 1;
}*/
if(!isset($_GET[‚page‘]))
{
$start = 1;
} else {
$start = $_GET[‚page‘];
}
$offset = ($start - 1) * 10;
if($num_pages > 1) {
echo „

;\n“;
for($i = 1; $i <= $num_pages; $i++) {
if($i == $start) {
// ich bin ja schon auf der Seite. Also
// Seitenzahl ohne Link erzeugen
echo $i.“\n";
} else {
echo „<a href="game_cats.php?id=“.$_GET[‚id‘].„&page=“.$i.„">\n“;
echo $i.„\n“;
echo „\n“;
}
}
echo „

\n“;
}
$sql = „SELECT * FROM gc_game_games WHERE cat=“.$_GET[‚id‘]." ORDER BY id DESC LIMIT „.$offset.“, 10";
$query = mysql_query($sql) OR die(mysql_error());[/php]

Wenn ich das richtig verstehe, versuchst du hiermit die anzahl der datensätzte zu bestimmen:
[PHP]$sql = „SELECT COUNT(*) as anzahl FROM gc_game_games WHERE cat=“.$_GET[‚id‘].„“;
$result = mysql_query($sql) OR die(mysql_error());
$anzahl = mysql_result($result, 0);[/PHP]

Dazu verwendest du mysql_result(). Wenn ich den Manual eintrag richtig verstehe müsstest du es so machen:
[PHP]$anzahl = mysql_result($result, 0, ‚anzahl‘);[/PHP]
Weil:

Mal abgesehen davon kannst du die anzahl der einträge auch einfacher mit mysql_num_rows() bestimmen.
Da du die daten sowieso noch abfragst geht das wahrscheinlich schneller als zweimal eine anfrage an den mysql server zu schicken.

Sonst kann ich keine fehler erkennen. Vielleicht solltest du kommentare in den code schreiben. Dein code ist zwar noch gut lesbar aber du erleichterst es denn leuten dir zu helfen wenn du das machst.

Danke ich werds mal mit mysql_num_rows ausprobieren.

Es funktioniert immer noch nicht an der Stelle ist irgentwo ein Fehler.
[php]

$sql = „SELECT COUNT(*) as anzahl FROM gc_game_games WHERE cat=“.$_GET[‚id‘].„“;
$result = mysql_query($sql) OR die(mysql_error());
//$anzahl = mysql_result($result, 0);
//$num = mysql_num_rows($result);
$anzahl = mysql_num_rows($result);
$num_pages = ceil($anzahl/10);
echo „$anzahl“;[/php]
Wenn ich das Ergebnis mit echo Abfrage kommt immer 1 raus.

Ne, der MySQL Server ist in der Regel, selbst bei mehrern Abfragen mit reinen SQL Statements aka COUNT schneller als ein mysql_num_rows().

Ich beziehe mich da auf eigene performancetests, die ich mal gemacht habe …

Nur so als einschub :wink:

Gruß Sven

[PHP]$sql = „SELECT COUNT(*) as anzahl FROM gc_game_games WHERE cat=“.$_GET[‚id‘].„“;[/PHP]
Liegt wahrscheinlich daran das du nicht die datensätze aus der datenbank holst sondern nur die anzahl und das ist ja bekanntlich ein wert.

Danke, gut zu wissen.