Datenbank in Tabelle ausgeben

Status
Nicht offen für weitere Antworten.
Zieg mal dein jetztiger Code.
irgendwie past das was du schreibst nicht mehr zum Code der hier veröffentlicht ist.

Und zu Punkt 2: Also wird nix mit GET vom Formular übergeben. Ist dein Formular jetzt auf GET oder auf POST?
 
nene GET wird übergeben.
PHP:
<div align="right">
    <form action="Tabellen.php" method="GET">
        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>
</div>
PHP:
<?php
if (isset($_GET["submit"])) {
    error_reporting(E_ALL);
    $rowFiles = array('Userid', 'Vorname', 'Nachname','Firma','Email','Telefon','Telefon2','Laufzeit','PCLizenzen','Seriennummer','DatumAktiv','DatumEndAktiv');
    $row = array_fill_keys($rowFiles, '');
    $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 ";
    $data = array('Userid', 'Vorname', 'Nachname','Firma','Email','Telefon','Telefon2','Laufzeit','PCLizenzen','Seriennummer','DatumAktiv','DatumEndAktiv');
    if (!empty($_GET['Userid']))        $data[] = "Userid LIKE '%" .mysql_real_escape_string($_GET["Userid"])."%'";
    if (!empty($_GET['Vorname']))        $data[] = "Vorname LIKE '%" .mysql_real_escape_string($_GET["Vorname"])."%'";
    if (!empty($_GET['Nachname']))        $data[] = "Nachname LIKE '%" .mysql_real_escape_string($_GET["Nachname"])."%'";
    if (!empty($_GET['Firma']))            $data[] = "Firma LIKE '%" .mysql_real_escape_string($_GET["Firma"])."%'";
    if (!empty($_GET['Email']))            $data[] = "Email LIKE '%" .mysql_real_escape_string($_GET["Email"])."%'";
    if (!empty($_GET['Laufzeit']))        $data[] = "Laufzeit LIKE '%" .mysql_real_escape_string($_GET["Laufzeit"])."%'";
    if (!empty($_GET['PCLizenzen']))    $data[] = "PCLizenzen LIKE '%" .mysql_real_escape_string($_GET["PCLizenzen"])."%'";
    if (!empty($_GET['Seriennummer']))    $data[] = "Seriennummer LIKE '%" .mysql_real_escape_string($_GET["Seriennummer"])."%'";
    if (!empty($_GET['DatumAktiv']))    $data[] = "DatumAktiv LIKE '%" .mysql_real_escape_string($_GET["DatumAktiv"])."%'";
    if (!empty($_GET['DatumEndAktiv']))    $data[] = "DatumEndAktiv LIKE '%" .mysql_real_escape_string($_GET["DatumEndAktiv"])."%'";
    $sql .= implode(' AND ', $data);
    var_dump($_GET);
    var_dump($data);
    $result = mysql_query($sql) or die(mysql_error());
?>
Hier sind die beiden Ausschnitte der Dateien
mehr is da nicht anders?!
 
Nimm die Prüfung raus ob der Submit Button gedrückt wurde, sonst wird das nichts.

Besser noch, mach aus der Zeile:

PHP:
if (isset($_GET["submit"])) {

folgendes:

PHP:
if (isset($_GET) and count($_GET) != 0) {
 
Zuletzt bearbeitet:
Also. Was soll die folgende Zeile bewirken?
PHP:
$data = array('Userid', 'Vorname', 'Nachname','Firma','Email','Telefon','Telefon2','Laufzeit','PCLizenzen','Seriennummer','DatumAktiv','DatumEndAktiv');
Hast du mein Beispiel das ich verlinkt habe angeschaut? Dort steht wie du den Array initialisieren musst.
Denn wenn du dieses $data durch den implode an dein SQL anhängst, kommt garantiert kein gültiges SQL-Statement dabei heraus. Wie du das SQL-Statement analysieren und teste kannst, dass wiesst du ja bereits aus dem von mir verlinkten Tutorial. Darauf muss und will ich hier nicht weiter eingehen.

Du sagts, var_dump($_GET) gibt eine Tabelle und var_dump($data) gibt 0 zurück? Sorry, dass kann so nicht sein. $_GET ist nie und nimmer eine Tabelle und $data ist mindestens eine Auflistung aller Strings die du fälschlicherweise initialisiert hast.
 
ich kapier nur dein beispiel nicht.
was die zeile soll?
ich probier nun alles aus bis es geht.

Welche Zeile meinst du?

Meine obige Änderung bewirkt das die in der URL übergebenen Angaben ausgewertet werden. Der Fehler bisher war das es nur ging wenn man den Submit Button angeklickt hat.

Wenn du die "Tabelle.php" immer gleich mit den Angaben in der URL aufrufst, frag ich mich eh wozu es das Formular und den Button gibt.
 
Warning: implode(): Invalid arguments passed in /srv/www/htdocs/Tabellen.php on line 25 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 '' at line 1
bleibt weiterhin bestehn.
na mit der zeile meinte ich meine eigene das war ironisch gemeint,
jedenfalls glaub ich eher das der Fehler wo anders liegt oder warum kommt bei allem

Warning: implode(): Invalid arguments passed in /srv/www/htdocs/Tabellen.php on line 25 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 '' at line 1
 
Oben habe ich das schonmal geschrieben. Der Fehler wird von der implode-Funktion immer dann ausgelöst, wenn kein einziger Wert vorhanden ist.

Hast du die Änderung in meiner Beitrag 23 noch gelesen. Damit dürfte es dieses Problem nicht mehr geben.
 
Status
Nicht offen für weitere Antworten.
Zurück