Unable to jump to row 0?

B

ByeBye 8492

Was soll diese Fehler meldung?
Warning: Unable to jump to row 0 on MySQL result index 2 in f:\www\design\newsbb.php on line 13

Warning: Unable to jump to row 0 on MySQL result index 2 in f:\www\design\newsbb.php on line 14


bei diesem Quellcode:
<html>
<body>
<?php

$db = mysql_connect();

$sqlab= "select *from news where datum = $auswahl";

$res = mysql_db_query("news", $sqlab);

$num = mysql_num_rows($res);

$alttt = mysql_result($res, 0, "titel");
$alttx = mysql_result($res, 0, "text");


echo "Verändern der News jetzt möglich!";
echo "<form action='newsbc.php' method='post'>";
echo "<select name='neuicon'><option value='froh'>Froh<option value='traurig'>Traurig<option value='achtung'>Achtung<option value='suspekt'>Suspekt</select><br><br>";

echo "<table border=1 color='#000000' cellspacing='0' cellpadding='0'>";
echo "<tr><td>Titel:</td><td><input type='text' value='$alttt' name='neutt' maxlength='50' size='50' ></td></tr>";
echo "<tr><td>Text:</td><td><textarea value='alttx' name='neutx' rows='5' cols='30' maxlength='30'></textarea></td></tr></table>";

echo "<input type='hidden' name='oridate' value='$auswahl'>";
echo "<input type='submit'>";
echo "<input type='reset'>";
echo "</form>";

mysql_close($db);
?>
</body>
</html>
 
hmm,

für mich sieht das so aus als ob du garnicht zur DB konektest da du im mysql_connect keine angaben gemacht hast, dadurch kommt keine Zeile Ergebniszeile 0 zurück aus der Datenbank und der Fehler entsteht.
 
mmh in meinen Bisherigen MYSQL Scripts hat es immer ausgereicht so wie ich es da geschrieben hatte, ist ja auch noch nicht auf Server sondenr nur Localhost
 
$sqlab= "select *from news where datum = $auswahl";

muss so sein

$sqlab= "select * from news where datum = '$auswahl'";

dann hast Du hier..

$alttt = mysql_result($res, 0, "titel");
$alttx = mysql_result($res, 0, "text");

macht man dieses nicht normalerweise nur bei sum und count (?) ..also select count(x) AS titel , sum(y) AS text from bla....

die frage ist, was Du mit deiner abfrage fuer ein result haben moechtest? notfalls funktioniert auch mysql_num_rows was du ja schon benutzt hast..
 
nur mal so ne generelle sache zu der fehlermeldung:

diese fehlermeldung taucht immer dann auf, wenn man durch einen befehl verscuht, auf eine nicht erfolgreiche/leere/falsche anfrage an die datenbank zuzugreifen......

dies geschiet immer dann, wenn ein $result mal keinen datensatz enthält, oder der query sogar fehlerhaft war und man dann trotzdem darauf zugreifen will.....
befehle, die dies tun sind z.b.
$row = mysql_fetch_array($result);
$nick = mysql_result($result,0,'nick');
diese befehle versuche direkt auf eventuell nciht vorhandere datensätze zuzugreifen und ergeben daher eine fehlermeldung.....

man kann sich aber einen kleinen schutz einbauen.....

kleines beispiel:
man speichert bei einem thread die user_id des poster uns will dann bei der ausgabe den nick über die id herausbekommen.....
man würde also folgenden wuery ahben:
PHP:
$result = mysql_query('select nick from user where user_id="'.$user_id.'"');
$nick = mysql_result($result,0,'nick');
  //oder
$row = mysql_fetch_array($result);
$nick = $row['nick'];

wenn jetzt aber der user gelöscht wurde werden wir die bekannte fehlermeldung erhalten......
deshalb baut man hier einfach ne kleine abfrage ein:
PHP:
$result = mysql_query('select nick from user where user_id="'.$user_id.'"');
if(mysql_num_rows($result)>0) $nick ) mysql_result($result,0,'nick');
else $nick = 'NA';

hoffe, das hat dich überhapt interessiert:)

//bad taste

/ach ja sorry für alle rechtschreibfehler...is spät......
 

Neue Beiträge

Zurück