Laufschrift aus Mysql Datenbank

BorussiaMG

Grünschnabel
Hallo User,

ich bin neu hier und bitte um eure Hilfe.

Ich versuche schon seid Stunden eine Laufschrift in meinem Websoccer zu integrieren. Diese Laufschrift soll Ergebnisse aus unserem Websoccer anzeigen.

Die Ergebnisse befinden sich in der Datenbank.

Nun ist es so das der Vereinsname aus einer ID erzeugt werden muss die wiederum in einer anderen Tabelle ist.

Hier mal ein kleines Beispiel zum besseren Verständnis.

Ich möchte aus der Datenbanktabelle ws_spiel die Spiele mit den jeweils letzten 10 ID's in der Laufschrift angezeigt haben. In der Tabelle ws_spiel sind die Vereinsnamen aber ebenfalls mit verein_id nummeriert.

Um nun den Vereinsnamen zu der verein_id angezeigt zu bekommen muss in die Tabelle ws_verein gewechselt werden.

Die Ausgabe erfolgt dann über ein Templatesystem.

Die Laufschrift habe ich nun hinbekommen, aber wird hier leider nichts angezeigt ausser 4 Pluszeichen nebeneinander.

Ich habe folgenden Code dafür benutzt

PHP:
$sql = "SELECT * FROM ".$conf['db_prefix']."_spiel";
$result = mysql_query($sql);
$lauftext = "++ ";

$res = mysql_query("SELECT name FROM ".$conf['db_prefix']."_verein WHERE id='".$row['home_verein']."'");
  $heim = mysql_fetch_array($res);
  mysql_free_result($res);

  $res = mysql_query("SELECT name FROM ".$conf['db_prefix']."_verein WHERE id='".$row['gast_verein']."'");
  $gast = mysql_fetch_array($res);
  mysql_free_result($res);
  
  while($row = mysql_fetch_assoc($result))
{
    $lauftext .= $heim['name']." ++ ";
}

Hoffe mir kann jemand eine kleine Hilfestellung geben.

Gruss
BorussiaMG
 
Hallo BorussiaMG,

willkommen hier im Forum.
Das du nur 4x "+" angezeigt bekommst, kann auch daran liegen das die Variable $row keinen Inhalt hat. Kannst du diese stelle einmal Posten bitte.

Oder beziehst du diesen Inhalt aus dem Query an erster Stelle?

Mfg Splater
 
Hab mal drüber geschaut, ich hoffe ich hab dich mit der Tabellen anordnung verstanden.
PHP:
$sql_spiele = mysql_query("SELECT * FROM ".$conf['db_prefix']."_spiel as spiel
                            LEFT JOIN 
                            (SELECT 
                            * FROM ".$conf['db_prefix']."_verein) as verein
                            ON (spiel.id == verein.id)") OR die (mysql_error());
 
while($spiele = mysql_fetch_assoc($sql_spiele))
{
    $lauftext .= $spiele['heim_verein']." vs ".$spiele['gast_verein'];
}
in der Richtung ist das ganze einfacher. Bin mir aber mit dem Query nicht ganz Sicher. Am besten mal nach LEFT JOIN googeln.

Mfg Splater
 
Hallo Splater,

danke schonmal für deine Hilfe. Wenn ich das aber so übernehme bekomme ich folgende Meldung beim Aufrufen der Seite

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== verein.id)' at line 5

Ich habe mir

auch nochmal die Datenbank angesehen.

Gerne erkläre ich es nochmal wie die DB aufgebaut ist.

Also es gibt eine tabelle die ws_spiel heisst. In dieser Tabelle sind alle Spiele des Websoccers vorhanden. Die Spiele haben eine id von 1 bis x . Nun gibt es in der Tabelle ws_spiel aber auch die Datensätze home_verein , gast_verein, home_tore, gast_tore. In jeder id der tabelle ws_spiel gibt es logischerweise die Datensätze home_verein , gast_verein, home_tore, gast_tore.

Dort sind die Daten der Vereine aber nicht in der Form wie z.Bsp Schalke 04 etc. gespeichert sondern mit Zahlen. Wenn nun bei home_verein die Zahl 180 steht würde das bedeuten das der Verein mit der id 180 aus der Tabelle ws_verein ausgelesen und der Name also Schalke 04 angezeigt werden soll.

In der Tabelle ws_verein sind dann die Vereine aufgelistet. Dort hat dann z.Bsp. Schalke 04 die id 180

Gruss
BorussiaMG
 
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '== verein.id)' at line 5
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.

PHP MySQL Debug Queries

Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.

PS: '==' ist PHP. In MySQL ist das '='
 
Zurück