sql abfrage in ein "Formular"

  • Themenstarter Themenstarter puschelchen
  • Beginndatum Beginndatum
PHP:
<html>
<body>
<?php
   error_reporting(E_ALL);
$rowKeys = array('Userid', 'Vorname', 'Nachname','Firma','Email','Telefon','Telefon2','Laufzeit','PCLizenzen','Seriennummer','DatumAktiv','DatumEndAktiv');
$row = array_fill_keys($rowKeys, '');
if(isset($_POST['submit'])){
    $Host = "localhost";
    $User = "david";
    $Password = "a";
    $dbname = "ABMC-Datenbank";
    $tbl="Kunden";
    mysql_connect('localhost', 'david', 'a') or die  ("Keine Verbindung möglich: ".mysql_error());
    mysql_select_db($dbname) or die  ("Keine Verbindung möglich: ".mysql_error());
    $sql  = "SELECT * FROM {$tbl} WHERE Userid = '" .mysql_real_escape_string($_POST["Userid"])."' AND";
    $sql .= " Vorname = '" .mysql_real_escape_string($_POST["Vorname"]) ."' AND";
    $sql .= " Nachname = '" .mysql_real_escape_string($_POST["Nachname"]) ."' AND";
    $sql .= " Firma = '" .mysql_real_escape_string($_POST["Firma"]) ."' AND";
    $sql .= " Email = '" .mysql_real_escape_string($_POST["Email"]) ."' AND";
    $sql .= " Telefon = '" .mysql_real_escape_string($_POST["Telefon"]) ."' AND";
    $sql .= " Telefon2 = '" .mysql_real_escape_string($_POST["Telefon2"]) ."' AND";
    $sql .= " Laufzeit = '" .mysql_real_escape_string($_POST["Laufzeit"]) ."' AND";
    $sql .= " PCLizenzen = '" .mysql_real_escape_string($_POST["PCLizenzen"]) ."' AND";
    $sql .= " Seriennummer = '" .mysql_real_escape_string($_POST["Seriennummer"]) ."' AND";
    $sql .= " DatumAktiv = '" .mysql_real_escape_string($_POST["DatumAktiv"]) ."' AND";
    $sql .= " DatumEndAktiv = '" .mysql_real_escape_string($_POST["DatumEndAktiv"]) ."'";

    $result = mysql_query($sql) or die(mysql_error());

    if(mysql_affected_rows() ==1){
        $row = mysql_fetch_assoc($result);
    }
}
?>
  
    <form action= "" method="POST">
        <div align="right"/>
        Userid <input type="text" name="Userid" value="<?php echo $row['Userid']; ?>" /><br>
        Vorname<input type="text" name="Vorname" value="<?php echo $row['Vorname']; ?>" /><br>
        Nachname <input type="text" name="Nachname" value="<?php echo $row['Nachname']; ?>" /><br>
        Firma <input type="text" name="Firma" value="<?php echo $row['Firma']; ?>" /><br>
        Email <input type="text" name="Email" value="<?php echo $row['Email']; ?>" /><br>
        Telefon<input type="text" name="Telefon" value="<?php echo $row['Telefon']; ?>" /><br>
        Telefon2 <input type="text" name="Telefon2" value="<?php echo $row['Telefon2']; ?>" /><br>
        Laufzeit <input type="text" name="Laufzeit" value="<?php echo $row['Laufzeit']; ?>" /><br>
        PCLizenzen <input type="text" name="PCLizenzen" value="<?php echo $row['PCLizenzen']; ?>" /><br>
        Seriennummer<input type="text" name="Seriennummer" value="<?php echo $row['Seriennummer']; ?>" /><br>
        DatumAktiv <input type="text" name="DatumAktiv" value="<?php echo $row['DatumAktiv']; ?>" /><br>
        DatumEndAktiv <input type="text" name="DatumEndAktiv" value="<?php echo $row['DatumEndAktiv']; ?>" /><br>
So hab ichs jetz realisiert. Trotzdem wenn ich Meier eingeb ist Formular leer also entleert sich.
Warum ich alles in dem Formular mach? weil ich sonst für jede Abfrage ein extra-script schreiben müsste und das will ich mir ersparen :)
 
Also Suchen kannst du damit im Grunde überhaput nicht. Es wird ja nur etwas gefunden wenn wirklich ALLE Angaben mit ALLEN Feldern übereinstimmen.

Ich kenne jetzt die Daten nicht. Aber wenn ich an die Adressen bei uns hier denke, da gibt es Firmennamen mit "GmbH & Co. KG" usw. der eine macht nach "Co" einen Punkt, der andere nicht. Der eine schreibt "GmbH & Co." der nächste schreibt "GmbH + Co.".

Bei deiner Abfrage wird es verdammt schwer auch nur einen Treffer zu landen.
 
Der der die Abfragen haben will der schreibt auch die sachen in die DB und er is dafür verantwortlich :).
also wie gesagt das is dem sein Bier meins is halt nur das Abfrage funktioniert Naja gefunden werden meint ich ja auch in dem Sinne mir fäll nur auf das hier alle Sachen gelöscht werden und bei dem auf der 2ten Seite erscheinen alle Eingaben.
 
Gut aber wenn du dafür verantwortlich bist das die Abfragen) klappen, dann trägst du auch die Verantwortung dafür das das System auch bedienbar ist.

Wenn dein Kollege jetzt eine Firma "Meier & Partner" erfasst und in 4 Wochen nach "Meier" sucht, dann bekommt er auch mit OR nichts zurück!

Auf der anderen Seite wenn ich als Firmanname "Meier & Partner" eingebe und z.B. bei der Seriennummer ebenfalls eine gültige (aber nicht zu dieser Firma gehörende) Eingabe mache, dann erhalt ich 2 Treffer. Welcher wird dann angezeigt?
 
Ich denke einfach das die komplette "Suchseite" anders aufgebaut werden muss.

1) Wenn ich das Formular ausfülle, dann kann es ja sein das ich nur den Namen weiß. Dann dürfen bei der Suche die restlichen Felder nicht berücksichtigt werden.

2) Der Vergleich sollte nicht mit "=" sondern mit "LIKE" gemacht werden. Ob der Joker dann sowohl hinter als auch vor den Suchbegriff gestellt werden soll ist geschmacksache.

3) Nachdem die Suche durchgeführt wurde kannst/musst du eine "Trefferliste" anzeigen wo dann der richtige Eintrag ausgewählt werden kann. Sollte nur ein Eintrag gefunden werden kannst du diesen auch gleich direkt anzeigen.

4) Es sollte überlegt werden ob wirklich alle Felder bei der Suche berücksichtigt werden müssen. Ich kann mir z.B. nicht vorstellen das jemand nach der Telefonnummer sucht weil er den Namen nicht kennt!?
 
hmm ok hab Telefonnummer nun rausgeworfen aus der Abfrage naja wenn ich angeb Hans und es sind mehrere in der DB dann sollte dies halt angezeigt werden also bau ich das formular besser als Table um oder?
 
In einer Tabelle lässt es sich vielleicht schöner darstellen.

Ich würde da einfach 2 Spalten machen und in der einen dann die UserID als Link und in der anderen die restlichen Angaben.

Wobei du die Form deshalb natürlich trotzdem brauchst!
 
Zurück