sql abfrage in ein "Formular"

  • Themenstarter Themenstarter puschelchen
  • Beginndatum Beginndatum
PHP:
$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.
 
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
 
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:

PHP:
...
// Das Klammernpaar "{}" an Ende kann nicht stimmen
if(mysql_affected_rows() ==1){} 
    $row = mysql_fetch_assoc($result); 
}
...
 
Ja ich hab den Code wieder zum alten geändert weils einfach nid geht
PHP:
<?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);
        }
?>
 
Stimmt is mir auch grad aufgefallen
ich hab jetz eingefügt:
PHP:
<?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 :)
 
Hier mal der meiner Meinung nach unsinnige Code der aber funktionieren sollte:

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

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.
 
PHP:
<?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!
        }
    }
?>
 
Zurück