Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » mal eine MySQL-Fehlermeldung - mal wieder nicht Antworten
mal eine MySQL-Fehlermeldung - mal wieder nicht

Beta-Tester
Pixelschubser


Beiträge: 22


Folgende beide Code-Fetzen machen letztlich dasselbe, sie unterscheiden sich nur in der Darstellungsform.

1.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15:
print "<table border=1>";
$result=mysql_query("SELECT `index`, `name` FROM t_firma ORDER BY `index`") OR die(mysql_error());
$y=0;
do{
$vnr=mysql_result($result,$y,0);
$vname=mysql_result($result,$y,1);
print "<tr><td><input type=\"radio\" name=\"firma\" ";
if ($y==0) {print "checked";}
print " value=\"".$vnr."\">".$vnr." ".$vname."</td></tr>";
$y++;
}
while (mysql_result($result,$y));
print "</table>";


2.
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12:
Print "Firma: <select name=\"firma\">";
$result=mysql_query("SELECT `index`, `name` FROM t_firma ORDER BY `index`") OR die(mysql_error());
$y=0;
do{
$vnr=mysql_result($result,$y,0);
$vname=mysql_result($result,$y,1);
print "<option>".$vnr." ".$vname."</option>";
$y++;
}
while (mysql_result($result,$y));


In der Datenbank sind aktuell 8 Firmen drin.

Allerdings bekomme ich im ersten Fall die Fehlermeldung:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 8 on MySQL result index 5 in C:\Programme\xampp\htdocs\dateiname.php on line 34

Im Zweiten Fall läuft die Sache ohne Fehlermeldung ab.

Woran liegt das?
Die Datenbankabfrage und die Abbruchbedingung der Schleife sind doch in beiden Fällen dieselben.




---
while ( time() < mktime(0,0,0,5,3,2006) )
{
echo "PHP-Depp";
}

Diese Nachricht wurde geändert von: Beta-Tester
  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


ich würds mit while-do machen, weil so auch wenn es kein Ergebnis gibt, vermutlich ein Durchlauf trotzdem läuft.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Beta-Tester
Pixelschubser


Beiträge: 22


Nunja, beide Versionen geben mir schon das gewünschte Ergebnis.

Nur bekomme ich bei der ersten Version (mein eigentlicher Favorit, da die Anzahl der darzustellenden Werte überschaubar ist und ich u.U. noch mehr Informationen zu jedem Datensatz bereitstellen will) halt zusätzlich noch diese nervige Fehlermeldung, dass er in Reihe 8 keinen Datensatz mehr findet. Ich kann's ihm ja auch nicht übel nehmen, immerhin ist dort ja auch wirklich kein Datensatz mehr.

Was mich nur wundert ist, dass er im Fall 2 keine solche Fehlermeldung bringt.

Ich werde es aber mal mit while - do probieren.


NACHTRAG:

Mit while - do sieht das Ergebnis leider identisch aus

error_reporting(0) ist ja nun auch keine sehr tolle Lösung - aber damit gehts


Nachtrag 2

Was deinen Einwand mit dem einen Durchlauf angeht, so ist dieser Aspekt mit Gelassenheit zu vernachlässigen, da das Vorhandensein mindestens eines Wertes Grundvoraussetzung für das ganze Programm ist. Ohne einen solchen Wert hätte das ganze Programm keinen Sinn.

---
while ( time() < mktime(0,0,0,5,3,2006) )
{
echo "PHP-Depp";
}

Diese Nachricht wurde geändert von: Beta-Tester
  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Moment, aber warum benutzt du nicht das übliche vorgehen mit mysql_fetch_assoc? Das ist doch viel kofortabler.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Beta-Tester
Pixelschubser


Beiträge: 22


Langsam bin ich dir was schuldig...


...mit mysql_fetch_assoc bin ich die blöde Fehlermeldung endlich los.

mysql_fetch_assoc hab ich bisher nie verwendet, da es von der Funktionalität von meiner bisher gewohnten Vorgehensweise nicht wesentlich abweicht.

Hier scheint es aber DIE Lösung zu sein.

Danke vielmals

---
while ( time() < mktime(0,0,0,5,3,2006) )
{
echo "PHP-Depp";
}

  Profil   E-Mail   Editieren   Zitieren

languitar
Foren-Team


Beiträge: 2795


Is doch viel komfortabler damit. Und am besten baust oder besorgst du dir mal ne eifnach MySQL-Klasse, weil dann bist du die ganzen nervigen Befehle los udn kannst alles per forearch machen.

---
Take a look here!
Lichtblick - Einblick - Ausblick

  Profil   E-Mail   Website   Editieren   Zitieren

Beta-Tester
Pixelschubser


Beiträge: 22


Na mit den Klassen wolln wir mal noch ein bissel mit warten.

Ich hab jahrelang "nur" strukturiert programmiert (8Bit-Maschine, Pascal, C, den üblichen Basic-Käse, etc..), dann aus Zeitgründen (Job, Familie, andere Hobbys, etc..) ewig gar nicht mehr. Höchstens mal ein paar stümperhafte Zeilen HTML für meine eigene HP. In meiner zweiten Ausbildung (bis vor nem halben Jahr) wurde ich dann ins kalte Wasser der Objektorientierung geworfen worden. Mit grausamer Gewalt, wie ich anmerken möchte!
Hab davon bis heute nur die Hälfte verstanden und davon 90% wieder vergessen.
Ich glaub, ich bleibe bei meinem Spaghetti-Code - da sehe ich wenigstens durch.

Mit einer Anfrage aus der Bekanntschaft, ob ich nicht mal ne Webseite machen kann, hab ich erst vor wenigen Wochen wieder Blut geleckt. Und prompt hab ich zwei kleine Projekte am Hals, die zwar riesig Spass machen, aber im Detail hänge ich immer wieder an zumeist mangelnden PHP-Kenntnissen.

Dafür alles Hardcore im gewöhnlichen Text-Editor. Irgendwie muss mann's ja lernen.

---
while ( time() < mktime(0,0,0,5,3,2006) )
{
echo "PHP-Depp";
}

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Nach oben