Ich habe schon nachgesehen, eigentlich erscheint es für mich logisch in der Tabelle answers die Datensätze abzufragen die die gleich Topic-ID haben, da die dann alle zu einem Thread gehören. Und das habe ich da ja auch gemacht. Och mensch, ich weiß nicht weiter und hinke nur noch mit der Sache hinterher. Kann mir keiner einene kleinen Gedankenstoß geben?
[Datensätze zählen] Wo ist der Fehler..?
Einklappen
X
-
Hat denn keiner sowas gemacht?
Ich meine, es geht hier nur um einen logischen Fehler, also will ich ja nur die Logik, die sich dahinter verbirgt wissen. Das wäre echt supernett, weil das ist mir momentan ein Dorn im Auge.Vielleicht kann Martin Mayer sich ja dazu äussern, wie er das gemacht hat!? Wäre echt schön.
Dankbar für jegliche Art von Antwort,
Alex
Kommentar
-
prinzip.....
Code:alle threads auflisten. -> thread-id ist damit bekannt. schleife { jeden thread ausgeben unterabfrage nach allen posts für oben bekannte thread.id schleife { ausgabe der posts } // oder eben unterabfrage nur mit count für die anzahl machen. }
INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
Danke Abraxax, habe ich mir so hingebastelt.
Jedoch sagt er immer noch Fehler in der Abfragenzeile (2. Abfrage in der 2. while Schleife). Langsam vergeht mir der Spaß!
Was mache ich denn jetzt wieder falsch...
PHP-Code:<?
//Herstellen der MySQL verbindung
include("db_connect.php");
$sql = "select * from threads where fid=".$_GET["fid"];
$res = mysql_query($sql) or die(mysql_error());
echo '<p><a href="index.php?go=newthread&fid='.$_GET['fid'].'"><img src="images/new_thread.gif" border="0"></a></p>';
while($row = mysql_fetch_object($res))
{
echo "<tr><td bgcolor='#A9AAAB' width='550' class='rahmen'>";
echo "<font class='schwarz'>» <a href='index.php?go=showanswers&fid=".$row->fid."&tid=".$row->id."'>";
echo $row->topic."</a></td><td bgcolor='#A9AAAB' width='100' class='rahmen' align='center'>";
while($row = mysql_fetch_object($res2))
{
$sql2 = "SELECT * FROM answers WHERE tid=".$row->tid."";
$res2 = mysql_ fetch_object($sql2) or die(mysql_error());
echo "<font class='schwarz'>";
echo ''.mysql_num_rows($res2).'';
echo "</td>";
}
}
?>
Kommentar
-
wenn du nur die anzahl ausgeben willst, kannst du das bestimmt auch anders machen. und zwar in nur einer abfrage...
wenn das feld tid in beiden tabellen vorhanden ist, kannst du beide tabellen verbinden.
PHP-Code:$sql = "SELECT T.tid ThreadId,
T.topic,
COUNT(A.tid) Posts
FROM threads T
LEFT OUTER JOIN answers A USING (tid)
WHERE T.fid=".$_GET['fid']."
GROUP BY T.tid, T.topic";
Zuletzt geändert von Abraxax; 15.07.2003, 15:24.INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
Also ich verstehe zwar ein bisschen SQL , aber das ist dann doch nur für Freaks . Ich habe deins eingebaut in der Hoffnung es zum laufen zu bekommen. Jetzt bekomme ich ne Meldung mit unexpected T_String...
Naja ok, können wir das nicht mit der 2 SChleifen Variante machen? Das wäre für mich übersichtlicher und verständlicher
Kommentar
-
Naja ok, können wir das nicht mit der 2 SChleifen Variante machen? Das wäre für mich übersichtlicher und verständlicher
zeige mal ein wenig code von dir. auch zeige mir mal, wo genau der fehler kommt.
teste die query mal so im phpmyadmin und gibt im eine fixe fid.INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
ja. einfach malCode:$sql = "SELECT T.tid ThreadId, T.topic, COUNT(A.tid) Posts FROM threads T LEFT OUTER JOIN answers A USING (tid) WHERE T.fid=1 GROUP BY T.tid, T.topic
INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
habe den fehler gefunden.....
da war ein " zu wenig nach GROUP BY T.tid, T.topic
jetzt sollte es passen....INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
PHP-Code:<table border="0" cellpadding="3" cellspacing="5" width="650" height="100%" align="center" class="table">
<tr>
<td bgcolor="#424447" width="550" class="rahmen"><b><font class='weiss'>Geöffnete Threads:</b></font></td>
<td bgcolor="#424447" width="100" class="rahmen"><b><font class='weiss'>Beiträge:</b></font></td>
</tr>
<?
//Herstellen der MySQL verbindung
include("db_connect.php");
$sql = "select * from threads where fid=".$_GET["fid"];
$res = mysql_query($sql) or die(mysql_error()); //Herauslesen der Threads, die in dem Forum stehen
echo '<p><a href="index.php?go=newthread&fid='.$_GET['fid'].'"><img src="images/new_thread.gif" border="0"></a></p>';
while($row = mysql_fetch_object($res))
{
echo "<tr><td bgcolor='#A9AAAB' width='550' class='rahmen'>";
echo "<font class='schwarz'>» <a href='index.php?go=showanswers&fid=".$row->fid."&tid=".$row->id."'>";
echo $row->topic."</a></td><td bgcolor='#A9AAAB' width='100' class='rahmen' align='center'>";
while($row = mysql_fetch_object($res2))
{
$sql2 = "SELECT T.tid ThreadId,
T.topic,
COUNT(A.tid) Posts
FROM threads T
LEFT OUTER JOIN answers A USING (tid)
WHERE T.fid=".$_GET['fid']."
GROUP BY T.tid, T.topic";
$res2 = mysql_ fetch_object($sql2) or die(mysql_error());
echo "<font class='schwarz'>";
echo ''.mysql_num_rows($res2).'';
echo "</td>";
}
}
?>
</tr>
<tr>
<td height="50">
</tr>
</table>
SQL ABFRAGE via PHPmyAdmin mache ich zwischenzeitig...
Kommentar
-
mache mal noch das vergessene " rein. dann sollte es passen....
und deine zwei schleifen kannst du knicken. du hast jetzt NUR eine abfrage.INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
-
Ich sehe gerade , meine Tabelle Threads hat gar kein $tid Feldnamen, wie denn auch...
--------------------------------------
EDIT:
$tid....nicht $fid, hatte mich verschriebenZuletzt geändert von chickendeath; 15.07.2003, 15:30.
Kommentar
-
ALTER CODE:
PHP-Code:<table border="0" cellpadding="3" cellspacing="5" width="650" height="100%" align="center" class="table">
<tr>
<td bgcolor="#424447" width="550" class="rahmen"><b><font class='weiss'>Geöffnete Threads:</b></font></td>
<td bgcolor="#424447" width="100" class="rahmen"><b><font class='weiss'>Beiträge:</b></font></td>
</tr>
<?
//Herstellen der MySQL verbindung
include("db_connect.php");
$sql = "select * from threads where fid=".$_GET["fid"];
$res = mysql_query($sql) or die(mysql_error()); //Herauslesen der Threads, die in dem Forum stehen
echo '<p><a href="index.php?go=newthread&fid='.$_GET['fid'].'"><img src="images/new_thread.gif" border="0"></a></p>';
while($row = mysql_fetch_object($res))
{
echo "<tr><td bgcolor='#A9AAAB' width='550' class='rahmen'>";
echo "<font class='schwarz'>» <a href='index.php?go=showanswers&fid=".$row->fid."&tid=".$row->id."'>";
echo $row->topic."</a></td><td bgcolor='#A9AAAB' width='100' class='rahmen' align='center'>";
while($row = mysql_fetch_object($res2))
{
$sql2 = "SELECT * FROM answers WHERE tid=".$row->tid."";
$res2 = mysql_ fetch_object($sql2) or die(mysql_error());
echo "<font class='schwarz'>";
echo ''.mysql_num_rows($res2).'';
echo "</td>";
}
}
?>
</tr>
<tr>
<td height="50">
</tr>
</table>
Sory für den Aufwand den ich dir bereite!
Kommentar
-
die tabelle threads hat doch das feld fid...
$sql = "select * from threads where fid=".$_GET["fid"];INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |
Kommentar
Kommentar