Problem mit GET

r4ph4

Grünschnabel
Guten Morgen zusamm,
ich habe folgendes Problem ich habe eine Datenbank erstellt welche sich auch ganz gut auslesen lässst (ausgabe.php)
allerdings habe ich nun 2 php Dateien einmal die ausgabe.php & ausgabe2.php .
Über die ausgabe.php gehe ich zur ausgabe2.php?id=1 welche mir dann die Daten die unter der id 1 in der Db gespeichert wurden aus.
Mein Problem liegt nun dadrin das ich diese beiden Dateien nun vereinen will so das ich nur noch die ausgabe.php habe welche mir dann bei ausgabe.php?id=1 nicht mehr die kompl. liste ausgibt sondern nur noch die ausgewählte ID ... wenn mann id=1 weglässt zeigt er wieder die kompl. Liste an.

Ich hoffe Ihr versteht was ich meine (ist ja schon früh Konzentration lässt gerade etwas nach) :)

Hier mal die Codes :

ausgabe.php

PHP:
<?php
$con = mysql_connect("localhost","xxx","xxx");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("beta", $con);

$result = mysql_query("SELECT * FROM haendlerliste");

echo "<table>
<tr>
<td>Id</td>
<td>Händlername</td>
<td>Ort</td>
<td>Plz</td>
<td>Webseite</td>
<td>Mind.-Bestellwert</td>
<td>Versand</td>
<td>Details</td>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td>" . $row['haendlername'] . "</td>";
  echo "<td>" . $row['ort'] . "</td>";
  echo "<td>" . $row['plz'] . "</td>";
  echo "<td>" . $row['webseite'] . "</td>";
  echo "<td>" . $row['mindest'] . "</td>";
  echo "<td>" . $row['versand'] . "</td>";
  echo "<td><a href='ausgabe2.php?id=". $row['id'] . "'>ansehen</a></td>";
  echo "</tr>";
  }
echo "</table>";
mysql_close($con);
?>

ausgabe2.php

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>

<body>
<?php
$con = mysql_connect("localhost","xxx","xxx");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("beta", $con);
$id = $_GET['id'];
$result = mysql_query("SELECT * FROM haendlerliste WHERE id='$id'");

echo "<table>
<tr>
<td>Id</td>
<td>Händlername</td>
<td>Ort</td>
<td>Plz</td>
<td>Webseite</td>
<td>Mind.-Bestellwert</td>
<td>Versand</td>
<td>Details</td>
</tr>";

while($row = mysql_fetch_array($result))
  {
  echo "<tr>";
  echo "<td>" . $row['id'] . "</td>";
  echo "<td>" . $row['haendlername'] . "</td>";
  echo "<td>" . $row['ort'] . "</td>";
  echo "<td>" . $row['plz'] . "</td>";
  echo "<td>" . $row['webseite'] . "</td>";
  echo "<td>" . $row['mindest'] . "</td>";
  echo "<td>" . $row['versand'] . "</td>";
  echo "<td><a href='ausgabe2.php?id=". $row['id'] . "'>ansehen</a></td>";
  echo "</tr>";
  }
echo "</table>";

mysql_close($con);
?> 



</body>
</html>

Also nochmal :
ausgabe.php (Komplette liste)
ausgabe2.php (nur gwünschte id)
würde beides gerne in eine datei vereinen ausgabe.php?id= (belndet dann die kompl. Liste aus und zeigt die neue tabelle an)

Vorab vielen dank für eure Hilfe

Rapha
 
Zuletzt bearbeitet:
Ändere mal die entsprechenden Zeilen in folgendes:
PHP:
mysql_select_db("beta", $con);

$sql = "SELECT * FROM haendlerliste";

if(isset($_GET['id']) === TRUE) {
    $id = $_GET['id'];
    $sql .= " WHERE id='$id'";
}
$result = mysql_query($sql);
 
Danke funktioniert soweit ganz gut.

Problem dadran ist jetzt nur das er die Tabelle im echo nutzt eigendlich sollte es so laufen das beides "unabhänig" voneiander ist weil bei der ausgabe der id noch andere felder dazukommen sollen
die ausgabe.php ist derzeit die"kurzversion" und wenn ich über die id aufrufe soll er den kompletten inhalt der spalte (also der id) ausgeben.

Sprich die ausgabe.php wird ausgebeldet und dann der inhalt der ausgabe2.php in der ausgabe.php mit ausgegeben wird ?

Bei der version oben zeigt er mir die ausgewählte id ja in der tabelle an ich bräcuhte halt noch diese 2 .

Hoffe habe mich doch etwas verstädnlich ausgedrückt :)

VG
Rapha
 
Hallo!

Ganz kurze Kurzfassung:
PHP:
<?php
if(isset($_GET['id'])) {
    // Details der ausgewählten ID
    // Bei "SELECT ..... WHERE id=$id" macht eine while-Schleife nicht wirklich Sinn, es sei denn die ID ist nicht eindeutig. ;)
    $result = mysql_query("SELECT * FROM haendlerliste WHERE id='$id'");
    .....
    .....
    .....
    echo "<a href=\"".$_SERVER['PHP_SELF']."\">zur&uuml;ck zur &Uuml;bersicht</a>";
} else {
    // Gesamtübersicht
    $result = mysql_query("SELECT * FROM haendlerliste");
    .....
    .....
    .....
    while(.....) {
        .....
        .....
        .....
        echo "<a href=\"".$_SERVER['PHP_SELF']."?id=".$id."\">anzeigen</a>";
    }
}
?>
Oder umgekehrt:
PHP:
<?php
if(!isset($_GET['id'])) { /* man beachte das Ausrufezeichen */
    // Gesamtübersicht
    $result = mysql_query("SELECT * FROM haendlerliste");
    .....
    .....
    .....
    while(.....) {
        .....
        .....
        .....
        echo "<a href=\"".$_SERVER['PHP_SELF']."?id=".$id."\">anzeigen</a>";
    }
} else {
    // Details der ausgewählten ID
    // Bei "SELECT ..... WHERE id=$id" macht eine while-Schleife nicht wirklich Sinn, es sei denn die ID ist nicht eindeutig. ;)
    $result = mysql_query("SELECT * FROM haendlerliste WHERE id='$id'");
    .....
    .....
    .....
    echo "<a href=\"".$_SERVER['PHP_SELF']."\">zur&uuml;ck zur &Uuml;bersicht</a>";
}
?>
Und nicht vergessen die Benutzereingabe zu überprüfen. ;)

Gruss Dr Dau
 
Zurück