Auswahlfeld mit SQL-Daten

computerpap

Mitglied
Hallo

Ich bräuchte mal Hilfe bei folgenden Problem:

Ich habe in einem Formular ein Auswahlfeld und einen Submit-Button. Weiterhin habe ich eine MySQL-Datenbank, diese hat eine Tabelle "Anlagen". Die einzelnen Spalten heißen "ID, Name, Text, Batterie". Ich möchte jetzt, dass ich im Auswahlfeld alle Datensätze angezeigt bekomme, die in der Spalte "Name" stehen. Wenn ich eine Auswahl selektiert habe, soll nach Klicken auf den Submit-Button der Rest aus den anderen Spalten zu diesen Datensatz angezeigt werden. Leider habe ich keine Ahnung wie der Code aussehen muß. Vielleicht hat ja einer ein paar Ansätze für mich.

MfG
computerpap
 
Ich hab mal folgendes zusammen geschrieben:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Anlagen eingeben</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="Style.css">
</head>
<body>
<p><a href="home.html">Home</a></p>
<h3>Anlagen &Uuml;bersicht</h3><br><br>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>"
method="post">
<select name="DB" size="5">
<option>
<?php

if (!empty($_POST["submit"])) {
include("zugriff.inc.php");
$sql = "SELECT Anlagenname FROM anlage";
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
echo "$row[Anlagenname]";
}
}
?>

</option>
<input type="submit" value="Datensatz suchen"
name="submit">
</form>


</body>
</html>

Aber es t nicht so, wie ich es will. In den Auswahlfeld steht erst was drin, wenn ich auf den Button klicke und dann stehen die Datensätze hintereinander und nicht untereinander wie in einem Auswahlfeld üblich. Wer kann mir helfen?

MfG
computerpap
 
Zuletzt bearbeitet:
Ich kann dir wahrscheinlich helfen ;)

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Anlagen eingeben</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="Style.css">
</head>
<body>
<p><a href="home.html">Home</a></p>
<h3>Anlagen &Uuml;bersicht</h3><br><br>

<?php
if (empty($_POST["submit"])) {
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>"  
	method="post">
<select name="DB" size="5">

<?php
include("zugriff.inc.php");
$sql = "SELECT Anlagenname FROM anlage";
$result = mysql_query($sql);

while ($row = mysql_fetch_assoc($result)) {
  echo " <option>". $row[Anlagenname] ." </option>";
}
?>

<input type="submit" value="Datensatz suchen"  
	name="submit">
</form>

<?php
} else {
//Anzeige des richtigen Datensatzes aus der DB mit Hilfe von $_POST["DB"]
}
?>

</body>
</html>

So ungefähr sollte das funktionieren.

Gruß,
D.
 
Hallo

Dank deiner Hilfe bin ich schon ein ganzes Stück weiter. Die Datensätze werden jetzt untereinander im Auswahlfeld angezeigt. Vielen Dank. Weißt du auch, wie ich nach Klick auf den Button den Rest des selektierten Datensatzes angezeigt bekomme?

MfG
computerpap
 
Hallo,

vielleicht so, habe es nicht getestet, also verzeihe mir wenn du Fehler findest. :)

PHP:
<?php
include("zugriff.inc.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Anlagen eingeben</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="Style.css">
</head>
<body>
<p><a href="home.html">Home</a></p>
<h3>Anlagen &Uuml;bersicht</h3><br><br>
<?
if(isset($_POST["submit"]) && is_numeric($_POST['DB'])){
   $query =  mysql_query("SELECT * FROM anlage WHERE ID = '".mysql_real_escape_string($_POST['DB'])."' ");// mysql_query vergessen :)
   $data = mysql_fetch_row($query);
   echo $data[0].'<br />'; //ID ?
   echo $data[1].'<br />'; //Name ?
   echo $data[2].'<br />'; //Text ?
   echo $data[3]; //Batterie ?
}else{
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
<select name="DB" size="5">
<?php
   $sql = "SELECT ID, Anlagenname FROM anlage ORDER BY Anlagenname ASC ";
   $result = mysql_query($sql);
   while ($row = mysql_fetch_object($result)){
      echo '<option value="'.$row->ID.'">'.$row->Anlagenname.'</option>';
   }
?>
</select>
<input type="submit" value="Datensatz suchen" name="submit">
</form>
<?}?>
</body>
</html>


Gruss
 
Zuletzt bearbeitet von einem Moderator:
Hallo
Danke für die schnelle Hilfe. Leider t das Script nicht, aber das ist kein Problem. Ich werd mal versuchen den Code zu verstehen. Mal schauen ob ich dahinter steigen kann, was du da zusammen geschrieben hast. Nochmals vielen Dank. Sollte jemand noch weitere Ideen haben, dann laßt es mich wissen.

MfG
computerpap
 
Wußte ich hatte was vergessen, also jetzt siehe Oben die Änderung.
 
Hallo Kalle

Jetzt wird das Auswahlfeld wieder mit den Daten aus der DB gefüllt. Allerdings passiert nichts, wenn ich auf den Button klicke.

MfG
computerpap
 
Sollte aber, stimmen deine Feldbezeicher(ID, usw.)? Du musst natürlich eine Auswahl selektieren. ;)
 
Sorry, war mein Fehler. Das Feld "ID" heißt "AnlagenID". Habe das Script entsprechend geändert, jetzt funktioniert es. Super, vielen, vielen Dank. Bei weiteren Fragen werde ich mich nochmal melden.

MfG
computerpap
 
Zurück