Wie frage ich das ab ?

Worka

Mitglied
Hallo Leute,

ich habe folgendes Problem...

Ich habe eine MySQL Datenbank wo sich 2 Tabellen drin befinden.... die eine Tabelle heißt "nachnamen" und die andere "vornamen" (nur als Beispiel"

In der Tabelle "nachnamen" gibs die Spalten:

'Nachname' , 'text', 'text_titel'

In der Tabelle "vornamen" gibs die Spalten:

'Vorname' , `text`


ich möchte gerne die Vornamen abfragen mit der Spalte 'text`, wobei der`Wert in `text`immer gleich ist mit dem text aus der Nachnamen Tabelle. Nun soll er aber den Wert `text' mit dem Wert `text`aus der Nachnamen Tabelle vergleichen und wenn der gleich ist , den zugehörigen `text_titel' ausspucken...

Wie mache ich die Abfrage und wie gebe ich das nachher aus in PHP bin da noch bisschen zu doof über 2 Tabellen und so..... DANKE STEFAN

Es muss leider so über zwei Tabellen laufen.. dies ist nur ein Beispiel, war aber so leichter zu erklären ( hoffe ich *gg*)

Gruß Stefan
 
Zuletzt bearbeitet:
Hallo,
ich hoffe, ich hab deine Erklärung richtig verstanden und versuch mich mal an einer Lösung.

Abfrage in PHP:
$sql = mysql_query (SELECT text_titel FROM Nachname, Vorname WHERE Nachname.text = Vorname.text);

Anzeige:
Zeigt alle text_titel untereinander an.
while ($titel = mysql_fetch_array ($sql) {
echo $titel[0];
echo "<br>";
}

So irgendwie. Verbessert mich, wenn ich Mist geschrieben hab. :-)

Gruß
BG
 
der richtige Gedanke

auf dem richtigen weg sind wir, ich versuche es mal mit meinem Orginal zu erklären wo ich es auch anwenden möchte...

Hier mal 2 Bilder aus meiner Datenbank

1 Bild ( Tabelle "bb1_arcadegames" )

2 Bild ( Tabelle "bb1_arcade_topscorer" )

Wie ihr auf den Bildern feststellen könnt ist die Spalte name aus Tabelle "arcadegames" gleich mit der Spalte game aus der Tabelle "top_scorer", von den Werten gesehen


Nun möchte ich gerne, das die letzten 5 Einträge der Tabelle top_scorer ausliest und für die Spalte "game" in "Top_scorer" die Spalte "titel" aus der Tabelle "Arcadegames" ausgibt...

Das Prob ist ja, das er den namen vom game suchen muss, dann den Titel ausspucken soll...

Es sieht ja schöner aus wenn da zum beispiel in der Ausgabe nicht "helicopter" steht sondern "Helicopter" sowie aus der Spalter titel...

Wäre Dankbar wenn mir das einer sagen kann wie ich das über zwei tabellen mache

:)
 
Hm! Äh! Also: Auf acardgames gibt es jeden Titel nur einmal oder? Und es sollen die letzten 5 Einträge aus top_scorer geholt werden und die Beschreibung für die Spiele von arcadegames geholt werden?

PHP:
$sql="SELECT id,game,score,name FROM top_scorer ORDER BY id DESC LIMIT 5";
$result=mysql_query($sql);
$data=array(); $i=0;
while($row=mysql_fetch_array($result)) {
  $data[$i]=$row;
  $sql="SELECT id,title FROM arcadegames WHERE name='".$row[game]."'";
  $result2=mysql_query($sql);
  $temp=$mysql_fetch_array($result2);
  $data[$i][title]=$temp[title];
  $i++;
}

gibt sicherlich elegantere Methoden - mir ist auf die Schnelle nix eingefallen!
Je nach dem wie viele Einträge du hast ist es evtl besser die ganzen Titles zuerst zu holen und in ein Array zu speichern, über dass man dann den entsprechenden Eintrag bekommt aber das ist ja jetzt net so wichtig!

Übrigens: helicopter kann man auch anders in Helicopter verwandeln:
PHP:
$string="helicopter";
$string[0]=strtoupper($string[0]);
desweiteren gibt es glaub ich ne Funktion die von jedem Wort den ersten Buchstaben groß macht aber die kenn ich grad net!
 
hmm scheint schon fast zu laufen , nur kommt noch eine Fehler meldung, kann sein weil das alles mit demm WBB FOrum anders ist, habs shcon bisschen geändert..

Hier der Fehler :

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www/htdocs/dabistdu/forum/highscore.php on line 7

Hier mein Code

PHP:
<?
require('./global.php');

$sql= $db->query("SELECT id,game,score,name FROM bb".$n."_arcade_topscorer ORDER BY id DESC LIMIT 5"); 
$result=mysql_query($sql); 
$data=array(); $i=0; 
while($row=mysql_fetch_array($result)) { 
  $data[$i]=$row; 
  $sql= $db->query("SELECT id,title FROM bb".$n."_arcadegames WHERE name='".$row[game]."'"); 
  $result2=mysql_query($sql); 
  $temp=mysql_fetch_array($result2); 
  $data[$i][title]=$temp[title]; 
  $i++; 
}
?>



Ne das muss shcon so gehen,w weil da steht manchmal auch "yeti5" und das Spiel heißt( Titel) Penguin Bashing oder so...

Gruß Stefan
 
Wenn du das mit $db->query() machst musst du statt $sql $result machen und
$result=mysql_query($sql); dafür rauslöschen!
 
dann kommt das Harrier

FEHLER:
Resource id #23
You have an error in your SQL syntax near 'Resource id #23' at line 1
 

Du nun kommt keine fhler meldung mehr, aber die Seite ist nur weiß?

hier mein code nun :

PHP:
<? 
require('./global.php'); 

$result= $db->query("SELECT id,game,score,name FROM bb".$n."_arcade_topscorer ORDER BY id DESC LIMIT 5"); 
$data=array(); $i=0; 
while($row=$db->fetch_array($result)) { 
  $data[$i]=$row; 
  $result2= $db->query("SELECT gameid,title FROM bb".$n."_arcadegames WHERE name='".$row[game]."'"); 
  $temp=$db->fetch_array($result2); 
  $data[$i][title]=$temp[title]; 
  $i++; 
} 
?>

Das ist immer blöd wenn die seite weiß ist, denn weiß man ja garnicht weiter....

Weißt du / Ihr was ?
 
Hehe! Ich weis was! Das Text ausgeben hab ich einfach mal dir überlassen:

PHP:
foreach($data as $row) {
echo $row[name]."-".$row[score]."-".$row[title]."<br>";
}
 
jo danke Harrier , nun läuft das ...

Nur vielleicht noch einer wie ich das im HM Portal im WBB einbauen kann, da ist der php code ja immer bisschen anders..

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

ich möchte gerne das in einer PHP Box im HM Portal haben, so normal im explorer das script nur in den boxen nicht....


Hier mein Code, vielleicht kann den einer umschreiben, dass der im Portal geht...

Bis jetzt kommt immer der Fehler :

Fatal error: Cannot redeclare stripslashes_array() (previously declared in /www/htdocs/dabistdu/forum/acp/lib/functions.php:3) in /www/htdocs/dabistdu/forum/acp/lib/functions.php on line 3

PHP:
<? 
require('./global.php'); 
eval("print(\"".$hm_boxhead_tpl."\");");


$result= $db->query("SELECT id,game,score,name FROM bb".$n."_arcade_topscorer ORDER BY id DESC LIMIT 5"); 
$data=array(); $i=0; 

while($row = $db->fetch_array($result)) { 
  $data[$i]=$row; 
  $result2= $db->query("SELECT gameid,title FROM bb".$n."_arcadegames WHERE name='".$row[game]."'"); 
  $temp=$db->fetch_array($result2); 
  $data[$i][title]=$temp[title]; 
  $i++; 
  
} 

eval("print(\"".$hm_boxtail_tpl."\");");
?>


Achja wäre nett wenn einer gleich noch ne idee hat wie das in Tabellen auslesen kann untereinander .....

Gruß Stefan
 
Zurück