Auswahl von Daten über ein Such-Formular

Max30

Grünschnabel
Hallo Leute,
entschuldigt die späte Störung. Ich habe ein ein Problem mit einer MySql-Datenbankabfrage über ein HTML Formular. Habe auch eigenständig ein gutes Beispiel gefunden welches mein Vorhaben beschreibt.
Es soll von einem HTML Formular eine eingerenzte Datenbankausgabe erfolgen. Hier sollen die Felder Untergrenze und Obergrenze von bestimmte Personen mit diesen Gehältern anzeigen.

Hier ist der HTML Code

HTML:
<html>
<body>
Anzeige der Personen mit einem Gehalt zwischen:
<form action = "uf08.php" method = "post">
    <input name = "ug"> Untergrenze<p>
    und <p>
    <input name = "og"> Obergrenze<p>
    <input type = "submit">
    <input type = "reset">
</form>
</body>
</html>


Hier mal den code PHP Script uf08.php
PHP:
<html>
<body>
<?php
   $db = 
           mysql_connect("localhost", "root", "") or die(mysql_error());
           mysql_select_db("Firma") or die(mysql_error());

   $sqlab = "select name, gehalt from personen";
   $sqlab .= " where gehalt >= $ug";
   $sqlab .= " and gehalt <= $og";

   $res = mysql_db_query("firma", $sqlab);
   $num = mysql_num_rows($res);

   if ($num==0)
      echo "keine passenden Datensätze gefunden";

   for ($i=0; $i<$num; $i++)
   {
      $nn = mysql_result($res, $i, "name");
      $ge = mysql_result($res, $i, "gehalt");
      echo "$nn, $ge<br>";
   }

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

Hier die Fehlermeldung:

Notice: Undefined variable: ug in C:\xampp\htdocs\Jquery\Datenbank mit Filter\Formular mit Datenbank und Tabelle\2Version\uf08.php on line 7

Notice: Undefined variable: og in C:\xampp\htdocs\Jquery\Datenbank mit Filter\Formular mit Datenbank und Tabelle\2Version\uf08.php on line 8

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Jquery\Datenbank mit Filter\Formular mit Datenbank und Tabelle\2Version\uf08.php on line 11
Datensätze gefunden

Ich finden einfach nicht den Fehler.
Ware schön wenn mir jemand meinen Fehler erklären würde.

Danke im Voraus
Gruß und schönen Abend
 
Soll in deinem HTML5 Beispiel nicht Daten übergeben werden?
Denn dass tut es bisher mit deinem Beispiel nicht, da HTML5 ohne Type nicht weiß was das Input machen soll. :)

Zumal du auf MySQLi wechseln solltest, da MySQL nicht mehr supportet wird, seit PHP 7.x ;)
 
Danke für eure schnelle Anworten zu meinem Problem. Funktioniert alles super. Das mit MySQLi muss ich mir unbedingt anschauen.

Danke Leute
 
Hallo Leute,

ich habe noch eine weitere Frage. Im Beipspiel uf16.php habe ich eine Tabelle mit Radion Button. Je nach Auswahl, soll der individuelle Datensatz der jeweiligen Person in Inputfeldern angezeigt werden.(UF08.php im ist vorgeschaltet)


uf16.php
PHP:
<html>
<body>
Wählen Sie aus, welcher Datensatz geändert werden soll:<p>
<form action = "uf16b.php" method = "post">
<?php
   $db = mysql_connect("localhost", "root", "") or die(mysql_error());
           mysql_select_db("firma") or die(mysql_error());
   $sqlab = "select ID, Name, Gehalt from personen";
   $sqlab .= " where gehalt >= ".$_POST['ug'];
   $sqlab .= " and gehalt <= ".$_POST['og'];

   $res = mysql_db_query("firma", $sqlab);
   $num = mysql_num_rows($res);
   if ($num==0)
      echo "keinen passenden Versicherungsvergleich gefunden";
   
   echo "<table border>";

   // Überschrift
   echo "<tr> <td>Auswahl</td> <td>Name</td> <td>Gehalt</td> </tr> ";
   for ($i=0; $i<$num; $i++)
   {
      $pn = mysql_result($res, $i, "id");
     $nn = mysql_result($res, $i, "name");
      $ge = mysql_result($res, $i, "gehalt");
     $lf = $i + 1;
     
     echo "<tr> <td><input type='radio' name='auswahl' id='id'";
     echo " value='$pn'></td>";
      echo "<td>$nn</td> <td>$ge</td> </tr>";
     // Tabellenzeile mit -zellen
      }
   // Tabellenende
   echo "</table>";
   
   mysql_close($db);
?>  
<p>
   <input type="submit" value="Vergleich anzeigen">
</body>
</html>

Hier sollen die Daten der jeweiligen Personen angezeit werden
uf16b.php
PHP:
<html>
<body>
<?php
if ($auswahl)
{
   $db = mysql_connect();

   $sqlab = "select * from personen where";
   $sqlab .= " id= $auswahl";

   $res = mysql_db_query("firma", $sqlab);

   $altnn = mysql_result($res, 0, "name");
   $altvn = mysql_result($res, 0, "vorname");
   $altge = mysql_result($res, 0, "gehalt");
   $altgt = mysql_result($res, 0, "geburtstag");

   echo "Führen Sie die Änderungen durch,<p>";
   echo "betätigen Sie anschließend den Button<p>";

   echo "<form action = 'uf16c.php' ";
   echo " method = 'post'>";

   echo "<input name='neunn' value='$altnn'>";
   echo " Nachname<p>";
   echo "<input name='neuvn' value='$altvn'> ";
   echo " Vorname<p>";
   echo "<input name='neupn' value='$auswahl'>";
   echo " Personalnummer<p>";
   echo "<input name='neuge' value='$altge'>";
   echo " Gehalt<p>";
   echo "<input name='neugt' value='$altgt'>";
   echo " Geburtstag<p>";
   echo "<input type='hidden' name='oripn' ";
   echo " value='$auswahl'>";

   echo "<input type='submit' ";
   echo " value='Änderungen in DB speichern'><p>";
   echo "<input type='reset'>";
   echo "</form>";

   mysql_close($db);
}

else
   echo "Es wurde kein Datensatz ausgewählt<p>";
?>
</body>
</html>

Zur eindeitogen Übermittlung wollte ich die ID aus der Datenbank benutzen.


Fehlermeldung:

Notice: Undefined variable: auswahl in C:\xampp\htdocs\Jquery\Datenbank mit Filter\Formular mit Datenbank und Tabelle\3Version\uf16.php on line 5
Es wurde kein Datensatz ausgewählt

Hört sich nach einen ähnlichen Fehler an. Vllt kennt sich jemand damit aus.

Danke Leute
 
Du versuchst auf die Variable $auswahl auszulesen, diese hat aber keinen Wert. :)
Logisch, da du fragen solltest:
PHP:
if(isset($_POST['auswahl']) { // DEIN CODE WENN AUSWAHL TRUE } else { // DEIN CODE WENN AUSWAHL FALSE }

Hoffe das hilft Dir ;)
 
Hallo,

habe es versucht aber jetzt erhalte ich folgenden Fehler:

Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\Jquery\Datenbank mit Filter\Formular mit Datenbank und Tabelle\3Version\uf16.php on line 5

PHP:
<html>
<body>
<?php
if(isset($_POST['auswahl'])
{
   $db = mysql_connect("localhost", "root", "") or die(mysql_error());
           mysql_select_db("firma") or die(mysql_error());
   $sqlab = "select * from phv_firma where";
   $sqlab .= " personalnummer = $auswahl";


   $res = mysql_db_query("firma", $sqlab);

   $altnn = mysql_result($res, 0, "name");
   $altvn = mysql_result($res, 0, "vorname");
   $altge = mysql_result($res, 0, "gehalt");
   $altgt = mysql_result($res, 0, "geburtstag");

   echo "Führen Sie die Änderungen durch,<p>";
   echo "betätigen Sie anschließend den Button<p>";

   echo "<input name='neunn' value='$altnn'>";
   echo " Nachname<p>";
   echo "<input name='neuvn' value='$altvn'> ";
   echo " Vorname<p>";
   echo "<input name='neupn' value='$auswahl'>";
   echo " Personalnummer<p>";
   echo "<input name='neuge' value='$altge'>";
   echo " Gehalt<p>";
   echo "<input name='neugt' value='$altgt'>";
   echo " Geburtstag<p>";
   echo "<input type='hidden' name='oripn' ";
   echo " value='$auswahl'>";

   mysql_close($db);
  }
   else {
       echo "Es wurde kein Datensatz ausgewählt<p>";
   }
?>
</body>
</html>

Bedeutet der Fehler, dass irgendwo eine Klammer fehlt?

Gruss
 
Hi

Code:
if(isset($_POST['auswahl'])
if(isset($_POST['auswahl']))

Und nochmal: Mysqli/PDO und SQL-Injections...
 
Zurück