Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Schleife beim Datenbankauslesen nutzen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Schleife beim Datenbankauslesen nutzen


 
Downline
05-04-2002, 20:55 
 
Hallo. Also ich habe folgendes Problem:
Ich möchte auf einer Seite verschiedene Daten ausgeben lassen.
Dazu lese ich eine Tabelle aus nach einem bestimmten String:
$sql = mysql_query("select id from Tabelle where kategorie='$was'");
$anzahl=mysql_num_rows($sql);
Nun möchte ich, wenn es z.B. 2 Ergebnisse gibt, die dem entsprechen, werte aus dieser Tabelle ausgeben lassen:
for ($x=1;$x<=$anzahl;$x++){
$uschrift=mysql_result($sql,$x,"uschrift");
$nname=mysql_result($sql,$x,"nname");
$vname=mysql_result($sql,$x,"vname");
usw.
Und dann soll er mir das ausgeben:
echo "<tr><td><center>$uschrift</font></td></tr>";
echo "<tr><td>$nname</font></td></tr>";
usw. }
Nur tut er das nicht und ich bekomme folgende Fehlermeldungen:

Warning: Unable to jump to row 1 on MySQL result index 2 in /homepages/6/d39910432/htdocs/eropay/lesen.php on line 15
Warning: Unable to jump to row 1 on MySQL result index 2 in /homepages/6/d39910432/htdocs/eropay/lesen.php on line 16
usw.
Das sind die Zeilen ab $uschrift=my.....
Ich hoffe Ihr könnt mir helfen. Danke im vorraus.

 
Titus
06-04-2002, 05:35 
 
Da du nur die id selectest, findet mySQL logischerweise die Felder uschrift, nname und vname nicht im result. Ersetze das "id" in select id from Tabelle where kategorie='$was' mal durch "*", dann sollte es funktionieren.

 
Downline
06-04-2002, 10:04 
 
Das habe ich auch schon probiert. Aber das funzt leider auch net. Da habe ich immernoch die Fehlermeldungen.

 
MelloPie
06-04-2002, 10:54 
 
Dein Problem liegt hier:
for ($x=1;$x<=$anzahl;$x++){

Mach mal folgendes:
for ($x=0;$x<$anzahl;$x++){

denn die Indexierung von Deinem $sql beginnt bei 0 und nicht bei 1.
Wenn Du als $anzahl zB 10 erhälst hört die Indexierung von $sql bei 9 auf, weil von 0-9 = 10 Datensätze.

 
hand
06-04-2002, 10:54 
 
<?php
function mysql_die($msg) {
echo "<b>$msg =&gt; mysql-error: ".mysql_errno().":".mysql_error()."</b><br>\n";
}

$db = "database";
$tabelle = "tabelle";
$verbindung = mysql_connect("host","user","password") or mysql_die("Keine SQL-Verbindung");
mysql_select_db($db, $verbindung) or mysql_die("Datenbank konnte nicht ausgewählt werden");

$query = "SELECT kategorie,count(kategorie) AS records FROM $tabelle where kategorie='$was' group by kategorie";

$result = mysql_db_query($db,$query,$verbindung) or mysql_die("Fehler im 1. Select");

echo "<table>";

while($row = mysql_fetch_assoc($result)) {
if ($row[records] > 1) {
$queryi = "select * from $tabelle where kategorie = $row[kategorie]'";
$resulti = mysql_db_query($db,$queryi,$verbindung) or mysql_die("Fehler im 2. Select");
while($rowi = mysql_fetch_assoc($resulti)) {
echo "<tr><td>$rowi[uschrift]&nbsp;</td></tr>";
echo "<tr><td>$rowi[nname]&nbsp;</td></tr>";
echo "<tr><td>$rowi[vname]&nbsp;</td></tr>";
echo "<tr><td>&nbsp;</td></tr>";
}
}
}
echo "</table>";
?>

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:39 Uhr.