PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Alle Datensätze einer Tabelle ausgeben!


JoeJoeMaker
26.01.2004, 16:46:23
Hallo! Wie kann ich alle Datensätze einer Tabelle nach der Reihe ausgeben, ohne immer schreiben zu muessen:


$abfrage="SELECT * FROM boards WHERE id=1";
$abfrage="SELECT * FROM boards WHERE id=2";

Alle Datensätze sind durch die ID einzelnd ansprechbar.
Ich hatte das so versucht, aber dabei hab ich immer eine Fehlermeldung erhalten:


<?php
$text =
"<tr><td></td><td style="width=220px"><font size="2" color="white" face="Arial"><b><a href="forum3.php?board=$name2">$name2<br></A><font size="1">$erklaerung2</td><td><font size="1" color="white" face="Arial"><b>$titel3</b><br><font size="1">$time - $uhrzeit Uhr von: <a href="profil.php?nick=$themenstarter&pass=$pass">$themenstarter</a></td></tr>";

for($zahl = 1; $zahl < $id1; $zahl++) ($id1 wurde vorher festgelegt)
{
$abfrage1 = "SELECT * FROM boards WHERE id='$zahl'";
$ergebnis1 = mysql_query($abfrage1);
while($row1 = mysql_fetch_array($ergebnis1))
{
$id2 = $row1->id; $name2 = $row1->BoardName; $erklaerung2 = $row1->BordErklaerung;$themen2 = $row1->Themen;
}
$abfrage = "SELECT * FROM forum WHERE Sortierung LIKE '$name2'";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$id = $row->id; $titel = $row->Titel; $datum = $row->Datum; $autor = $row->Autor; $beitraege = $row->Beitraege; $themenstarter = $row->Themenstarter; $sortierung = $row->Sortierung; $untersortierung = $row->UnterSortierung;$themen = $row->Themen;$artikel = $row->Artikel;$pass = $row->Pass;
}
$time = date('d.m.Y',$datum);
$uhrzeit = date('H:i',$datum);
$titel1 = strlen($titel);
$titel2 = substr($titel, 0, 12);
if($titel1 > 15)
{
$titel3 = "$titel2 ...";
}
else
{
$titel3 = $titel;
}
echo $text;
}
}
?>

c4
26.01.2004, 16:52:12
Dafür gibt's ORDER BY

SELECT *
FROM tabelle
WHERE irgendwas='das'
ORDER BY id ASC

ASC - Aufsteigend
DESC - Absteigend

JoeJoeMaker
26.01.2004, 17:07:46
Ich glaube das Problem ist bei dir if abfrage in der While Abfrage, kann mir jemand da mal ein Tipp geben?

c4
26.01.2004, 17:13:11
Original geschrieben von JoeJoeMaker
Ich glaube das Problem ist bei dir if abfrage in der While Abfrage, kann mir jemand da mal ein Tipp geben? Einerseits gibt es keine if-Schleifen, andererseits wolltest du doch bloß wissen, wie du deine Datensätze sortiert ausgeben lassen kannst, richtig?
Was der ganze Code bedeuten will weiß ich nicht, ist auch egal, wenn lediglich 'andererseits' deine Frage war/ist.

Was sich gut macht ist, wenn du im Forum [ php] <?php ... ?> [ /php] nutzt (ohne Leerzeichen)

JoeJoeMaker
26.01.2004, 17:23:02
Ach mann Ich will einfach alles aus einer Tabelle ausgeben, aber in einer bestimmten Form, die die Variable $text enthält.

c4
26.01.2004, 17:49:06
Ach so! $text soll als Vorlage dienen?
Dann darfst du $text nicht am Anfang definieren, sondern musst es vor dem echo $text; immer wieder neu definieren. Vorher kennt er doch all die Variablen, die du in $text angibst noch nicht.

Alles klarofix?

JoeJoeMaker
26.01.2004, 17:55:16
Was ist dann hierran falsch:


<?php
$zahl = "1";
$abfrage2 = "SELECT * FROM boards";
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2))
{
$id1 = $row2->id; $name1 = $row2->BoardName; $erklaerung1 = $row2->BordErklaerung;$themen1 = $row2->Themen;
}



while($zahl < $id1)
{
$abfrage1 = "SELECT * FROM boards WHERE id='$zahl'";
$ergebnis1 = mysql_query($abfrage1);
$row1 = mysql_fetch_array($ergebnis1);
$id2 = $row['id']; $name2 = $row['BoardName']; $erklaerung2 = $row['BoardErklaerung'];$themen2 = $row['Themen'];
$abfrage = "SELECT * FROM forum WHERE Sortierung LIKE '$name2'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_array($ergebnis);
$id = $row['id']; $titel = $row['Titel']; $datum = $row['Datum']; $autor = $row['Autor']; $beitraege = $row['Beitraege'];

$themenstarter = $row['Themenstarter']; $sortierung = $row['Sortierung']; $untersortierung = $row['UnterSortierung'];$themen

= $row['Themen'];$artikel = $row['Artikel'];$pass = $row['Pass'];
$text =
"<tr><td></td><td style="width=220px"><font size="2" color="white" face="Arial"><b><a

href="forum3.php?board=$name2">$name2<br></A><font size="1">$erklaerung2</td><td><font size="1" color="white"

face="Arial"><b>$titel3</b><br><font size="1">$time - $uhrzeit Uhr von: <a

href="profil.php?nick=$themenstarter&pass=$pass">$themenstarter</a></td></tr>";
echo $text;
$zahl++
}

c4
26.01.2004, 17:58:19
Wäre ausgesprochen fein, wenn du noch sagst WAS nicht funktioniert. Welche Fehlermeldungen, usw.

Ein Fehler ist schon mal das:$row1 = mysql_fetch_array($ergebnis1);
$id2 = $row['id']; Du speicherst die Daten in $row1, rufst aber nur $row auf.

JoeJoeMaker
26.01.2004, 18:04:33
War zwar ein dummer Fehler, aber triotzdem kommt immer noch diese Fehlermeldung:


Parse error: parse error in /var/www/web1519/html/forum1.php on line 27

c4
26.01.2004, 18:09:15
Parse error: parse error in /var/www/web1519/html/forum1.php on line 27 Zeile 27 ist welche...?

JoeJoeMaker
26.01.2004, 18:15:39
Die Zeile mit der Variablen $text;

c4
26.01.2004, 18:26:13
// so
$text = "...";

// statt so
$text =
"..."; Vielleicht hilft es.

JoeJoeMaker
26.01.2004, 18:29:21
Line 27 ist dieses hier von der Variablen:


$text = "...
href="forum3.php?board=$name2">$name2<br></A><font size="1">$erklaerung2</td><td><font size="1" color="white"

c4
26.01.2004, 18:33:40
Sag das doch gleich.

Ich habe trotzdem keine Ahnung, wo den sein Problem ist.
Vermutlich ist die Ursache weiter oben zu finden, aber erstens sieht es dort chaotisch aus und zweitens habe ich nix entdeckt.

JoeJoeMaker
26.01.2004, 18:34:49
Ja dann gebt mir eine andere Möglichkeit das auszugeben

c4
26.01.2004, 18:42:51
Nein.


Ich habe dein Skript mal in eine ansehnliche Form gebracht:

<?php
$zahl = 1;
$abfrage2 = 'SELECT * FROM boards';
$ergebnis2 = mysql_query($abfrage2);
while($row2 = mysql_fetch_object($ergebnis2)) {
$id1 = $row2->id;
$name1 = $row2->BoardName;
$erklaerung1 = $row2->BordErklaerung;
$themen1 = $row2->Themen;
}

while($zahl < $id1) {
$abfrage1 = "SELECT * FROM boards WHERE id='$zahl'";
$ergebnis1 = mysql_query($abfrage1);
$row1 = mysql_fetch_assoc($ergebnis1);
$id2 = $row['id'];
$name2 = $row['BoardName'];
$erklaerung2 = $row['BoardErklaerung'];
$themen2 = $row['Themen'];

$abfrage = "SELECT * FROM forum WHERE Sortierung LIKE '$name2'";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_assoc($ergebnis);
$id = $row['id'];
$titel = $row['Titel'];
$datum = $row['Datum'];
$autor = $row['Autor'];
$beitraege = $row['Beitraege'];
$themenstarter = $row['Themenstarter'];
$sortierung = $row['Sortierung'];
$untersortierung = $row['UnterSortierung'];
$themen = $row['Themen'];
$artikel = $row['Artikel'];
$pass = $row['Pass'];
?>
<tr>
<td></td>
<td style='width=220px'>
<font size='2' color='white' face='Arial'><b>
<a href='forum3.php?board=<?php echo $name2; ?>'><?php echo $name2; ?></a><br>
<font size='1'><?php echo $erklaerung2; ?>
</td>
<td>
<font size='1' color='white' face='Arial'><b><?php echo $titel3; ?></b><br>
<font size='1'><?php echo $time; ?> - <?php echo $uhrzeit; ?> Uhr von:
<a href='profil.php?nick=<?php echo $themenstarter; ?>&pass=<?php echo $pass; ?>'><?php echo $themenstarter; ?></a>
</td>
</tr>
<?php
$zahl++;
}

Das fügst du so ein, wie es hier steht. Dann will ich wieder wissen, in welcher Zeile der Fehler auftritt.

JoeJoeMaker
26.01.2004, 18:57:22
arg jetzt hab ich zwar kein Fehler mehr , aber jetzt wird auch nicht mehr angezeigt. connect zur Datenbank hatte ich noch eingefügt und aus dem zweiten $row auch $row1 gemacht, aber trotzdem!

JoeJoeMaker
26.01.2004, 19:02:53
Ich habs das muss mysql_fetch_array heißen!!!


THX to ALL und am meisten zu c4 *g*

c4
26.01.2004, 19:10:34
Original geschrieben von JoeJoeMaker
Ich habs das muss mysql_fetch_array heißen!!! Diese Lösung verwundert mich, aber egal.

Keine Ursache.

JoeJoeMaker
26.01.2004, 19:17:48
Naja klappt aber! Who cares. THX nochmal