Array als SQL anfrage?

PHP:
$query ="   SELECT
                         `pp4fposts`.`themeid`, `pp4ftheme`.`titel`
                      FROM
                         `pp4fposts`
                      LEFT JOIN
                         `pp4ftheme`
                      ON
                         `pp4ftheme`.`themeid` = `pp4fposts`.`themeid`";

Code:
ERROR 0: Zeile 2: Falsche Syntax in der Nähe von '`'.

hmm ka wo der liegen könnte
 
Bei mir funktioniert die Query wunderbar. Warscheinlich hast du ein Tippfehler drinn, z.B. titel anstelle von title oder sowas.
 
hab jetzt die ´ entfernt dann gings.

lol aber jetzt gibt er zwar alle Themen aus und die Beiträge die dazugehören.
Aber die Themen von bestimmten Haupthemen untergeordnet sind dürfen nicht alle ausgegeben werden.
Bei jedem Hauptthema wird eine ID mitgeschickt die zum prüfen mitgeschickt wird.

Bei meinem Beispiel die 0.

Ich hole also erst alle Themen IDs von der Tabelle Post, wo die Haupthemen ID 0 ist (alles in Post tabelle)
und dann vergleiche ich die geholte id mit der id im topic tabelle.

Wie mache ich dies dann? Irgendwie voll verwirrt sorry.
muss ja dann irgendwie so aussehen oder:
pp4fpost (post tabelle), pp4ftheme(topic tabelle)
Code:
 $query ="   SELECT
                         pp4fposts.themeid, pp4ftheme.themename, pp4fposts.maintheme
                      FROM
                         pp4fposts
                      LEFT JOIN
                         pp4ftheme
                      ON
                         pp4ftheme.themeid = pp4fposts.themeid"; 

und dann ka mehr

Ich weiß is blöd erklärt aber wenn ich ne Möglichkeit hätte würde ich die Tabellenstruktur einfacher machen, was mir leider nicht gestattet ist.
 
Zuletzt bearbeitet:
oder gibt es doch die möglichkeit, arrays in mysql zu verschicken.
ich komm ned weiter :-(

Also was mir gerade noch einfällt wäre, mehrere Selects zu verschachteln. Weil von oben mit dem Join bekomm ich das leider ned hin ;-)
 
Zuletzt bearbeitet:
Ich steig leider nich ganz durch deinen Tabellenaufbau. Kannst du den evtl. mal Posten, damit man sich da ein richtiges Bild von machen kann? ;)
 
Tabellenstruktur für Tabelle `pp4fposts`

Code:
CREATE TABLE pp4fposts (

  postid int(10) autoinkrement (by Wima)               # postid 
 
  datum date default NULL,                             # Hier kommt Datum rein

  pp4fid int(10) unsigned default NULL,                # Hauptforum

  themeid int(10) unsigned default NULL,               # ID von den jeweiligen Thema wo der Post reingehört

  post varchar(120) default NULL,                      # Der Post text selber

  usrpost varchar(20) default NULL,                    # Name des Users der gepostet hat--> Abookid

  usremail varchar(80) default NULL,                   # Email des Users der gepostet hat

  postdesc text,                                       # Überschrift -> mach des, desxl draus

  PRIMARY KEY (postid),                                # Primärschlüssel ist postid


)                      

 

Tabellenstruktur für Tabelle `themename`

CREATE TABLE pp4ftheme (                              

  themeid int(10) unsigned NOT NULL auto_increment,   # Tehmen ID (wird benötigt damit post weiß wo er rein muss)

  themename varchar(100) default NULL,                # Name des Themen Threads

  PRIMARY KEY (themeid)                               # Primärschlüssel

)
Die Tabelle hab ich so bekommen, darf noch keine selber machen bin in ausbidlung -,-

So am anfang kommt man in einem Forum mit Haupthemen die immer gleich sind. Klickt man auf das erste Thema, wird eine 0 mitgeschickt. Diese wird, wenn ein neues Thema dort erstellt wird zusätzlich in pp4fposts bei dem Hauptforum gesichert.

Ich bin nun soweit, dass ich alle in diesem Hauptforum gespeicherte Titel ausgeben will (ohne posts). Die posts sieht man erst wenn man auf den Titelnamen klickt.

Um aber den Titelnamen in diesem Hauptthema anzuzeigen, selektiere ich erstmal alle alle Themen IDs (bei pp4fposts) wo die Hauptforumsid gleich 0 ist (Weil ich grad das erste Thema programmiere und dies wie gesagt die id 0 hat.

Danach bekomme ich alle Themen IDs die in den Hauptthema 0 gehören und das sind jetzt bei mir drei.

So dann war ich bei meinem Probem, ich hatte drei IDs zu dem Thema und die wollte ich auswählen. Sprich ich will die selben IDs von pp4fthemes (davon den Titel eben) die gerade oben selektiert werden. Is ein kleines Labyrinth.


Oben hatten wir das ohne der null gemacht, sprich ich hatte alle Themen ausgeben, die in der Datenbank waren. Da ich aber gerade das erste feste thema mache (0) brauche ich nu die Themen IDs, wo beim Hauptforum pp4fid die null steht.
Damit habe ich die IDs und kann diese nun mit den gleichen selektieren von pp4ftheme. somit kann ich den Titelnamen ausgeben, weiß aber nicht wie ich das realisieren soll
 
Also ohne jetzt wirklich den Sinn dieses Tabellenaufbaus verstanden zu haben (wofür du ja anscheinend nichts kannst), denke ich, dass dieses SQL-Statement dir weiter hilft:
SQL:
SELECT
    pp4fposts.themeid, pp4ftheme.themename, pp4fposts.maintheme
    FROM
        pp4fposts
    LEFT JOIN
        pp4ftheme
        ON
            pp4ftheme.themeid = pp4fposts.themeid
    WHERE
        pp4fposts.pp4fid = 0 # <-- das musst du dann eben dem Fotum/Thema entsprechend anpassen, aber du sagtest ja gerade, dass es in dem Fall jetzt 0 ist
 
Ja genau das sollte funktionieren, bin selber nicht draufgekommen.
Ne leider, hätt ich ne andere Tabelle machen dürfen, wäre die weitaus Sinnvoller gewesen, weil diese hier erschwert unnötig die Arbeiten und ist sehr unkomfortabel.
 
Ohje schon hab ich das nächste Problem.

Nun will ich die Anzahl der Beiträge ausgeben, wo die Postid bei der Posttabelle gleich die Themenid der ThemenTabelle ist.

Zum Beispiel hat ein Thema die ID 9 und daneben will ich nur die Anzahl ausgeben wieviele Beiträge (Posts) sich in diesem Thema befinden. Das heißt ich muss zählen, wieviele Posts in dem Thema mit der ID 9 gespeichert sind.
Ich habs mit count probiert bei mir will der nicht. Bin leider in Mysql noch anfänger.
Hab mir auch http://www.little-idiot.de/mysql/mysql-169.html angekuckt, aber trotzdem krieg ich es ned hin. Kann mir noch einer Helfen bitte.

Muss auch nicht mit Count sein. Hauptsache ich bekomme die Anzahl der Beiträge in einem Thema raus (sprich Themen ID bei Posttabelle = Themen ID ThemenTabelle)

Vielen Herzlichen Dank
 
Zuletzt bearbeitet:
So nach langem hin und her und tutorials rumlesen hab ich die Lösung und es funtzt, falls jemand ineressiert hier:

select theme.themeid, theme.themename, count(post.themeid) anzahl
from pp4ftheme theme, pp4fposts post
where post.themeid = theme.themeid
group by theme.themeid, theme.themename

Hier wird Themenid + Thema + Anzahl der Beiträge ausgegeben.

Aber trotzdem danke
 
Zurück