# sql abfrage in ein "Formular"



## puschelchen (7. Dezember 2010)

Guten Morgen 
also ich hab ja meine Datenbank von phpmyadmin und diese würd ich gern abfragen nach Userid ,Vorname ,Nachname ,Firma. Doch es scheitert schon an der Userid
ich post euch mal den Code:

```
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
$Userid="";
$Host = "localhost";
$User = "david";
$Password = "a";
$dbname = "ABMC-Datenbank";
$tbl="Kunden";
$_link = mysql_connect($Host, $User, $Password);
    if (!$_link)
        {
        # Nein, also das ganze Skript abbrechen !
        die("Keine Verbindung zur Datenbank möglich: " .
            mysql_error());
        }
        if(isset($_POST['submit'])) {
        if(mysql_fetch_array(mysql_query('SELECT name FROM tbl WHERE Userid="'.$_POST['Userid'].'";'echo '<script type="text/javascript">alert("Die Userid ist vorhanden");</script>';
exit;
}
}
    # Datenbankverbindung wieder schliessen
    mysql_close($_link);
?>
</form>
</body>
</html>
```
Als Fehler bekomme ich:
 mysql_fetch_array() expects parameter 1 to be resource, boolean given in /srv/www/htdocs/abfrage.php on line 32 
wie bekomm ich die Daten ins Formular? und wie kann ich prüfen ob Datensatz existiert? denn hier funktionierts leider nicht 
Vielen Dank


----------



## puschelchen (7. Dezember 2010)

$Userid=$_POST["Userid"]; hab ich vergessen hab ich grad entdeckt


----------



## Yaslaw (7. Dezember 2010)

Das ist ein PHP-Problem
-> verschoben

öhm, du verschachtelst da mehrere Funktionen und schliesst die ()  an einem ganz komischen Ort. Ehrlich gesagt, sehe ich sie nirgends schliessen
Zerleg das mal in einzelne saubere Zeilen. Anschliessend:


> Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
> PHP MySQL Debug Queries
> Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.


----------



## puschelchen (7. Dezember 2010)

Danke ich kann nur Nicht auf die Links klicken die du versendet hast


----------



## puschelchen (7. Dezember 2010)

```
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
$Userid=$_POST["Userid"];
$Host = "localhost";
$User = "david";
$Password = "a";
$dbname = "ABMC-Datenbank";
$tbl="Kunden";
$_link = mysql_connect($Host, $User, $Password);
    if (!$_link)
        {
            die("Keine Verbindung zur Datenbank möglich: " .
            mysql_error());
        }
    $sql = "SELECT username FROM $tbl WHERE Userid = '".$_POST['Userid']."'";
    $result = mysql_query($sql) OR die(mysql_error());

    if(!$result) {
    echo '<script type="text/javascript">alert("Die Userid ist vorhanden");</script>';
}
    mysql_close($_link);
?>
</form>
</body>
</html>
```
Ausgabe:
No database selected


----------



## puschelchen (7. Dezember 2010)

Ok habs nun durch
verändert:

```
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
error_reporting(E_ALL);
$Userid=$_POST["Userid"];
$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  = "UPDATE $tbl SET Userid = '{$Userid}'  WHERE Userid = {$Userid};";
    mysql_query($sql) or die(mysql_error());
    echo mysql_affected_rows();

?>
</form>
</body>
</html>
```
so meine ausgabe :
0 
Kann ich das irgendwie machen das meine Felder gefüllt werden und wenn ich auf "Formular absenden (der name wird noch geändert) geh erst die Daten angezeigt werden?


----------



## tombe (7. Dezember 2010)

Dir ist schon klar das bereits beim ersten Aufruf der Seite die Update-Anweisung ausgeführt wird.

Ist das so gewollt?


----------



## Yaslaw (7. Dezember 2010)

item: Du änderst die UserId auf die UserID? Was soll das bewirken
item: Du prüfst UserID als Nummer und schreibst UserID im SET-Bereich als String. Was ist es nun? ein String oder eine Nummer

Und hier nochmals der Link zum Fehlerfinden
http://www.tutorials.de/php-tutorials/358606-php-mysql-debug-queries.html#post1858002


----------



## puschelchen (7. Dezember 2010)

habs genau so gemacht wie es dort steht
Userid= Int.


----------



## tombe (7. Dezember 2010)

puschelchen hat gesagt.:


> habs genau so gemacht wie es dort steht
> Userid= Int.


 
Was steht wo und wann wird die 0 am Bildschirm ausgegeben?

Wie oben bereits geschrieben wird die Update-Anweisung gleich ausgeführt wenn die Seite aufgerufen wird. Ist zu dieser Zeit bereits ein Wert für die UserId vorhanden? Kann ja eigentlich gar nicht sein, weil du übergibst ja einen POST-Wert an die Variable und dieser kann frühestens nach dem Abschicken des Formulars übergeben werden.


----------



## puschelchen (7. Dezember 2010)

0 wird ausgegebn beim Seitenaufruf.


----------



## tombe (7. Dezember 2010)

Und was sagt uns das?

Beim Aufruf der Seite existiert $_POST["UserId"] nicht, somit ist und bleibt die Variable $UserId ebenfalls leer.

Deine Update-Anweisung sieht deshalb so aus:


```
UPDATE Kunden SET Userid = ''  WHERE Userid =
```

Lies dir einfach mal durch was du hier für Antworten bekommen hast. Dann findest du auch den Fehler.


----------



## puschelchen (7. Dezember 2010)

ja das muss ich auf nachmittag verschieben hab nun andere aufgabe


----------



## puschelchen (8. Dezember 2010)

Notice: Undefined index: Userid in /srv/www/htdocs/abfragen.php on line 19 Unknown system variable 'Userid'

Datei:
abfragen.php

```
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
error_reporting(E_ALL);
$Userid=$_POST['Userid'];
$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  = "SET Userid = '{$Userid}'  WHERE Userid = {$Userid};";
    mysql_query($sql) or die(mysql_error());
    echo mysql_affected_rows();

?>
</form>
</body>
</html>
```
+grml+ ich verstehs net was daran falsch is  hoffentlich kommt bald mein sql buch .__.


----------



## tombe (8. Dezember 2010)

Das "SQL Buch" wird dir da sicher nicht helfen, denn es hat absolut nichts mit SQL oder mySQL zu tun.

Der Fehler kommt daher das du (wie bereits mehrfach mitgeteilt) auf POST-Variablen zugreifst die es zu diesem Zeitpunkt nicht gibt!


----------



## puschelchen (8. Dezember 2010)

scheint wohl so und ja ich hab die posts gelesen aber nya
es is mir langsam scheiss egal weils mich ankotzt ich geh erstma in urlaub....


----------



## tombe (9. Dezember 2010)

Na dann kann ich dir nur eine gute Reise und ein paar schöne Tage wünschen.

Falls du mal während des Urlaubs nichts zu tun hast das Ganze nochmal:

Deine Seite wird aufgerufen und sämtlicher PHP Code abgearbeitet und genau das ist der Fehler.

Der Speichervorgang darf erst durchlaufen werden wenn du den Button angeklickt hast, denn sonst werden die benötigten Werte nicht übergeben.


----------



## puschelchen (13. Dezember 2010)

```
<html>
<body>
<form action="" method="POST">
<div align="right"/>
Userid <input type="text" name="Userid"><br>
Vorname<input type="text" name="Vorname" ><br>
Nachname <input type="text" name="Nachname"><br>
Firma <input type="text" name="Firma" ><br>
Email<input type="text" name="Email" ><br>
Telefon<input type="text" name="Telefon"  ><br>
Laufzeit<input type="text" name="Laufzeit"><br>
Lizenz PC <input type="text" name="PCLizenzen"  ><br>
Seriennummer <input type="text" name="dpSrn"  ><br>
Datum Aktiv <input type="text" name="DatumAktiv"  ><br>
Datum End Aktiv <input type="text" name="DatumEndAktiv"   ><br>
<input type=submit name=submit value="Formular absenden"><br>
<?php
error_reporting(E_ALL);
$Userid="";
if(isset($_POST['Abschicken'])){
if (isset($_POST["Userid"])){
$Userid=$_POST["Userid"];
}
$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"])."'";
    mysql_query($sql) or die(mysql_error());
    echo mysql_affected_rows();
}
?>
</form>
</body>
</html>
```
 meinst du so vll tombe?Die Felder allerdings bleiben leer


----------



## Yaslaw (13. Dezember 2010)

Ein Tipp am Rande: Tabulatoren!
Wenn du dein Code eingerückt schreibst, siehst man ohne abzählen welche Klammer wo geschlossen wird.

```
error_reporting(E_ALL);
$Userid="";
if(isset($_POST['Abschicken'])){
    if (isset($_POST["Userid"])){
        $Userid=$_POST["Userid"];
    }
    $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"])."'";
    mysql_query($sql) or die(mysql_error());
    echo mysql_affected_rows();
}
```

Aber: Was ist $_POST['Abschicken'] ? Dein Sende-Knopf heisst doch submit und nicht Abschicken.....


----------



## puschelchen (13. Dezember 2010)

Ja das hab ich in meinem abgeändert hier noch nicht 
Jedenfalls fehlen noch das die Sachen die gefunden werden in den Feldern stehn


----------



## Puschelchen (13. Dezember 2010)

Ahhh     echo mysql_affected_rows(); gibt 1 aus 
habs versucht mit Userid <input type="text" name="Userid" value="<?php echo $Userid; ?>" ><br>
 hat aber das Feld nicht behalten


----------



## tombe (13. Dezember 2010)

Und an welcher Stelle/Zeile soll mit obigem Code der Wert von $Userid ausgegeben werden und wo wird dieser Variablen überhaupt ein Wert zugewiesen?


----------



## puschelchen (13. Dezember 2010)

Das "Formular" dient zur Datenbank Abfrage.
http://img259.imageshack.us/i/bildschirmfoto29.png/
Hier so siehts aus
hier geb ich Userid an un er soll die Daten rausholen und in Jedes Feld zuordnen.


----------



## Yaslaw (13. Dezember 2010)

Da gibt es viel zu ändern. Als erstes die Reihenfolge. Zuerst prüfen und auslesen, dann das Formular schreiben

```
<html>
<body>
<?php
	error_reporting(E_ALL);
	//Die Felder definieren. Hier eine gekürzte Fassung
	//Die Namen müssen den DB-Feldern entsprechen
	//ggf. können diese auch aus der DB ausgelesen werden
	$rowKeys = array('Userid', 'Vorname', 'Nachname');
	//Leerer Zeile erstellen
	$row = array_fill_keys($rowKeys, '');

	if(isset($_POST['submit'])){
		//TODO: DB-Connect etc.
	    $sql  = "SELECT * FROM {$tbl} WHERE Userid  ='".mysql_real_escape_string($_POST["Userid"])."'";
		//Die Referenz auf das ausgeführte Query hinzufügen
	    $result = mysql_query($sql) or die(mysql_error());
	    if(mysql_affected_rows() ==1){}
			//Die Daten auslesen und unsere leere Zeile überschreiben
		    $row = mysql_fetch_assoc($result);
		}
	} 
?>
	<form action="" method="POST">
		<div align="right"/>
<!-- die Values eintragen: Neu das Value-Atribut des Input-Tags-->
		Userid <input type="text" name="Userid" value="<?php echp $row['Userid']; ?>" /><br>
		Vorname<input type="text" name="Vorname" value="<?php echp $row['Vorname']; ?>" /><br>
		Nachname <input type="text" name="Nachname" value="<?php echp $row['Nachname']; ?>" /><br>
<!-- hier die analog restlichen Felder -->
		<input type=submit name=submit value="Formular absenden" /><br>
	</form>
</body>
</html>
```


----------



## tombe (13. Dezember 2010)

Dann schreibe ich den obigen Text einfach nochmal ein bisschen anders:

Schau dir an, an welcher Stelle der Wert von $Userid ausgegeben werden soll und wo dieser Variablen überhaupt ein Wert zugewiesen wird!


----------



## puschelchen (13. Dezember 2010)

wow vielen vielen Dank es Funktioniert 
Ich wünsch euch was machts gut


----------



## puschelchen (14. Dezember 2010)

hab allerdings noch ne Frage wie erweitert ihr das  ganze?

```
<?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"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Vorname  ='".mysql_real_escape_string($_POST["Vorname"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Nachname  ='".mysql_real_escape_string($_POST["Nachname"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Firma  ='".mysql_real_escape_string($_POST["Firma"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Email  ='".mysql_real_escape_string($_POST["Email"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Laufzeit  ='".mysql_real_escape_string($_POST["Laufzeit"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE PCLizenzen  ='".mysql_real_escape_string($_POST["PCLizenzen"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Seriennummer  ='".mysql_real_escape_string($_POST["Seriennummer"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE DatumAktiv  ='".mysql_real_escape_string($_POST["DatumAktiv"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE 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);
        }
```
  gestern funktionierte es noch heut nicht mehr kann man das auch zusammenfassen?


----------



## tombe (14. Dezember 2010)

> kann man das auch zusammenfassen?



Damit zum Beispiel:
http://www.w3schools.com/Sql/sql_and_or.asp


----------



## Puschelchen (14. Dezember 2010)

Okay ich versuchs mal mit OR


----------



## puschelchen (14. Dezember 2010)

Parse error: syntax error, unexpected T_LOGICAL_AND in /srv/www/htdocs/abfragetest.php on line 16 
dasselbe kommt bei OR raus

```
$sql  = "SELECT * FROM {$tbl} WHERE Userid  ='".mysql_real_escape_string($_POST["Userid"]).AND  Vorname  =.mysql_real_escape_string($_POST["Vorname"]). AND Nachname  =.mysql_real_escape_string($_POST["Nachname"])"'
";
```
Und hier alle Felder die ich abfragen möchte.

```
<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>
```
Ich hoff ihr könnt mir irgendwie helfen oder nochmals ne Doku mir geben


----------



## tombe (14. Dezember 2010)

```
$sql  = "SELECT * FROM {$tbl} WHERE Userid  ='".mysql_real_escape_string($_POST["Userid"]) ."' AND  Vorname  = '" .mysql_real_escape_string($_POST["Vorname"]). "' AND Nachname  = '" .mysql_real_escape_string($_POST["Nachname"]) ."'";
```

Ein kurzes echo $sql; würde hier schon helfen. Denn dann würdest du sehen wie die Abfrage aussieht.


----------



## Puschelchen (14. Dezember 2010)

Geht ja nicht da ich Parse error: syntax error, unexpected T_LOGICAL_AND in /srv/www/htdocs/abfragetest.php on line 16  immer bekomm... x.x


----------



## tombe (14. Dezember 2010)

Puschelchen hat gesagt.:


> Geht ja nicht da ich Parse error: syntax error, unexpected T_LOGICAL_AND in /srv/www/htdocs/abfragetest.php on line 16  immer bekomm... x.x


 
Gut zu wissen und was soll mir das jetzt sagen?
Wie sieht Zeile 16 aus, ist das die Abfrage oder steht da etwas anderes?


----------



## puschelchen (14. Dezember 2010)

ja da steht die Abfrage 
danke das du mir hilfst Tombe <3


----------



## tombe (14. Dezember 2010)

Nicht böse sein, aber ich trau dir nicht. Wir hatten es schon mehr als ein Mal das du Code nicht übernommen sondern erneut falsch eingegeben hast.
Zeig mal was du jatzt hast (ein paar Zeilen vorher und nachher auch bitte).

Wenn auf Seite 2 dein Originalcode steht, ist da wohl eh noch ein anderer Fehler drin:


```
...
// Das Klammernpaar "{}" an Ende kann nicht stimmen
if(mysql_affected_rows() ==1){} 
    $row = mysql_fetch_assoc($result); 
}
...
```


----------



## puschelchen (14. Dezember 2010)

Ja ich hab den Code wieder zum alten geändert weils einfach nid geht

```
<?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"]."'";
        $result = mysql_query($sql) or die(mysql_error());
        if(mysql_affected_rows() ==1){}
            $row = mysql_fetch_assoc($result);
        }
?>
```


----------



## puschelchen (14. Dezember 2010)

Stimmt is mir auch grad aufgefallen 
ich hab jetz eingefügt:

```
<?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"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Vorname  ='".mysql_real_escape_string($_POST["Vorname"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Nachname  ='".mysql_real_escape_string($_POST["Nachname"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Firma  ='".mysql_real_escape_string($_POST["Firma"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Email  ='".mysql_real_escape_string($_POST["Email"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Laufzeit  ='".mysql_real_escape_string($_POST["Laufzeit"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE PCLizenzen  ='".mysql_real_escape_string($_POST["PCLizenzen"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE Seriennummer  ='".mysql_real_escape_string($_POST["Seriennummer"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE DatumAktiv  ='".mysql_real_escape_string($_POST["DatumAktiv"])."'";
        $sql  = "SELECT * FROM {$tbl} WHERE 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);
        }
}
?>
```
Naja muss ich mir was Überlegen


----------



## tombe (14. Dezember 2010)

Hier mal der meiner Meinung nach unsinnige Code der aber funktionieren sollte:


```
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);
	}
}
```

Unsinnig ist er deshalb weil wenn du bei der Abfrage den Filter auf die Userid setzt, dann sollte dies doch ein eindeutiger Schlüssel sein. Wozu dann also noch die ganzen anderen Bedingungen?

Für den Fall das du diesen Code verwenden solltest, beachte bitte das bei den POST-Variablen vermutlich nicht die richtigen Bezeichner angegeben sind. Vergleiche sie alle nochmal mit den Namen die du für die Textfelder im Formular verwendest und passe sie entsprechend an.


----------



## Weihnachten (14. Dezember 2010)

```
<?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"]."'";


        $result = mysql_query($sql) or die(mysql_error());
        $num = mysql_num_rows($result);
        $row = mysql_fetch_assoc($result);
        
        if($num > 0){
           //Was auch immer hier hin kommt, wird 
           //erst ausgeführt wenn $num größer 0 ist!
        }
    }
?>
```


----------



## Puschelchen (14. Dezember 2010)

Nimmt eh nur einer unserer Firma her der die Firma etc suchen will ^^


----------



## puschelchen (14. Dezember 2010)

```
<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


----------



## tombe (14. Dezember 2010)

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.


----------



## puschelchen (14. Dezember 2010)

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.


----------



## Puschelchen (14. Dezember 2010)

Hab nun And mit OR ausgetauscht und jetz funktionierts


----------



## tombe (14. Dezember 2010)

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?


----------



## puschelchen (14. Dezember 2010)

Okay das Stimmt allerdings... :/


----------



## puschelchen (14. Dezember 2010)

Hast du ne Doku oder sowas für das Problem oder n Lösungsansatz?


----------



## tombe (14. Dezember 2010)

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!?


----------



## Puschelchen (14. Dezember 2010)

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?


----------



## tombe (14. Dezember 2010)

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!


----------



## Puschelchen (14. Dezember 2010)

okay habs umgeändert löscht aber wiedermal die eingabefelder :/

```
<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 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());

    if(mysql_affected_rows() ==1){
        $row = mysql_fetch_assoc($result);
    }
}
?>    <form action="" method="POST">
        <table>
        <tr><td>
        Userid <input type="text" name="Userid" value="<?php echo $row['Userid']; ?>" /><br></td></tr>
        <tr><td>Vorname<input type="text" name="Vorname" value="<?php echo $row['Vorname']; ?>" /><br></td></tr>
        <tr><td>Nachname <input type="text" name="Nachname" value="<?php echo $row['Nachname']; ?>" /><br></td></tr>
        <tr><td>Firma <input type="text" name="Firma" value="<?php echo $row['Firma']; ?>" /><br></td></tr>
        <tr><td>Email <input type="text" name="Email" value="<?php echo $row['Email']; ?>" /><br></td></tr>
        <tr><td>Telefon<input type="text" name="Telefon" value="<?php echo $row['Telefon']; ?>" /><br></td></tr>
        <tr><td>Telefon2 <input type="text" name="Telefon2" value="<?php echo $row['Telefon2']; ?>" /><br></td></tr>
        <tr><td> Laufzeit <input type="text" name="Laufzeit" value="<?php echo $row['Laufzeit']; ?>" /><br></td></tr>
        <tr><td>PCLizenzen <input type="text" name="PCLizenzen" value="<?php echo $row['PCLizenzen']; ?>" /><br></td></tr>
        <tr><td>
        Seriennummer<input type="text" name="Seriennummer" value="<?php echo $row['Seriennummer']; ?>" /><br></td></tr>
        <tr><td>DatumAktiv <input type="text" name="DatumAktiv" value="<?php echo $row['DatumAktiv']; ?>" /><br></td></tr>
        <tr><td>
        DatumEndAktiv <input type="text" name="DatumEndAktiv" value="<?php echo $row['DatumEndAktiv']; ?>" /><br></td></tr>
         <tr><td><input type=submit name=submit value="Formular absenden" /><br></td></tr>
</table>
    </form>
</body>
</html>
```
Naja ich spiel noch bissl dran rum


----------



## tombe (14. Dezember 2010)

Ohne jetzt zu wissen was du in der Datenbak gespeichert hast und was du zum Suchen eingegeben hast behaupte ich mal das die Felder leer sind weil die Suche keinen Eintrag gefunden hat.

LIKE ohne den/die Joker "%" ist wie der Vergleich mit "=".

Wenn ich in der DB z.B. "Haus", "Hase", "Hand" habe und bei der Suche "LIKE ha" schreibe, erhalte ich keinen Treffer.
Erst wenn ich es in "LIKE ha%" ändere, bekomme ich was zurück.

Siehe hier.

*NACHTRAG:*
Wobei ich mir deinen Code eben nochmal angeschaut habe. DieTabelle die du jetzt hast ist ja nur für die Eingabemaske. Was ist mit der "Trefferliste" wenn mehrere Einträge gefunden werden?


----------



## Puschelchen (15. Dezember 2010)

```
<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 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());

    if(mysql_affected_rows() ==1){
        $row = mysql_fetch_assoc($result);
    }
}
?>
    <form action="" method="POST">

<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>
<tr>
<td><p> value="<?php echo $row['Userid']; ?>"</p></td>
<td><p value="<?php echo $row['Vorname']; ?>"</p></td>
<td><p value="<?php echo $row['Nachname']; ?>"</p></td>
<td><p value="<?php echo $row['Firma']; ?>"</p></td>
<td><p value="<?php echo $row['Email']; ?>"</p></td>
<td><p value="<?php echo $row['Telefon']; ?>"</p></td>
<td><p value="<?php echo $row['Telefon2']; ?>"</p></td>
<td><p value="<?php echo $row['Laufzeit']; ?>"</p></td>
<td><p value="<?php echo $row['PCLizenzen']; ?>"</p></td>
<td><p value="<?php echo $row['Seriennummer']; ?>"</p></td>
<td><p value="<?php echo $row['DatumAktiv']; ?>"</p></td>
<td><p value="<?php echo $row['DatumEndAktiv']; ?>"</p></td>
</tr>
</table>
<input type=submit name=submit value="Formular absenden" /><br>
</form>
</body>
</html>
```
so sieht mein derzeitiger Code aus 
was mir nicht gefällt ich seh die ausgabeFelder nicht sprich ICH hasse tabellen.
-.-
wie krieg ich n Feld hin das ichs eingeben kann *grummel grummel+
Danke für Antworten 
lg puschelchen.


----------



## tombe (15. Dezember 2010)

Eine bescheidene Frage. Was soll das hier sein:


```
<td><p> value="<?php echo $row['Userid']; ?>"</p></td>
```


----------



## Puschelchen (15. Dezember 2010)

hab rumgespielt grad
hab ich unter anderem eben auch 
Ausgabe:
 Notice: Undefined variable: result in /srv/www/htdocs/Tabelle.php on line 52 Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /srv/www/htdocs/Tabelle.php on line 52
Userid 	Vorname 	Nachname 	Firma 	Email 	Telefon 	Telefon2 	Laufzeit 	PCLizenzen 	Seriennummer 	DatumAktiv 	DatumEndAktiv
php-Datei derzeit:

```
$User = "david";
    $Password = "a";
    $dbname = "ABMC-Datenbank";
    $tbl="Kunden";
    mysql_connect('localhost',<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 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());

    if(mysql_affected_rows() ==1){
        $row = mysql_fetch_assoc($result);
    }
}
?>
    <form action="" method="POST">

<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_array($result)){
}
?>
<tr>
<td><?=$row['Userid']?></td>
<td><?=$row['Vorname']?></td>
<td><?=$row['Nachname']?></td>
<td><?=$row['Firma']?></td>
<td><?=$row['Email']?></td>
<td><?=$row['Telefon']?></td>
<td><?=$row['Telefon2']?></td>
<td><?=$row['Laufzeit']?></td>
<td><?=$row['PCLizenzen']?></td>
<td><?=$row['Seriennummer']?></td>
<td><?=$row['DatumAktiv']?></td>
<td><?=$row['DatumEndAktiv']?></td>
</tr>
</table>
<input type=submit name=submit value="Formular absenden" /><br>
</form>
</body>
</html>
```
ich arbeite grad paar dokus durch mal sehn ob ich was passendes finde 
See You Later.


----------



## Puschelchen (15. Dezember 2010)

http://img69.imageshack.us/i/bildschirmfoto30.png/ 
so sieht meine Tabelle nun aus
und das is meine Datei:

```
<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 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());
    if(mysql_affected_rows() ==1){
        $row = mysql_fetch_assoc($result);
    }
}
?>
<form action="" method="POST">
<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>
<tr>
<td><?=$row['Userid']?></td>
<td><?=$row['Vorname']?></td>
<td><?=$row['Nachname']?></td>
<td><?=$row['Firma']?></td>
<td><?=$row['Email']?></td>
<td><?=$row['Telefon']?></td>
<td><?=$row['Telefon2']?></td>
<td><?=$row['Laufzeit']?></td>
<td><?=$row['PCLizenzen']?></td>
<td><?=$row['Seriennummer']?></td>
<td><?=$row['DatumAktiv']?></td>
<td><?=$row['DatumEndAktiv']?></td>
</tr>
</table>
<input type=submit name=submit value="Formular absenden" /><br>
</form>
</body>
</html>
```
ich möchte nun mein altes Formular umleiten auf die Tabelle.php und dann dort die Felder ausgeben Leider wird mir Gar kein einziges angezeigt vll wisst ihr wo mein Fehler liegt.


----------



## tombe (15. Dezember 2010)

Erkennen tut man da schonmal gar nichts weil es nicht formatiert ist!

Ansonsten die gleiche Frage wie weiter oben auch, was soll das sein?


```
<td><?=$row['Userid']?></td>
<td><?=$row['Vorname']?></td>
<td><?=$row['Nachname']?></td>
<td><?=$row['Firma']?></td>
<td><?=$row['Email']?></td>
<td><?=$row['Telefon']?></td>
<td><?=$row['Telefon2']?></td>
<td><?=$row['Laufzeit']?></td>
<td><?=$row['PCLizenzen']?></td>
<td><?=$row['Seriennummer']?></td>
<td><?=$row['DatumAktiv']?></td>
<td><?=$row['DatumEndAktiv']?></td>
```


----------



## Puschelchen (15. Dezember 2010)

Naja ich hab ne Doku bzw Tutorial gefunden dort wurde das so gezeigt mit ner While-Schleife aber die gibt immer fehler aus. Naja wie gesagt SQL und PHP hab ich wenig Erfahrung und das Tutorial scheint wohl auch das letzte zu sein :/


----------



## Yaslaw (15. Dezember 2010)

ändere alle 

```
<?=$xyz?>
zu
<?php echo $xyz; ?>
```
die Kurzversion ist nicht auf allen Servern aktiviert


----------



## tombe (15. Dezember 2010)

Genau das habe ich gemeint, da ich die "Kurzversion" so gar nicht kenne.


----------



## puschelchen (16. Dezember 2010)

ja stimmt Trotzdem bekomme ich keine Ausgabe in die Tabelle :/

```
<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 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());
    if(mysql_affected_rows() ==1){
        $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>
<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>

</table>
</body>
</html>
```
habt ihr ne Idee


----------



## tombe (16. Dezember 2010)

Zu dem was du jetzt plötzlich da oben wieder reingestellt hast habe ich viele Ideen.

Ich frage mich nur ob es einen Sinn macht es dir jetzt nochmal alles zu schreiben, da du anscheinend nichts übernimmst was man dir in vorherigen Beiträgen gesagt hat.

Zwei Tipps: FORM und SUBMIT


----------



## puschelchen (16. Dezember 2010)

Nein ich brauch kein submit da ich von form.php auf die Tabelle.php weiterleite 
deswegen hab ich auch Form rausgeworfen.
UND ich lese die POSTS


----------



## tombe (16. Dezember 2010)

Was soll das dann:


```
if(isset($_POST['submit'])){
```


----------



## Puschelchen (16. Dezember 2010)

ja ich hab das NACH dem ichs hier gepostet hab weiter editiert.


----------



## tombe (16. Dezember 2010)

Toll, was bedeutet das jetzt.

Das du hier irgendeinen nicht funktionierenden Code platzierst und in Wirklichkeit mit einem ganz anderen Code arbeitest der ebenfalls nicht geht.

Wie soll man dir helfen wenn man nicht weiß womit du jetzt arbeitest?


----------



## puschelchen (16. Dezember 2010)

Ne Ne ich hab nur das submit rausgeworfen
das if das post das form
Kanns dir aber gern Posten was ich derzeit hab:

```
<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 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());
    if(mysql_affected_rows() ==1){
        $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 ($adr = mysql_fetch_array($sql)){
?>
<tr>
<td><?php echo $adr['Userid'];?></td>
<td><?php echo $adr['Vorname'];?></td>
<td><?php echo $adr['Nachname'];?></td>
<td><?php echo $adr['Firma'];?></td>
<td><?php echo $adr['Email'];?></td>
<td><?php echo $adr['Telefon'];?></td>
<td><?php echo $adr['Telefon2'];?></td>
<td><?php echo $adr['Laufzeit'];?></td>
<td><?php echo $adr['PCLizenzen'];?></td>
<td><?php echo $adr['Seriennummer'];?></td>
<td><?php echo $adr['DatumAktiv'];?></td>
<td><?php echo $adr['DatumEndAktiv'];?></td>
<tr>
<?php
}
?></table>
</body>
</html>
```
das ist derzeit die Tabelle.php
Das ist die Fehlermeldung:
Notice: Undefined variable: sql in /srv/www/htdocs/Tabelle.php on line 47 Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in /srv/www/htdocs/Tabelle.php on line 47 

Und ich tu grad nix verändern.


----------



## puschelchen (16. Dezember 2010)

Grummel falsche Datei:

```
<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());
    if(mysql_affected_rows() ==1){
        $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>
<tr>
<td><?php echo $adr['Userid'];?></td>
<td><?php echo $adr['Vorname'];?></td>
<td><?php echo $adr['Nachname'];?></td>
<td><?php echo $adr['Firma'];?></td>
<td><?php echo $adr['Email'];?></td>
<td><?php echo $adr['Telefon'];?></td>
<td><?php echo $adr['Telefon2'];?></td>
<td><?php echo $adr['Laufzeit'];?></td>
<td><?php echo $adr['PCLizenzen'];?></td>
<td><?php echo $adr['Seriennummer'];?></td>
<td><?php echo $adr['DatumAktiv'];?></td>
<td><?php echo $adr['DatumEndAktiv'];?></td>
<tr>
</table>
</body>
</html>
```


----------



## tombe (16. Dezember 2010)

```
// wenn die Daten so ($row) ermittelt werden
$row = mysql_fetch_assoc($result);
// können sie schlecht so ($adr) ausgegeben werden
echo $adr['Userid'];
```

Das deine SQL-Anweisung so mit größter Wahrscheinlichkeit nichts zurück liefert, das brauche ich dir ja nicht sagen, da du ja liest was man dir schreibt/geschrieben hat.

Für den Fall das du ein Ergebnis bekommst, dann ist es sicher nicht nur ein Treffer sondern es dürften mehrere sein. In diesem Fall wird das "mysql_affected_rows() ==1" wohl auch nichts werden.


----------



## puschelchen21 (16. Dezember 2010)

Code der abfrage

```
<html>
<body>
    <form action="Tabelle.php" method="POST">
        <div align="right"/>
        Userid <input type="text" name="Userid"/><br>
        Vorname<input type="text" name="Vorname"/><br>
        Nachname <input type="text" name="Nachname"/><br>
        Firma <input type="text" name="Firma"/><br>
        Email <input type="text" name="Email"/><br>
        Telefon<input type="text" name="Telefon"/><br>
        Telefon2 <input type="text" name="Telefon2"/><br>
        Laufzeit <input type="text" name="Laufzeit"/><br>
        PCLizenzen <input type="text" name="PCLizenzen"/><br>
        Seriennummer<input type="text" name="Seriennummer"/><br>
        DatumAktiv <input type="text" name="DatumAktiv"/><br>
        DatumEndAktiv <input type="text" name="DatumEndAktiv"/><br>
        <input type=submit name=submit value="Formular absenden" /><br>
    </form>
</body>
</html>
```
Code der Tabelle.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>
<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>
</table>
</body>
</html>
```
Eingegeben wurde bei Vorname :test 
Ausgabe:
http://img715.imageshack.us/i/bildschirmfoto31.png/

Datenbank:
http://img824.imageshack.us/i/bildschirmfoto32.png/

Irgendwo läuft der Hase wohl Amok 
Naja ich werds morgen weiter testen muss nun los zur anderen Arbeitsstelle bis dann.


----------



## tombe (16. Dezember 2010)

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.


----------



## puschelchen21 (17. Dezember 2010)

ja aber wenn ich test eingeb soll ja der zweite eintrag erscheinen DA dieser ja gemeint ist? oder hab ich da was falsch verstanden


----------



## puschelchen (17. Dezember 2010)

ah oky es funktioniert nur wie bring ich php dazu das er ALLE datensätze ausgibt
denn bei mir erscheint nur einer... :/


----------



## puschelchen (17. Dezember 2010)

Tabelle.php sieht nun so aus

```
<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


----------



## tombe (17. Dezember 2010)

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.


----------



## puschelchen (17. Dezember 2010)

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.


----------



## tombe (17. Dezember 2010)

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?


----------



## puschelchen (17. Dezember 2010)

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


----------



## puschelchen (17. Dezember 2010)

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.....


----------



## tombe (17. Dezember 2010)

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 ! ! !*


----------



## puschelchen (17. Dezember 2010)

Jaaaaa Seit Gestern vielen Dank 
Bin hier überwiegend unterwegs da man hier ruhig Fragen kann.
Naja und wie Filter ich nun die Ausgaben? wenn like wie = ist bringt Like ja auch Relativ wenig.
hmmm Aber wie filterst du dann die Ausgaben sonst? :/ 
Neeee in der suchmaske sind sonst keine Zeichen nur mich stört das er alle ausgibt  weil was ist wenn ich kunde x suche un kunde von a-z angezeigt wird und ich dann erstma 100000 einträge durchforsten muss um denjenigen zu finden ^^

Und um mich zu korrigieren

```
<b> ich bin FAST zufrieden Damit</b>
```
Heisst das mit der Suche muss ich noch einschränken und dann passts


----------



## tombe (17. Dezember 2010)

LIKE bringt schon etwas, wenn man es richtig anwendet.

Stell dir vor du hast jetzt wirklich 100.000 Adressen in der Datenbank. Da gibt es sicher nicht nur einen Schmi*dt*. Schreibt der sich jetzt aber mit "T", mit "D" oder mit "DT" am Schluss?
Wenn du also mit "name LIKE Schmid" suchst wird er nicht gefunden. Wenn du aber "name LIKE Schmi%" nimmst ist er in der Trefferliste enthalten.

Was bei dir die Trefferzahl so verfälscht ist die Tatsache das du alle Suchbegriffe mit OR verknüpfst.

Beispiel, es gibt
- Herrn *Schmidt* in der *Hauptstrasse* in *Hamburg*
- Frau Müller in der *Hauptstrasse* in München
- Familie Huber in der Nebenstrasse in *Hamburg*

Du suchst jetzt nach "name LIKE 'Schmid' OR strasse LIKE 'Hauptstrasse' OR ort LIKE 'Hamburg'"

Dann werden alle 3 Datensätze zurückgeliefert da entweder Schmid ODER Hauptstrasse ODER Hamburg richtig ist. Für diese Suche wäre es besser du würdest mit "AND" verknüpfen.

Bei einer anderen Suche kann es aber wirklich besser sein wenn du die Angaben mit ODER verknüpfst. Mach deshalb in die Suchmaske zwei Optionsbuttons. Der eine übergibt den Wert "OR" und der andere "AND". Diesen Wert baust du dann in die Abfrage ein. Dann kannst du beim Suchen selber entscheiden was du haben willst.


----------



## puschelchen (17. Dezember 2010)

und wie übertrag ich das jetz auf POST ? also alle OR mit And austauschen  is erledigt
Ausgabe gibts nich mehr Felder bleiben Leer meine Dateien sehn so aus also formular wie anfangs 
und Tabelle.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"])."' AND";
    $sql .= " Vorname LIKE '" .mysql_real_escape_string(' $_POST["Vorname"]') ."' AND";
    $sql .= " Nachname LIKE '" .mysql_real_escape_string(' $_POST["Nachname"]') ."' AND";
    $sql .= " Firma LIKE '" .mysql_real_escape_string(' $_POST["Firma"]') ."' AND";
    $sql .= " Email LIKE '" .mysql_real_escape_string(' $_POST["Email"]') ."' AND";
    $sql .= " Laufzeit LIKE '" .mysql_real_escape_string(' $_POST["Laufzeit"] ') ."' AND";
    $sql .= " PCLizenzen LIKE '" .mysql_real_escape_string(' $_POST["PCLizenzen"]') ."' AND";
    $sql .= " Seriennummer LIKE '" .mysql_real_escape_string(' $_POST["Seriennummer"]') ."' AND";
    $sql .= " DatumAktiv LIKE '" .mysql_real_escape_string(' $_POST["DatumAktiv"]') ."' AND";
    $sql .= " DatumEndAktiv LIKE '" .mysql_real_escape_string(' $_POST["DatumEndAktiv"]') ."'";
    $result = mysql_query($sql) or die(mysql_error());
    $row = mysql_fetch_assoc($result);
?>
<table border="1">
<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>
```
 meine Ergebnisse bleiben nun leer. 
diese verflickste Tabelle... :/


----------



## tombe (17. Dezember 2010)

Du benützt LIKE noch immer falsch:
1) Schmid
2) Schmidt
3) Schmit
4) Müller-Schmid


```
name LIKE 'Schmid' //findet nur die Nummer 1

name LIKE 'Schmid%' //findet die Nummer 1 und 2

name LIKE 'Schmi%' //findet die Nummer 1, 2 und 3

name LIKE '%Schmid%' //findet die Nummer 1, 2 und 4
```
Bei dir muss es deshalb so


```
$sql .= " Vorname LIKE '%" .mysql_real_escape_string(' $_POST["Vorname"]') ."'% AND";
```

oder so


```
$sql .= " Vorname LIKE '" .mysql_real_escape_string(' $_POST["Vorname"]') ."%' AND";
```

aussehen.


----------



## puschelchen (20. Dezember 2010)

Okay habs abgeändert Aber es geht nicht Tabelle bleibt leider leer 
In der DB ist Derzeit ein Eintrag
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$_POST[\"Vorname\"]%' AND Nachname LIKE ' $_POST[\"Nachname\"]%' AND Firma LIKE ' at line 1

Ab un zu geht die Abfrage und dann bleibt sie leer is das normal? o.o
ah ok ne stimmt schon man muss das nur neu aufrufen denn beim zurückgehn verliert er die Sachen


----------



## tombe (20. Dezember 2010)

Kannst du mal erklären was jetzt wann geht und was nicht.

Wenn du einen Fehler für die SQL-Anweisung erhältst, dann müsste dieser immer kommen und nicht nur manchmal (außer du hast jetzt nochmal was geändert!?).


----------



## puschelchen (20. Dezember 2010)

Ne hat sich erledigt brauch nur noch ne css formatierung für die leeren felder weil so
siehts doof aus:
http://img694.imageshack.us/i/bildschirmfoto33.png/


----------



## tombe (20. Dezember 2010)

Anstelle von den NULL Werten kannst du auch durch PHP ein geschütztes Leerzeichen (&nbsp oder sonst einen Hinweis ausgeben lassen:


```
echo (is_null($variable) ? "&nbsp;" : $variable);
```

dann sieht deine Tabelle auch besser aus.


----------



## puschelchen (20. Dezember 2010)

```
<tr border="2" cellspacing="5" cellpadding="5">
<td><?php echo $row['Userid'];?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Vorname']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Nachname']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Firma']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Email']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Telefon']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Telefon2']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Laufzeit']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['PCLizenzen']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['Seriennummer']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['DatumAktiv']);?></td>
<td><?php echo (is_null($row) ? "&nbsp;" :$row['DatumEndAktiv']);?></td>
</tr>
```
so hab ichs abgeändert aber verändert hats nix o.o

geb ich Test ein kommt KEIN Datensatz da nicht alle Felder gefüllt sind
andere Datensätze wie z.b. Vruna  sind alle datenfelder gefüllt gibt er sie aus?!


----------



## puschelchen (20. Dezember 2010)

weisste was problem is?
einmal zeigt er Daten an einmal nicht 
geb ich Vruna ein gibt er alles aus
geb ich Test ein gibt er nix aus


----------



## tombe (20. Dezember 2010)

Du solltest ein bisschen mehr darüber nachdenken was du da so abtippst:


```
<td><?php echo (is_null($row['Vorname']) ? "&nbsp;" :$row['Vorname']);?></td>
<td><?php echo (is_null($row['Nachname']) ? "&nbsp;" :$row['Nachname']);?></td>
<td><?php echo (is_null($row['Firma']) ? "&nbsp;" :$row['Firma']);?></td>
<td><?php echo (is_null($row['Email']) ? "&nbsp;" :$row['Email']);?></td>
<td><?php echo (is_null($row['Telefon']) ? "&nbsp;" :$row['Telefon']);?></td>
<td><?php echo (is_null($row['Telefon2']) ? "&nbsp;" :$row['Telefon2']);?></td>
<td><?php echo (is_null($row['Laufzeit']) ? "&nbsp;" :$row['Laufzeit']);?></td>
<td><?php echo (is_null($row['PCLizenzen']) ? "&nbsp;" :$row['PCLizenzen']);?></td>
<td><?php echo (is_null($row['Seriennummer']) ? "&nbsp;" :$row['Seriennummer']);?></td>
<td><?php echo (is_null($row['DatumAktiv']) ? "&nbsp;" :$row['DatumAktiv']);?></td>
<td><?php echo (is_null($row['DatumEndAktiv']) ? "&nbsp;" :$row['DatumEndAktiv']);?></td>
```

$row ist das gesamte Array, du musst die einzelnen Elemente prüfen.


----------



## puschelchen (21. Dezember 2010)

Okay habs abgeändert aber es ändert nichts an der Tabelle die sieht aus wie vorher :/
also vll doch mit isset prüfen ob Variable gefüllt ist?
Danke Tombe für den Tipp.


----------



## puschelchen (21. Dezember 2010)

Lösung gefunden 
hab mal isset probiert hat nid funktioniert aber empty

```
<?php if (empty($row)) {  echo $row['Firma'];}else {echo "&nbsp;";}?>
```
 
Vielen Dank für alle die mir geholfen haben *freu*


----------

