Problem: Variablenübergabe an MySQL

Rtflmd

Grünschnabel
Hi,

ich möchte ein Spieler Script schreiben welches über MySQL die Daten speichert.
Nun habe ich folgendes Problem, ich möchte als erstes eine Seite darstellen auf der man dann auf den Spieler klickt um dann die Details wie Alter, Position usw. sieht.

Der Spieler wird anhand von einer Spieler-ID identifiziert (1,2,3....)
nun möchte ich via Link die Detailseite aufrufen und dann eine erneute Datenbankabfrage starten mit der über Browser geposteten ID.

Das funktioniert leider nicht, hab auch schon viel rumprobiert, doch mir fehlt noch die Erfahrung mit php.

Hier der link zu dem Vermurksten Script:

http://www.tsv-schornsheim.de/spieler/spieler.php


Code:
PHP:
<html>
<title>Spieler info</title>
<?php
   include("config.php");
   mysql_connect($host,$user,$pass);
   mysql_select_db($database);
   $query = "SELECT id, name, datum, position, beruf, wohnort, sziel, vereine, seit, tsv";
   $query = $query . " FROM spieler";
   $query = $query . " ORDER BY id";
   $result = mysql("$database", $query) ;
if (mysql_Num_Rows($result) > 0)
{
   $Gesamt = mysql_NumRows ($result);
}
else
{
   $Gesamt = 0;
}
if ($Gesamt == 0)
{
   printf("Es stehen keine Daten zur Verfügung");
}
?>
<? if($seite == "" || $seite == "index") {
$i =0;
while ($i < mysql_numrows($result))
{
   $id= mysql_Result ($result, $i, "id");
   $name= mysql_Result ($result, $i, "name");
   $datum= mysql_Result ($result, $i, "datum");
   $position= mysql_Result ($result, $i, "position");
   $beruf= mysql_Result ($result, $i, "beruf");
   $wohnort= mysql_Result ($result, $i, "wohnort");
   $sziel= mysql_Result ($result, $i, "sziel");
   $vereine= mysql_Result ($result, $i, "vereine");
   $seit= mysql_Result ($result, $i, "seit");
   $tsv= mysql_Result ($result, $i, "tsv");
   printf("<a href=\"spieler.php?seite=spielerdetails&spieler=$id\">$name</a>");
   printf("<br>");            //Variable spieler wird nicht korrekt übergeben
$i++;
}
}
?>
<?
if($seite == "spielerdetails") {
   $query = "SELECT id, name";
   $query = $query . " FROM spieler";
   $query = $query . " WHERE id=$spieler";    //Variable Spieler ist nicht richtig
   $result = mysql("$database", $query) ;
if (mysql_Num_Rows($result) > 0)
{
   $Gesamt = mysql_NumRows ($result);
}
else
{
   $Gesamt = 0;
}
if ($Gesamt == 0)
{
   printf("Es stehen keine Daten zur Verfügung");
}
   $id= mysql_Result ($result, "0", "id");
   $name= mysql_Result ($result, "0", "name");
   printf($id);
   printf("<br>");
   printf($name);
   printf("<br>");
}
?>
</html>


Über Lösungsvorschläge jeglicher Art würde ich mich freuen
 
Zuletzt bearbeitet:
Hast du dir schonmal deine SQL Abfrage anzeigen lassen was er an die Datenbank sendet? Es sieht nach einer ungültigen Abfrage aus.
PHP:
print $query;
direkt nachdem du die Query generiert hast, dann kommt man meistens auf den Fehler.
 
print $query;

ergibt diese MySQL Anweisung.

SELECT id, name FROM spieler WHERE id=spieler

Also ist da irgendwas mit der Variable faul
 
Okay, vielleicht klappt es so:
PHP:
// mit register_globals = off
$query = "SELECT id, name FROM spieler WHERE id = ".$_GET['spieler'];
oder so
PHP:
// mit register_globals = on
$query = "SELECT id, name FROM spieler WHERE id = ".$spieler;

Da scheint allerdings was mit der Variablen falsch zu sein, deswegen die falsche Abfrage.
 
PHP:
// mit register_globals = off
$query = "SELECT id, name FROM spieler WHERE id = ".$_GET['spieler'];


danke es funktioniert. Echt schnelle Hilfe.

Eine Frage noch was ist .$_GET für ein Befehl, Ausdruck ?
 
Zuletzt bearbeitet:
$_GET ist ein superglobaler Array der die Daten enthält, die an die URL angehängt werden.
Beispielsweise so:

URL: index.php?foo=bar&bla=tschakka
Script:
PHP:
<pre>
<?php
print_r($_GET);
?>
</pre>
Output:
Code:
Array
(
    [foo] => bar
    [bla] => tschakka
)
Erklärung: In $_GET["foo"] steht nun "bar", in $_GET["bla"] steht "tschakka".

Capito? :)
 
Zurück