JoelH Geschrieben 2. Juli 2001 Teilen Geschrieben 2. Juli 2001 hmmm, irgendwie viel mir kein besser Topictitel ein, also folgendes Problem : Ich bin dabei ein kleine Bulletin Board zu coden um ein bischen php und mysql zu üben und nun stehe ich vor einem kleinen Problem das ich zwar umständlich selber lösen kann aber mich frage ob es nicht einfacher geht, also ich habe zwei Tabellen, in einer stehen die topicbeiträge drin und eine da stehen die Usernamen/pseudonyme/etc. drin. $query = "CREATE TABLE user (erstellerid INT not null AUTO_INCREMENT, username VARCHAR (50) not null , pseudonym VARCHAR (15) not null , email VARCHAR (35) not null , homepage VARCHAR (40) , passwort VARCHAR (10) not null , status INT DEFAULT '1' not null , PRIMARY KEY (erstellerid), UNIQUE (pseudonym))"; Dies ist die Usertabelle. $query = "CREATE TABLE topicbeitraege (tid INT NOT NULL, eid INT NOT NULL AUTO_INCREMENT PRIMARY KEY, beitrag TEXT NOT NULL, erstellerid INT NOT NULL, datum DATE NOT NULL, uhrzeit TIME NOT NULL)"; Dies ist die Topicbeitraegetabelle So und nun möchte ich mit zum beispiel alle Topicbeiträge ausgeben lassen die tid (topicid) 1 haben. SELECT * from topicbeitraege WHERE tid = 1 ; wenn ich dies nun mit der der phpschleife if ($db) { mysql_select_db($dbname,$db); $query = 'SELECT * FROM topicbeitreage WHERE tid = 1'; $result = mysql_query($query,$db); if ($result) { $number = mysql_num_rows($result); echo '<br><br>'; echo '<TABLE BORDER=1>'; while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { echo '<tr><td>'; echo implode('<td>',$row); echo '</tr>'; } echo '</TABLE>'; } alles ausgebe dann wird ja die erstellerid ausgegeben, was aber nicht so schön ist denn ich will ja eigentlich das pseudonym in der Liste haben, da die erstellerid ja der Primary Key der Usertabelle ist wollte ich mal fragen ob man dies direkt von SQL oder php ersetzen lassen kann, also ein SQL query der direkt anhand der erstellerid das pseudonym ermittelt und es anstatt der erstellerid ausgibt. Denn das wäre dann recht komfortabel. Meine Methode ist es nämlich zuerst die ganzen topics raus zu suchen, aus diesen dann die erstellerid's raus zu suchen und diese dann in der Usertabelle abzufragen und auszugeben, das sind dann massenhaft SQL Abfragen und das belastet dann doch die Datenbank wenn die Topics eine gewisse länge haben. Also gibts da was, ich hoffe ich hab mein Problem klar dagelegt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kandi_44 Geschrieben 2. Juli 2001 Teilen Geschrieben 2. Juli 2001 SELECT tb.*, us.username from topicbeitraege tb, user us WHERE tb.tid = 1 AND tb.erstellerid = us.erstellerid; die abfrage bringt dir deinen gewünschten effekt. einfach die beiden tabellen nach FROM schreiben us und tb sind hierbei nur alias-namen weil in beiden tabellen erstellerid vor kommt mfg andi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
JoelH Geschrieben 2. Juli 2001 Autor Teilen Geschrieben 2. Juli 2001 wow, danke , da wäre ich nie drauf gekommen glaub ich. Was ich nicht ganz gepeilt hab ist das tb.* was bedeutet das ? das alle spalten der tb Tabelle angezeigt werden ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kandi_44 Geschrieben 3. Juli 2001 Teilen Geschrieben 3. Juli 2001 jepp so isses.... mfg andi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.