Datenbankabfrage

Geordi

Mitglied
Hi,
also ich habe folgendes vor:
Ich habe eine DVD datenbank für meine DVDs geschrieben.
Die Tabelle hat die Felder:
film, regieseur, medium, lfnr, standort, info

In der abfrage werden die Felder film - standort in einer Tabelle, nur nun will ich noch auf den film klicken können und in einem Popup das feld info zu dem Film anziegen lassen. Im prinzip habe ich das ganze auch fertig, nur leider bekomme ich wenn ich auf den link klicke nur ein leeres fenster.

Hier die codes:
index.php
Code:
<html>
<body>
Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
<?php
   $db = mysql_connect();
   $res = mysql_db_query("privat",
      "select * from dvds");
   $num = mysql_num_rows($res);

   // Tabellenbeginn
   echo "<table border>";

   // Überschrift
   echo "<tr><td>Film</td>";
   echo "<td>Regiesseur</td> <td>Medium</td>";
   echo "<td>Laufende Nummer</td> <td>Standort</td> <td>Infotext</td> </tr>";

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, "film");
      $vn = mysql_result($res, $i, "regieseur");
      $pn = mysql_result($res, $i, "medium");
	  $lfnr = mysql_result($res, $i, "lfnr");
      $gt = mysql_result($res, $i, "standort");
	  $info = mysql_result($res, $i, "info");

      // Tabellenzeile mit -zellen
      echo "<tr> <td><a href='info.php?film_id=$lfnr'>$nn</a></td> <td>$vn</td>";
      echo "<td>$pn</td><td>$lfnr</td> <td>$gt</td> <td>$info</td> </tr>";
   }

   // Tabellenende
   echo "</table>";

   mysql_close($db);
?>
   <p>
</body>
</html>

info.php

Code:
<html>
<head>
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$lfnr = $_POST["lfnr"];
$db = mysql_connect();
  $result=mysql_query("SELECT * from dvds WHERE lfnr=$lfnr");
if($result) while($row = mysql_fetch_array($result)) {
    $lfnr=$row["lfnr"];
    $film=$row["film"];
    $info=$row["info"];
	echo "SELECT * from dvds WHERE lfnr=$lfnr";
    echo "<strong>$film</strong><br>$info";
	}
 ?>
</body>
</html>

Danke für eure Hilfe.
 
Code:
<a href='info.php?film_id=$lfnr'>$nn</a>
Wie du siehst übergibst du mit einem Link die Variable $lfnr per GET (!).

PHP:
$lfnr = $_POST["lfnr"];
In deiner info.php versucht du sie aber per POST auszulesen.

Also einfach statt _POST ein _GET und die Sache sollte laufen.
 
Schonmal versucht Fehler auszugeben ( [phpf]mysql_error[/phpf] ) ?
Vielleicht solltest du auch deine IF-Abfrage mal ein wenig umbauen:
PHP:
//statt
if($result) while($row = mysql_fetch_array($result)) {
    $lfnr=$row["lfnr"];
    $film=$row["film"];
    $info=$row["info"];
	echo "SELECT * from dvds WHERE lfnr=$lfnr";
    echo "<strong>$film</strong><br>$info";
	}

//lieber so:
if ($result) {
    while($row = mysql_fetch_array($result)) {
        $lfnr=$row["lfnr"];
        $film=$row["film"];
        $info=$row["info"];
        echo "SELECT * from dvds WHERE lfnr=$lfnr";
        echo "<strong>$film</strong><br>$info";
    }
//ELSE-Zweig ist optional!
} else {
    echo mysql_error();
}
 
Er sagt mir:
Der Code sieht nun so aus:
PHP:
<?php
$_GET['id'];

$db = mysql_connect();
$result = mysql_db_query("privat", $sqlab);
$sqlab = "select * from dvds where $id='lfnr'";
if ($result) { 
    while($row = mysql_fetch_array($result)) { 
        $film=$row["film"]; 
        $info=$row["info"]; 
        echo "SELECT * from dvds WHERE lfnr=$id"; 
        echo "<strong>$film</strong><br>$info"; 
    } 
//ELSE-Zweig ist optional! 
} else { 
    echo mysql_error(); 
}

 ?>
 
Hallo,

das Query $sqlab ist natürlich leer, da du die Variable erst nach dem Aufruf der Funktion mysql_db_query() setzt.
Des weiteren sollte die erste Zeile nach <?php eher so lauten
$id = $_GET['id'];


mfg Jens
 
Danke jungs, es funktioniert:
PHP:
<html>
<head>
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$_GET['id'];

$db = mysql_connect();
$sqlab = "select info, film, lfnr from dvds where $id=lfnr";
$result = mysql_db_query("privat", $sqlab);

if ($result) { 
    while($row = mysql_fetch_array($result)) { 
        $film=$row["film"]; 
        $info=$row["info"]; 
        echo "<strong>$film</strong><br>$info"; 
    } 
//ELSE-Zweig ist optional! 
} else { 
    echo mysql_error(); 
}

 ?>
</body>
</html>
 
Zurück