Seite 1 von 2

Aufruf für DB-Abfrage

Verfasst: 31.08.2003 18:25
von mondi
Hallo,
habe mal eine dringende Bitte. Ich möchte folgende DB Abfrage ausführen:

www.domain.de/spiel/analyze.php?game=50&whocolor=black

50 wäre beispielsweise die Variable (GameID), auf die ich klicken möchte; sie wird im Moment bereits in einer Tabellenspalte angezeigt (also als jeweils laufende Nr. der Spiele - von 1-100 usw.) - aber eben nicht nach obigem Beispiel verlinkt.
Wie müsste das Script aussehen, damit ich innerhalb der Tabelle aus einer einfachen Zahl (GameID) diesen Link herstellen kann.

Im Moment sieht das Script in der betreffenden Tabellenstelle so aus:

Code: Alles auswählen

<td align='center'>$row[gameID]</td>

Wie gesagt, da sollte eben statt der einfachen Zahl in zukunft die anklickbare zahl (obiger link) sein.
thx in advance

Grüße
Mondi

Verfasst: 31.08.2003 19:14
von mondi
<a href='analyze.php?game=$row[gameID]'> funktioniert
oder gibt es noch eine bessere Lösung?

Verfasst: 01.09.2003 11:41
von mondi
sorry für die selbstgespräche. aber vielleicht kann jetzt doch jemand helfen.
Der Aufruf funktioniert, Frage: Was muss ich machen, damit das als 200x200 popup aufgeht ohne alles - navbars, menue usw.

Danke
Mondi

Verfasst: 01.09.2003 12:03
von pDCom

Code: Alles auswählen

<a href="#" onClick="window.open('datei.php', 'fenster','toolbar=no,status=no,menubar=no,scrollbars=yes,width=200,height=200')">Dateiname</a>
bei width und height kannst du dann die größe auswählen also z.b. 200x200 ;)

gruß

pDCom

Verfasst: 01.09.2003 14:12
von mondi
Danke, ich hab das mal eingebaut. Hier im Zusammenhang:

Code: Alles auswählen

  echo "<tr>
<td align='center'>
<a href='analyze.php?game=$row[gameID]' onClick='window.open('analyze.php?game=$row[gameID]', 'fenster','toolbar=no,status=no,menubar=no,scrollbars=no,width=200,height=200')'>$row[gameID]</a></td>
                            <td align='center'>$row2[firstName]</td>
                <td align='center'>".$status[$row['gameMessage']]."</td>
                <td align='center'>$situacao_text</td>
                <td align='center'>$rounds</td>
                <td align='center'>$row[fim]</td>
                <td align='center'>$duracao</td>
                <td align='center'>$xp</td>
                <td align='center'>$oficial</td>
                <td align='center'><a href='#' onClick='document.existingGames.gameID.value=$row[gameID];document.existingGames.submit()'>
		<img src='images/edit.gif' alt='".$MSG_LANG["details"]."' border=0></a></td>
              </tr>";
aber irgendwie will das nicht funktionieren. Das Fenster springt auf wie immer. Ich fürchte, es liegt daran, dass das in so einem echo-Befehl ist. Es würde mich freuen, wenn da jemand Rat wüsste, denn die Datei analyze ist wirklich nur 200x200 und das sieht blöde aus. :cry:

Grüße
Mondi

Verfasst: 01.09.2003 14:28
von itst
Statt der URL im href einfach ein # schreiben.

Verfasst: 01.09.2003 17:23
von mondi
Hallo,
danke für die schnelle und kompetente Hilfe. Jetzt klappt es hervorragend. Und wie das so ist, ein Wunsch zieht den nächsten nach sich.
Fakt ist: das Analyse-Brett (analyze.php) wird jetzt gestartet und angezeigt. Der Aufruf erfolgt über die Datei stat_user.php, in der folgender - oben verhandelter - Aufruf ist

Code: Alles auswählen

<a href='#'

onClick=window.open('analyze.php?game=$row[gameID]','fenster','toolbar=no,status=no,menubar=no,scrollbars=no,width=250,height=270')>
		$row[gameID]</a>
Wäre es nun möglich, das so zu gestalten, dass aus der Datenbank nicht nur die GameID (Tabelle games) ausgelesen wird, sondern auch noch die Namen der Spieler. Hierzu gibt es in der Tabelle games die Player ID (jeweils A_Player oder B_Player), um dem Spiel die richtigen Spieler zuzuordnen.

CREATE TABLE `games` (
`gameID` smallint(6) NOT NULL auto_increment,
`A_Player` mediumint(9) NOT NULL default '0',
`B_Player` mediumint(9) NOT NULL default '0',
usw. usw.
Natürlich soll jetzt nicht die ID der Spieler angezeigt werden, sondern der Name der Spieler, der wiederum hier liegt:

Code: Alles auswählen

CREATE TABLE `players` (
  `playerID` int(11) NOT NULL auto_increment,
  `password` varchar(16) NOT NULL default '',
  `name` varchar(50) NOT NULL default '',
usw. usw.
Genial wäre es, wenn nun in Analyse-Ansicht (bzw. der Datei analyse.php) - quasi als Überschrift erscheinen könnte Meyer X Müller. Ich könnte das zwar so auslesen, aber die Zuordnung der Spieler zur GAMEID ist mir zu hoch. Ich hoffe, mir kann da jemand einen Tipp für einen Aufruf innerhalb der analyse.php geben. Oder ist das sinnvoller an den Link der stat_user.php anzuhängen oder muss es eine Kombination aus beidem sein?

Grüße
Mondi

Verfasst: 01.09.2003 17:43
von Pyramide

Code: Alles auswählen

SELECT p1.name AS player1_name, p2.name AS player2_name FROM games g LEFT JOIN players p1 ON (g.A_Player = p1.playerID) LEFT JOIN players p2 ON (g.B_Player = p2.playerID) WHERE g.gameID = $gameID

Verfasst: 01.09.2003 18:15
von mondi
Also auch auf die Gefahr hin, mich hier bis auf die Knochen zu blamieren, habe ich mir jetzt folgenden Aufruf zusamengewurschtelt, der natürlich (wie sollte es auch anders sein), nicht funktioniert. Ich habe das ganze Script hier mal abgelichtet. Ich habe es analyze.php (den anderen Kram habe ich erstmal gelöscht) genannt und gehofft, dass die gameID nun von stat_users.php übergeben wird. Aber war nix. Ziel ist erstmal, dass da steht Meyer gegen Müller

Code: Alles auswählen

<?
   $database = "blabla";
   $dbhost = "localhost";
   $dbuser = "blabla";
   $dbpasswd = "blabla";
   $db = mysql_connect($dbhost, $dbuser, $dbpasswd);
   mysql_select_db ($database,$db);

$result = mysql_query("SELECT p1.name AS player1_name, p2.name AS player2_name FROM games g LEFT JOIN players p1 ON (g.A_Player = p1.playerID) LEFT JOIN players p2 ON (g.B_Player = p2.playerID) WHERE g.gameID = $gameID");

$anzeige = mysql_num_rows($result);

echo "$anzeige";

?>

Verfasst: 01.09.2003 18:34
von Pyramide

Code: Alles auswählen

...

$gameID = $_REQUEST['game'];

$result = mysql_query("SELECT p1.name AS player1_name, p2.name AS player2_name FROM games g LEFT JOIN players p1 ON (g.A_Player = p1.playerID) LEFT JOIN players p2 ON (g.B_Player = p2.playerID) WHERE g.gameID = $gameID");

$row = mysql_fetch_array($result);
echo $row['player1_name'] . ' gegen ' . $row['player2_name'];

...