[PHP & MySQL] Ausgabe klappt nicht

Leila
Ich lass es mal ohne große Worte:

"Geschrieben am 1.1.1970"

Mit den EInträgen in der DB sollte 1 Datensatz gefunden werden.
Die %, weil in pferde auch mal mehrere Namen stehen können.

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
<?
 include('/users/rge/www/yashiko/seiten/db.php');
 $protokolle = "SELECT * FROM `berichte` WHERE pferde LIKE '%Taki%' ORDER BY datum DESC";
 $bla3 = mysql_query($protokolle);
 if (@mysql_num_rows($bla3) == 0)
  {
 echo "Für Takima wurden bislang keine Protokolle geschrieben";
  }
 else
  {
  while ($row = mysql_fetch_assoc($bla3));
   {
   echo "
  <div style='width='70%; border:1px solid #7c0002;'>
   <h3>$row[titel]</h3>
   $row[text]<p/>
   <i>Geschrieben am ".date("d.m.Y",$row[datum])."</i>
  </div><p/>";
   }
  }
 mysql_close();
?>
Drops
Wird sonst nichts ausgegeben oder ist alles bis auf das falsche Datum in Ordnung? smile
Leila
sonst nix, anders gesagt, alle auszugebenen Werte sind leer.
Oli
Hi,

ich kann zwar so grad nicht sehen, was da falsch ist, aber vielleicht hilfts: Das "Geschrieben am 1.1.1970" bedeutet, dass auch hier nichts ausgegeben wird - der UNIX-Timestamp 0 entspricht genau diesem Datum.

php:
1:
date("d.m.Y",$row[datum])

$row["datum"] ist also leer (keine Ausgabe) und wird, weil eine Zahl benötigt wird, zu 0 konvertiert.

Eventuell mal diese Zeile unter mysql_query einfügen:
php:
1:
echo mysql_error();
Dann kriegst du zumindenst eine Fehlermeldung, falls der Query fehlschlägt. Außerdem würde ich das @ vor mysql_num_rows() rausnehmen, das unterbindet nämlich eine eventuelle Fehlermeldung an dieser Stelle...

LG
Leila
Ich sag ja, alle auszugebenden Werte sind leer Augenzwinkern

mysql_error spuckt auch nix aus
Oli
Heißen die Felder in der Datenbanktabelle auch tatsächlich "datum", "titel" und "text" in dieser Schreibweise? Groß-/Kleinschreibung würde einen Unterschied machen.

Übrigens hier hab ich einen Fehler gefunden, der kann aber nichts mit den fehlenden Werten zutun haben:
code:
1:
2:
style='width='70%; border:1px solid #7c0002;'
             ^-- einfaches Anführungszeichen zuviel


Probier doch mal folgende Änderung:
php:
1:
2:
3:
4:
while ($row mysql_fetch_assoc($bla3));
   {
  echo "<pre>".print_r($row,true)."</pre>";
   }


Das sollte dir das komplette Array $row ausgeben, mal sehen was da drin ist ... Poste dann bitte mal die Ausgabe Augenzwinkern .

Edit: Tippfehler
Leila
argh, man sieht oft die kleinsten Dinge nicht, selbst wenn 4 Leute draufschauen...
Semikolon hinter der Anweisung der while-Schleife, hab ich aber auch nur entdeckt, weil ich dahinter ansetzen wollte das von dir vorgeschlagene einzubauen.

kann zu