Daten werden nich vollständig ausgelesen.

lordofscotland

Erfahrenes Mitglied
Hallo Community,

ich habe folgendes Problem.

Aus einer Datenbank (MySQL) sollen alle Datensätze einer bestimmten Artikel_ID ausgelesen und dann in einer Tabelle ausgegeben werden.

Dabei tritt folgendes Problem auf, ich habe für einen Artikel_ID Bereich 2 Datensätze in der Datenbank angelegt, doch ich bekomme nur einen, und zwar den letzten Datensatz ausgegeben.

Das ganze wird folgendermassen realisiert:

PHP:
include("dbconnect_inc.php");
$sql = "SELECT * FROM products WHERE $art_id = artikel_id";
$res = mysql_query($sql);
$anz = mysql_num_rows($res);
while ( $z = mysql_fetch_row($res))
 {
 print "
 <tr>
  <td rowspan=8>
  <a href='clothes_detail.php?artnr=$z[0]'>
  <img class=nav src=../bilder/shop/klein/$z[5].jpg>
  </a>
  </td>
  </tr>
  <tr>
  <td valign=top><b>Artikelnummer</b></td>
  <td valign=top><input type='Text' name='artnr' value='$z[2]' class=nummer readonly></td>
  </tr>
  <tr>
  <td valign=top><b>Beschreibung</b></td>
  <td valign=top>$z[3]<br>$z[4]</td>
  </tr>
  <tr>
  <td valign=top><b>Color</b></td>
  <td valign=top>$z[8]</td>
  </tr>
  <tr>
  <td valign=top><b>Preis</b></td>";
  printf ("<td valign=top><b>%.2f&nbsp;Euro</b></td>", $su = $z[7]);
  print"
  </tr>
  <tr>
  <td><b>Anzahl</b></td>
  <td><input maxlength='2' type=Text name='anzahl' class=menge></td>
  </tr>
  <tr>
  <td><input type=hidden name='art' value='$z[2]'></td>
  <td><input type=hidden name='art_id' value='$z[1]'></td>
  </tr>";

Nicht gleich sagen es fehlt die geschweifte Klammer, die fehlt aus dem Grund weil danach aus einer 2 Tabelle noch Daten hinzugefügt werden.

Das komplette Script lade ich mit hoch.


Vielen Dank für eure Hilfe
 

Anhänge

In dieser Schleife hast du noch einen Query.... diesen speicherst du ebenfalls in eine Variablen $res

Dadurch wird die ursprüngliche Variable überschrieben, was den Fehler verursachen dürfte.
 
Kleine Frage. Stimmt der Query so?
$sql = "SELECT * FROM products WHERE $art_id = artikel_id";
oder sollte dass
$sql = "SELECT * FROM products WHERE artikel_id = $art_id";
heißen?!
 
Die Variable $res ist so eingebuden das ich damit dann die Daten aus der DB holen kann. wenn diese löschen bekomme ich eine Fehlermeldung.

Ich hab eine Idee voran es liegen kann, ich nutze als Artikel_ID ein Zahl, z.B. für
Woman-Shirts die 10 und halt für Men-Shirts die 20, das es an der Zahl liegt kann?

Schönen Tag an alle
 
Zurück