Live Suche mit PHP & SQL

Austria88

Neues Mitglied
Hallo
smile.gif


Ich hab folgendes Anliegen:

Ich habe eine MySql Datenbank mit folgenden Werten:

ID
Kundenummer
Adresse
PLZ
Ort


Ich habe 2 Textboxen, Kundennummer und Ort (also <input type="text>). Wenn jetzt in Textbox1 eine Kundenummer eingeben wird, die in der Datenbank vorhanden ist, möchte ich das der Ort in Textbox2 automatisch angezeigt wird.


Funktionert es mit jQuery oder einem Keypress Event? Ich bin echt ratlos.



Danke schon mal im voraus für jeden Lösungsansatz
smile.gif


Lg Philipp
 
Ich hab soweit einen Code zusammengestellt und hätte eine Frage dazu.

CODE <html>
<head>
<script src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
  $("#Ort").keyup( function()
{
  var Ort= $(this).val();
  if(Ort.length > 3)
  {
      $.get("searchlive.php?v="+Ort+"",
      function(text)
    {
      $("#Kundennummerzeige").html(text);
    });
  }

});
});
</script>

</head>
<body>

<?php


header('Content-Type: text/html; charset=iso-8859-1');
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu', 'ge');

// Datenbankzugangsdaten
$mysqlhost="localhost";
$mysqluser="root";
$mysqlpwd="Passwort";
$mysqldb="pal_pro_buchungen";

// Datenbankverbindung aufbauen
$connection=@mysql_connect($mysqlhost, $mysqluser, $mysqlpwd);
@mysql_select_db($mysqldb, $connection);


// Kundennummer einlesen
$Kundennummer=(int)$_GET['v'];
     ;

if(strlen($Kundennummer)>3){
$rq=mysql_query(" SELECT Name FROM kunden WHERE Kundennummer LIKE '$Kundennummer' ");
while($res=mysql_fetch_object($rq)){

echo ' <b> '.$res->Name.' </b> ';
}
   }
else
{
       echo 'No Results for :"'.$_GET['v'].'"';
       echo "<br>Kundennummer: ";
       echo $Kundennummer;
}
?>


      <div id="Kundennummerzeige">
<br>
</div>

            <input type="text" name="Ort" id="Ort" size="15" value="" />


</body>
</html>



Der Zugriff auf die Datenbank und die Suche darin funktioniert tadelos. Das Problem ist, er fügt mir nachdem ich einen Sucheintrag eingebe, darunter zusätzlich die Textbox nochmals ein. Warum?


CODE $("#Kundennummerzeige").html(text);
Hat damit was zu tun, aber ich weiß nicht wie es anders gehen soll
blink.gif



Lg Philipp
 
Mit der Live-Suche kann ich dir nicht wirklich weiterhelfen. Aber du solltest deine SQL Query's mal überprüfen. Das ist geradezu eine Einladung für SQL Injektion. Gerade wenn du mit $_GET arbeitest. Wenn dir jemand der Ahnung davon hat lustige Sachen in die Adresszeile einfügt, ist er wunderbar in deiner Datenbank drin..
 
Die Filterung erfolgt hier bereits:

CODE // Kundennummer einlesen
$Kundennummer=(int)$_GET['v'];


Eine weitere Filterung ist damit nicht notwendig...

Bedenklicher finde ich es, das noch das MySQL-Modul genutzt wird statt PDO oder MySQLi.
 
QUOTE (Sascha Ahlers @ Mo 2.09.2013, 14:34) Die Filterung erfolgt hier bereits:


CODE // Kundennummer einlesen
$Kundennummer=(int)$_GET['v'];


Eine weitere Filterung ist damit nicht notwendig...

Bedenklicher finde ich es, das noch das MySQL-Modul genutzt wird statt PDO oder MySQLi.

Gibt es schon einen Hinweis, wann MySQL EOL geht?

Und bin ich der einzige, für den Objekt-orientiertes programmieren schwieriger ist als prozedural?
 
QUOTE (Sascha Ahlers @ Mo 2.09.2013, 14:34) Die Filterung erfolgt hier bereits:


CODE // Kundennummer einlesen
$Kundennummer=(int)$_GET['v'];


Eine weitere Filterung ist damit nicht notwendig...

Bedenklicher finde ich es, das noch das MySQL-Modul genutzt wird statt PDO oder MySQLi.

Das hab ich dann wohl überlesen. Dann ist mein Kommentar natürlich belanglos
smile.gif
 
Zurück
Oben