Datenbankinhalt wird nicht ab ersten Eintrag angezeigt
Ramirez
- php
Hallo
ich komme mit meinem Script nicht weiter.
Der Fehler ist Providerunabhängig (tritt auf Seiten bei mehreren Providern auf!).
Wenn ich in eine Mysql4 Datenbank einen Datensatz eingebe, wird dieser nicht auf der PHP Seite angezeigt. Gebe ich nun einen zweiten Eintrag ein als Dummy, wird der erste Eintrag angezeigt aber nicht der zweite, gebe ich einen dritten Eintrag ein, werden nur die ersten beiden Einträge angezeigt usw. D.h. es wird immer ein Eintrag geschluckt.
Ich finde den Fehler leider nicht.
Kann mir bitte jemand mit mehr Erfahrung in diesem Bereich den Fehler in meinem Code zeigen?
Anbei der PHP Code:
<div class="content">
<h1>Termine</h1>
<?php
mysql_connect ("Servername","Anmeldename","Passwort");
mysql_select_db ("Database");
$query = "SELECT Anfangsdatum, Enddatum, Betreff, Anfangszeit, Endzeit, Ort, Link, Zusatz, Link2, Art
FROM Termine
WHERE 1 ORDER BY Anfangsdatum
ASC ";
$res = mysql_query( $query );
$dsatz = mysql_fetch_assoc($res);
?>
<table border="1">
<tr>
<th>Anfangsdatum</th>
<th>Enddatum</th>
<th>Thema / Inhalt</th>
<th>Anfang</th>
<th>Ende</th>
<th>Ort</th>
<th>Zusatz</th>
<th>Art</th>
</tr>
<?php
if ($res) {
while ($dsatz = mysql_fetch_assoc($res)) {
echo "<tr>";
echo "<td>" . date("d.m.y", strtotime($dsatz["Anfangsdatum"])). "</td>";
if ($dsatz ["Enddatum"]=="0000-00-00")
echo "<td>-</td>";
else
echo "<td>" . date("d.m.y", strtotime($dsatz ["Enddatum"])) . "</td>";
if ( empty ($dsatz ["Link"] ))
echo ' <td>' . $dsatz ["Betreff"] . '</td>';
else
echo ' <td><a href="' . $dsatz ["Link"] . '">' . $dsatz ["Betreff"] . '</a></td>';
if ($dsatz ["Anfangszeit"]=="00:00:00")
echo "<td>-</td>";
else
echo " <td>" . $dsatz ["Anfangszeit"] . "</td>";
if ($dsatz ["Endzeit"]=="00:00:00")
echo "<td>-</td>";
else
echo " <td>" . $dsatz ["Endzeit"] . "</td>";
echo " <td>" . $dsatz ["Ort"] . " </td>";
if ( empty ($dsatz ["Link2"] ))
echo ' <td>' . $dsatz ["Zusatz"] . '</td>';
else
echo ' <td><a href="' . $dsatz ["Link2"] . '">' . $dsatz ["Zusatz"] . '</a></td>';
if ( empty ($dsatz ["Art"] ))
echo ' <td>' - '</td>';
else
echo ' <td>' . $dsatz ["Art"] . '</td>';
echo "</tr>";
}
}
echo "</table>";
?>
</div>
</body>
</html>
Für die Hilfebemühungen im voraus besten Dank.
Rasputin
Hallo
formatiere mal deinen Quelltext bitte
So kann man es kaum lesen.
Was soll die Where Klausel?
WHERE 1 ORDER BY ...
Grusse
hawk
Hallo
formatiere mal deinen Quelltext bitte
So kann man es kaum lesen.Was soll die Where Klausel?
WHERE 1 ORDER BY ...Grusse
hawk
die sollte mir die rausgezogenen Spalten nach Anfangsdatum sortieren.
Ich habe das mal modifiziert:
$query = "SELECT Anfangsdatum, Enddatum, Betreff, Anfangszeit, Endzeit, Ort, Link, Zusatz, Link2, Art FROM Termine
ORDER BY Anfangsdatum
ASC ";
Ich habe in der Datenbanktabelle Termine 3 Einträge, angezeigt werden jedoch nur 2
Auf das Where 1 bin ich dadurch gekommen, dass die Datenbank das mir bei generierten Anfragen so angezeigt hat.
Danke schon mal für das erste Feedback
Ramirez Rasputin
Hello,
Auf das Where 1 bin ich dadurch gekommen, dass die Datenbank das mir bei generierten Anfragen so angezeigt hat.
das kann nur Bequemlichkeit sein. Ohne echte Bedingungen kann der WHERE-Teil entfallen.
Zu deinem eigentlichen Problem:
oberhalb der HTML-Tabelle hast du
$dsatz = mysql_fetch_assoc($res);
stehen, damit greifst du den ersten Satz ab. Weiter unten läuft deine Schleife, die nun logischerweise als nächstes den zweiten Satz abgreift - Den ersten Satz kriegst du nie zu sehen.
MfG
Rouven
»
Zu deinem eigentlichen Problem:
oberhalb der HTML-Tabelle hast du
$dsatz = mysql_fetch_assoc($res);
stehen, damit greifst du den ersten Satz ab. Weiter unten läuft deine Schleife, die nun logischerweise als nächstes den zweiten Satz abgreift - Den ersten Satz kriegst du nie zu sehen.MfG
Rouven
Hallo Rouven,
das erklärt einige.
D.h. ich muss immer einen Dummy Eintrag erstellen oder wie kann man das sauber lösen?
Ich lerne gerne dazu, wie man das besser lösen kann!
Danke im voraus
Ramirez Rasputin
Mahlzeit Ramirez,
D.h. ich muss immer einen Dummy Eintrag erstellen
Nein! Du solltest nicht Probleme durch neue Probleme verschleiern.
oder wie kann man das sauber lösen?
Indem Du die Ursache behebst - lass das erste $dsatz = mysql_fetch_assoc($res);
doch einfach weg! Wozu brauchst es überhaupt an dieser Stelle?
MfG,
EKKi
Danke Rouven
Danke Ekki
hat geholfen!
Läuft nun wunderbar!!!