[PHP] Nur wenn 2 Einträge aus Datenbank passen, dann ok

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Mirak, 7. November 2009 .

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 7. November 2009
    Nur wenn 2 Einträge aus Datenbank passen, dann ok

    Hey,

    ich habe mir grade ein Newsletter Script geschreiben und eintragen und versenden geht perfekt.

    Jez muss man sich ja auch wieder austragen können, das geht nicht.

    Hier mein Script:

    select from Datenbank
    where name = "dein eingegebener"
    and mail = "deine eingegebe"

    wenn Anzahl der Einträge gleich 1, dann ok (kann immer nur 1 sein, weil beim Eintragen gecheckt wurde, ob name / mail schon in in DB vorhaben)
    wenn Anzahl der Einträge gliech 0, dann schlecht

    PHP:
            $sqlselect  "SELECT
                           name,
                           mail
                         FROM
                           datenbank
                         WHERE
                           name= "
    . $_POST [ "name" ]. "
                         AND
                           mail= "
    . $_POST [ "mail" ]. "" ;
                         
                                              
            
    $sqlnumrows  mysql_query ( $sqlselect ) OR die( mysql_error ());
            
            if(
    mysql_num_rows ( $sqlnumrows ) ==  "1" )
            
            {
                
                echo 
    "ok" ;
            
            }
            
                    
            if(
    mysql_num_rows ( $sqlnumrows ) ==  "0" )
            
            {
                
                echo 
    "schlecht" ;
            
            }
        
            
            
    mysql_close ();
    Wenn ich jez in mein Austrage Formular zwei richtige Daten eingeben, dann kommt:

    Code:
    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 '@eingegebenmail.de' at line 9
    Line 9:

    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    Weiß einer Rat?

    Vielen Dank

    Greetz Mirak
     
  2. 7. November 2009
    AW: Nur wenn 2 Einträge aus Datenbank passen, dann ok

    PHP:
    $sqlselect  "SELECT
                           name,
                           mail
                         FROM
                           datenbank
                         WHERE
                           name= "
    . $_POST [ "name" ]. "
                         AND
                           mail= "
    . $_POST [ "mail" ]. "" ;

    exit(
    $sqlselect );
    und jetz schau dir mal den fertigen query an, normalerweise solltest du selbst sehen was falsch is.

    und wichtig: "line 9" bezieht sich auf zeile 9 im query, nicht vom php-quelltext ^^

    Spoiler
    du schreibst zeichenketten ohne anführungszeichen in den query
     
  3. 7. November 2009
    AW: Nur wenn 2 Einträge aus Datenbank passen, dann ok

    Ich habe

    PHP:
    exit( $sqlselect );
    jez mal eingefügt und er gibt mir den Code so aus (wohl ohne ihn auszuführen).

    Mir scheint, du bist der Meinung, das ich einen Schreibfehler habe. Ich habe jez grade noch mal alle wichtigen Zeilen kopiert (nicht von Hand geschreiben) und es tut sich immer noch nichts.

    BW geht leider nicht mehr, habe dich schon bei meinen "int erhöht sich um 10"-Problem bewertet.

    Danke

    // Edit

    BTW: Der Fehler in Line 9 ist in der 9. Zeile nach $sqlselect ... oder?

    // Edit

    Ok, ich habe jez einfache Anführungszeichen hingemacht und es klappt super, vielen Dank.

    Ein Frage hätte ich noch.

    Bei meinem Newsscript habe ich ja auch eine SELECT Klausel mit WHERE und dort habe ich auch keine einfachen Anführungszeichen.

    PHP:
                $sql  "SELECT
                          id,
                          name,
                          mail,
                          mess
                        FROM
                          datenbank
                        WHERE
                         id = "
    . $_GET [ "id" ]. "" ;
    Liegt das daran, das ID keine Zeichenkette ist oder kann es auch sein, das es gar nicht gehen würde, wenn ich versuche eine Zeichenkette mit $_GET zulesen?

    Vielen Dank
     
  4. 7. November 2009
    AW: Nur wenn 2 Einträge aus Datenbank passen, dann ok

    richtig. und jetzt schau dir deinen query mal ganz genau an, würdest du den so auch ausführen wollen oder fehlt ggf. was *auf mein erstes postig schau*

    nein, nicht »vor« und nicht »nach« $sqlselect, sondern genau da drinnen ^^ (das meintest du wohl auch)

    Code:
    1. $sqlselect = "SELECT
    2. name,
    3. mail
    4. FROM
    5. datenbank
    6. WHERE
    7. name= ".$_POST["name"]."
    8. AND
    9. mail= ".$_POST["mail"]."";
    ich kann dir aber sagen, dass es nicht NUR an zeile 9 liegen wird.

    richtig, wie in php auch, kannst du bei zahlen die anführungszeichen weglassen.

    Code:
    SELECT 
     foo, bar 
    FROM baz 
    WHERE 
     numericKey = 12345 
     AND nonNumericKey = "string"
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.