sql abfrage in ein "Formular"

  • Themenstarter Themenstarter puschelchen
  • Beginndatum Beginndatum
Da läuft weder der Hase Amok noch sonst was falsch. Es passiert genau das was laut deinem Code passieren soll.

Der Vorname soll "test" sein ODER der Nachname ist '' ODER Telefon ist '' ODER Telefon2 ist '' ODER was auch immer.
Somit trifft das auch auf den ersten Eintrag in der Datenbank zu und da nur ein Eintrag (nämlich der erste) angezeigt wird ist alles richtig.
 
Zuletzt bearbeitet:
ja aber wenn ich test eingeb soll ja der zweite eintrag erscheinen DA dieser ja gemeint ist? oder hab ich da was falsch verstanden
 
Tabelle.php sieht nun so aus
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, '');
    $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 LIKE '" .mysql_real_escape_string($_POST["Userid"])."' OR";
    $sql .= " Vorname LIKE '" .mysql_real_escape_string($_POST["Vorname"]) ."' OR";
    $sql .= " Nachname LIKE '" .mysql_real_escape_string($_POST["Nachname"]) ."' OR";
    $sql .= " Firma LIKE '" .mysql_real_escape_string($_POST["Firma"]) ."' OR";
    $sql .= " Email LIKE '" .mysql_real_escape_string($_POST["Email"]) ."' OR";
    $sql .= " Laufzeit LIKE '" .mysql_real_escape_string($_POST["Laufzeit"]) ."' OR";
    $sql .= " PCLizenzen LIKE '" .mysql_real_escape_string($_POST["PCLizenzen"]) ."' OR";
    $sql .= " Seriennummer LIKE '" .mysql_real_escape_string($_POST["Seriennummer"]) ."' OR";
    $sql .= " DatumAktiv LIKE '" .mysql_real_escape_string($_POST["DatumAktiv"]) ."' OR";
    $sql .= " DatumEndAktiv LIKE '" .mysql_real_escape_string($_POST["DatumEndAktiv"]) ."'";
    $result = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($result);
?>
<table>
<tr><td>Userid </td>
<td>Vorname</td>
<td>Nachname</td>
<td>Firma</td>
<td>Email</td>
<td>Telefon</td>
<td>Telefon2</td>
<td>Laufzeit</td>
<td>PCLizenzen</td>
<td>Seriennummer</td>
<td>DatumAktiv </td>
<td>DatumEndAktiv</td>
</tr>
<?php
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?php echo $row['Userid'];?></td>
<td><?php echo $row['Vorname'];?></td>
<td><?php echo $row['Nachname'];?></td>
<td><?php echo $row['Firma'];?></td>
<td><?php echo $row['Email'];?></td>
<td><?php echo $row['Telefon'];?></td>
<td><?php echo $row['Telefon2'];?></td>
<td><?php echo $row['Laufzeit'];?></td>
<td><?php echo $row['PCLizenzen'];?></td>
<td><?php echo $row['Seriennummer'];?></td>
<td><?php echo $row['DatumAktiv'];?></td>
<td><?php echo $row['DatumEndAktiv'];?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
So bin ich fast zufrieden damit bis auf die Sache das er jeden Datensatz nun ausliefert
in der db steht nun als Vorname 5 mal Hans und 2 Datensätze ohne Vornamen. es erscheinen Alle Datensätze :/ Naja vll find ich in google was ich meld mich Später :)
 
Das du zufrieden bist wundert mich schon. Deine Abfrage arbeitet nämlich noch immter nicht so wie es LIKE eingentlich täte. Im Moment vergleichst du noch immer mit "=" und nicht mit "LIKE".

Habe ich dir aber bereits geschrieben.
 
Resource id #3 Resource id #3 Resource id #3 Resource id #3 Resource id #3 Resource id #3 Resource id #3 Resource id #3
ausgabe von <?php
while($row = mysql_fetch_array($result))
{
echo $result
?>
bei Assoc dasselbe.
Naja aber ich les erstmal Like jetz nach.
 
Ach, hast du mal wieder den Code so nebenbei verändert? Ein "echo $result" gab es im vorherigen Beitrag nicht.

Wenn es vorhin geklappt hat, warum lässt du es dann nicht so. Was ist denn der Grund für die Änderung?
 
Ich hab ne While falsch eingefügt und das hab ich alles heut früh geändert bevor ichs hier ins Forum gepostet hab. Durch die While hab ich mehrere Datensätze bekommen und nun änder ich halt das NUR das eingegebene angezeigt wird und nicht alle. :)
Ausserdem wollt ich wissen ob es am result liegt oder andere Sachen
 
Tombe Like wird doch so gemacht "SELECT * FROM {$tbl} WHERE Userid LIKE '%" .mysql_real_escape_string($_POST["Userid"])."%' OR";
Habs jetz alles durchprobiert Aber Like scheint wohl Schweres Kapitel zu sein.....
 
So wie du es jetzt geschrieben hast (mit "%") ist LIKE gedacht. Blätter mal zurück und schau dir die Abfrage in deinem Beitrag #74 an.
Da steht kein "%" und somit arbeitet LIKE genauso wie "=". Oder gibst du in die Suchmaske die Zeichen auch mit ein?

Ach übrigens was mir eben aufgefallen ist: Du bist ja jetzt angemeldet. Willkommen im Club ! ! !
 
Zurück