Details einer Tabellenzeile aufrufen

dodo1912

Grünschnabel
hier die Ausgabe der Datenbank:

PHP:
echo "<tr>
            <td><span class=text>$datumtmj</span></td>
            <td><span class=text>$veranstaltungsname</span></td>
            <td><span class=text>$bmmeldung</span></td>
		    <td><span class=text><form action=\"eventoutput.php\" method=\"post\"><input name=\"detail\" value=\"$id\"><input type=\"submit\"></form></span></td>
			 <td><span class=text>$detail</span></td>

Das Textfeld ist also mit der id des Datensatzes gefüllt (später setze ich das dann auf type=hidden)

Hier die Datei dazu:
http://www.dodo1912.de/admin/eventoutput.php

Jetzt soll das passieren:
PHP:
Event Output Details
<br>
<?php
if($res_id = @mysql_connect ($db_host, $db_user, $db_pw))
    {
	    echo "Verbindung zur Datenbank hergestellt<br>";
	}
else
    {
	    die("hier funktioniert nix');
	}

if(@mysql_select_db ($mysql_db))
    {
	echo "Datenbank $mysql_db wurde erfolgreich ausgewählt!<br>";
	}
else
    {
	    die('Die Datenbank $mysql_db konnte nicht gefunden werden');
	}
$sql = "SELECT * FROM events WHERE `id` = '$detail'";
if (!$res_id = mysql_query ($sql))
    {
	    die ('MySql Befehl ist falsch');
	}
$num = mysql_num_rows($res_id);
   echo "$num Datensätze gefunden<br>";
for ($i=0; $i<$num; $i++)
{
      $datum = mysql_result($res_id, $i, "datum");
      $veranstaltungsname = mysql_result($res_id, $i, "veranstaltungsname");
      $ort = mysql_result($res_id, $i, "ort");
	  $webseite = mysql_result($res_id, $i, "webseite");
	  $ergebnisse = mysql_result($res_id, $i, "ergebnisse");
      $bilder = mysql_result($res_id, $i, "bilder");
	  $datumtmj = date("d.m.Y", $datum);
	  //Umwandlung in Bilderlink
   if ($bilder)
   {
   $bilderlink = "<a href=" . "http://www.dodo1912.de/alben/" . $bilder ."/index.html" . ">zu den Bildern</a>";
   }
   else 
	{ 
	    $bilderlink ="Es wurden noch keine Bilder Hochgeladen";
	} 
	

echo"$ort am $datumtmj";
echo"<table border=\"0\" cellpadding=\"5\" cellspacing=\"0\" width=\"50%\">";
  echo"<tbody>
    <tr>
      <td width=\"30%\">Ort:</td>
      <td>$ort</td>
    </tr>
    <tr>
      <td>Zeit bis:</td>
      <td> Countdownscript hier einfuegen...<br /></td>
    </tr>
    <tr>
      <td>Webseite:</td>
      <td><a href=\"http://$webseite\" target=_blank>$webseite</a></td>
    </tr>
    <tr>
      <td>Ergebnisse:</td>
      <td>$ergebnisse</td>
    </tr>
    <tr>
      <td>Bilder:</td>
      <td>$bilderlink</td>
    </tr>
  </tbody>";
echo"</table>";
}
]
Wenn man also auf den Button da klickt soll unter der Ausgabetabelle der Events die Details des einen gewählten auftauchen...irgendwie klappt das aber nicht ;( Später möchte ich dann noch den Standard-Button durch eine Grafik ersetzen...
 
Hi

Was klappt nicht. Fehlermeldung!?

Schau mal hier.

die("hier funktioniert nix');

Du hast einmal eine doppletes und eine einfaches Anführungszeichen.

Mfg Akkie
 
die Zeile hatte ich hier "per Hand" geändert weil ein Rechtschreibfehler drin war... im Skript sind 2 gleiche Zeichen...

Die Variable detail wird beim klick auf den button scheinbar gar nicht angelegt...
Wünscht ihr eine ausführlichere Erklärung oder ist der Sachverhalt klar?
 
hat es was damit zu tun:
Müsste die Query nicht lauten:
PHP:
$sql = "SELECT * FROM events WHERE `id` = $_POST['detail']";

Das meine ich aber schon mal getestet zu haben !? :confused:
 
Hi

Eigentlich müsste der $query lauten.

PHP:
$sql = 'SELECT field1, field2, field3 FROM events WHERE `id` = ' . intval($_POST['detail']);

Google mal bitte nach dem Begriff SQL-Injection. Lies dir das durch und schau dir bitte deinen Quellcode an. Deiner Frage nach zu urteilen hast du register_global angeschaltet. Mit dieser Funktion wird ein sehr hohes Sicherheitsrisiko verbunden. Du solltest dieses auschalten und statdessen immer die Superglobalen Arrays $_REQUEST, $_POST, $_GET und $_SESSION verwenden.

Mfg Akkie
 
Zurück