mysql_result(): Unable to jump...nur für bestimmte Datensätze!

chilimaus

Mitglied
Hallo!^^

Ich rauf mir hier schon tagelang die Haare, aber irgendwas ist immer mit diesem Code.
Ich möchte die Datensätze meiner DB-Tabelle in einer Tabelle auf meiner HP ausgeben. Jeweils 20 Datensätze (kann noch schwanken XD) auf eine Seite, danach die nächsten 20 auf der nächsten etc.. Der größte Teil geht auch bereits. Auf der 1. Seite werden 20 Datensätze angezeigt, also die IDs von 1-20. Aber auf der nächsten Seite kommen lauter Fehlermeldungen!:
Code:
Warning: mysql_result(): Unable to jump to row 20 on MySQL result index 4 in /www/htdocs/w0064899/test.php on line 64
Warning: mysql_result(): Unable to jump to row 20 on MySQL result index 4 in /www/htdocs/w0064899/test.php on line 65
Warning: mysql_result(): Unable to jump to row 20 on MySQL result index 4 in /www/htdocs/w0064899/test.php on line 66
Warning: mysql_result(): Unable to jump to row 21 on MySQL result index 4 in /www/htdocs/w0064899/test.php on line 64
Diese besagten Zeilen (und einige davor und danach) beinhalten folgendes:
PHP:
<?
$res = @mysql_query("SELECT id, name, passwort FROM anmeldung2 LIMIT $startz, $endz") or die(mysql_error());
$num = mysql_num_rows($res);
   echo "$num Datensätze gefunden<br>";

for($i=$startz; $i<$endz; $i++)
{
  $name = mysql_result($res, $i, "name");
      $passi = mysql_result($res, $i, "passwort");
      $id  = mysql_result($res, $i, "id");
      echo "<tr><td width='50%'><center><a href='$id.php' target='blank'>$name</a></td><td width='25%'><center>$passi</td><td><center>$id</td></tr>";
}
mysql_free_result($res);
?>
$startz und $endz sind wie folgt bestimmt:
PHP:
$nStart = !isset($_GET['start']) ? $start = 0 : $_GET['start'];
$z = 20;
$startz = ($nStart * $z);
$endz = $z * ($nStart+1);
Wo könnte denn bloß der Fehler liegen? Hab schon alles ausprobiert, und sämtliche FAQs und Threads durchgeblättert, aber da versteh ich Null von - bin halt noch n totaler Anfänger ^^"...
Würd mich sehr über Hilfe freuen
 
Probier mal Folgendes:
PHP:
<?php

	$offset = !isset($_GET['start']) ? 0 : abs(intval($_GET['start']));
	$rowCount = 20;

	$query = '
		SELECT
		        `id`,
		        `name`,
		        `passwort`
		  FROM
		        `anmeldung2`
		  LIMIT
		        '.$offset.', '.$rowCount.'
		';

	…

?>
 
Frag mal die Datensätze mit dem while- statt mit dem for-Kontrollstruktur ab:
PHP:
while( $row = mysql_fetch_assoc($result) ) {
	…
}
Die Datensätze stehen damit jeweils in der $row-Variable.
 
Ich weiß nicht, obs richtig ist; habs jetzt so eingebaut:

PHP:
<?
$offset = !isset($_GET['start']) ? 0 : intval($_GET['start']);
    $rowCount = 20;
    $query = "SELECT id, name, passwort FROM anmeldung2 LIMIT $offset, $rowCount" or die(mysql_error());
$res = mysql_query($query);
while($row = mysql_fetch_assoc($res))
{
     $name = mysql_result($row, $i, "name");
      $passi = mysql_result($row, $i, "passwort");
      $id  = mysql_result($row, $i, "id");
      echo "<tr><td width='50%'><center><a href='$id.php' target='blank'>$name</a></td><td width='25%'><center>$passi</td><td><center>$id</td></tr>";
} 
mysql_free_result($row);
?>

Aber jetzt ist mal wieder das "argument" falsch/leer/wasweißich...letztes Mal hab ichs noch hingekriegt, aber jetzt bin ich mir nicht mehr sicher, wo der Code falsch sein könnte.
Code:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0064899/test.php on line 68
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0064899/test.php on line 69
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /www/htdocs/w0064899/test.php on line 70
 
Der „or die(…)“-Zusatz sollte nach der Datenbankabfrage notiert werden und nicht nach der Abfragedefinition.
 
Zurück