Datenbank mit 2 Tabellen

cris-the-best

Erfahrenes Mitglied
Hi,

ich versuche aus dem Seredipity Blog einzelne Elemente selber auszulesen.

ich habe die beiden Tabellen:

in der Tabelle "seredipity_entrycat" gibt es "ID" und "categoryid"
in der tabelle "seredipity_entries" gibt es alles vom "title" zum "body" und so weiter

da ich nicht alle Einträge haben will sonder nur die in einer bestimmten Kategorie und davon nur den "title" weiss ich keinen lösungsweg.

Das ich nur die ID nummer für die Einträge bekomme die in meiner gewollten Kategorie sind hab ich mir zum anzeigen so gelöst wie kann ich diese ID weiter geben an die 2. Tabelle? Bezw. Wie kann ich sagen nur alle die in "seredipity_entrycat" ein 1 haben sollen in "seredipity_entries" mir den Title zeigen?

Code:
                <?php include 'include/config.inc.php'; 
mysql_connect($host, $user, $pass);
mysql_select_db($db);
$sql = "SELECT * FROM seredipity_entrycat WHERE categoryid = '1' ";
if (!$res_id = mysql_query($sql))
die ('fehler! SQL BEFEHL IST FALSCH.');
while ($ausgabe = mysql_fetch_array($res_id))

{
echo "".$ausgabe['entryid']."";
  }
?>

Danke für jeden tipp (bin noch ein super php neuling)
 
Hallo,

ich bin zwar da jetzt auch kein Profi, aber bis jetzt habe ich noch alle meine Selects hin bekommen.

Ich bin sicher irgendjemand wird mich schon korrigieren wenn ich falsch liege.

Ich nehme mal an in der zweiten Tabelle steht noch zu welcher Kategorie es gehört.

Code:
SELECT seredipity_entrycat.id, seredipity_entrycat.categoryid, seredipity_entries.title seredipity_entries.body seredipity_entries.categoryid FROM seredipity_entries, seredipity_entrycat WHERE seredipity_entrycat.categoryid=seredipity_entries.categoryid AND seredipity_entrycat=234

Irgendwie so...und schau dir bitte auch noch Inner JOIN an, ich denke damit sollte es auch gehen.

Code:
SELECT seredipity_entrycat INNER JOIN seredipity_entries ON seredipity_entries.categoryid=seredipity_entrycat.categoryid

Da sind aber sicher tausende Fehler, und wie gesagt wird dir das irgendjemand besser erklären oder mich ausbessern.

Hoffe dennoch dass ich dir helfen konnte.

lg Darian
 
Zuletzt bearbeitet:
Das ist einfach obwohl das hier ins Falsche Thema gepostet wurde.

Du brauchst nur den Fremdkey mit der anderen Tabelle gleich setzen.Also beide Tabellen auswählen den Fremdkey gleich setzen und wenn noch speziele werte haben willst einfach mit angeben.

Mfg Splasch
 
Jap, dürfte an dann ungefähr hin kommen was ich gesagt habe.

Mich würde nur interessieren was zu bevorzugen ist, die Methode mit JOIN oder die normale?

lg aus Darian
 
Ein JOIN ist vorzuziehen da dies wesentlich effizienter ist.

Bei einem SELECT ohne JOIN wird das Kartesische Produkt gebildet. Bei zwei Tabellen mit je 3 Zeilen ergibt das also 9 Zeilen. Danach würden mit WHERE die Relevanten Zeilen ausgewählt werden.

Beim JOIN ON werden direkt nur die Relevanten Zeilen berücksichtigt.
 
Zurück