tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
356
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    BlackCross BlackCross ist offline Rookie
    Registriert seit
    Dec 2006
    Beiträge
    9
    Aloha alle miteinander!

    Bin neu hier und werde mich gleich mal einbringen, bzw ich habe ein frage.

    Und zwar:

    Ich möchte eine Art Newsletter schreiben und wenn man sich einträgt soll, bevor der Eintrag in die Datenbank erfolgt, ausgelesen werden ob die Email, die man eingegeben hat, bereits in der Datenbank vorhanden ist. Iwer ne idee wie man das anstellt? ich verzweifle iwie grad daran, wahrscheinlich gibts dafür wieder so ne simple lösung
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Frage einfach alle die Datensätze ab, bei denen das E-Mail-Adressattribut mit der eingegebenen E-Mail-Adresse übereinstimmt. Sind es mehr als 0, gibt es die E-Mail-Adresse bereits in der Datenbank.
     
    Markus Wulftange

  3. #3
    BlackCross BlackCross ist offline Rookie
    Registriert seit
    Dec 2006
    Beiträge
    9
    könnte man wohl ein codebeispiel geben? o.0
     

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Ein Beispiel? Gerne:
    Code :
    1
    2
    3
    4
    5
    6
    
    SELECT
            COUNT(*)
      FROM
            `Tabelle`
      WHERE
            `E-Mail-Adresse` = "user@example.net"
    Gibt diese Abfrage einen Wert größer als 0, gibt es bereits einen (oder sogar mehrere) Datensätze mit dieser E-Mail-Adresse.
     
    Markus Wulftange

  5. #5
    BlackCross BlackCross ist offline Rookie
    Registriert seit
    Dec 2006
    Beiträge
    9
    grml, ich hattes mir komplizierter vorgestellt

    vielen dank x)

    habs jetzt praktisch so:

    PHP-Code:
    if($submit//ueberprueft ob der submit button gedrückt wurde
    {

    $sqlkommando1 "SELECT email FROM newsletter WHERE `email` = "$email ."";
    // $email bezieht sich halt hier auf das, was im input feld eingegeben wurd.
        
    $sqlanfrage1 mysql_query($sqlkommando1) or die("Error: " mysql_error());
        
            while(
    $daten mysql_fetch_object($sqlanfrage1))
            
    if(
    $sqlanfrage1 == empty){
    //blabla zeugs to-do
    }
    else {
    echo 
    "Email Adresse bereits vorhanden!";

    würde das wohl so klappen?
     

  6. #6
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Nein. Und falls doch dann nur weil der PHP-Parser sehr tolerant ist und die $email-Variable bereits Anführungszeichen enthält. Denn:
    • da die Werte wohl von einem Formular stammen, sollten die Werte aus die [mono]vordefinierten Variablen $_GET oder $_POST (je nach Methode) Variablen genommen werden (siehe Register Globals)
    • auch in MySQL müssen Zeichenketten durch Anführungszeichen ausgezeichnet werden (lass dir den Wert von $sqlkommando1 ausgeben, dann siehst du was ich meine)
    • der Ausdruck $sqlanfrage1 == empty wird nur dann wahr sein, wenn es eine Konstante namens „empty“ mit gleichem Wert wie die $sqlanfrage1 gibt
     
    Markus Wulftange

  7. #7
    BlackCross BlackCross ist offline Rookie
    Registriert seit
    Dec 2006
    Beiträge
    9
    die Email wird in der selben Seite angegeben.

    PHP-Code:
    echo "<form action=\""$PHP_SELF ."\" method=\"post\" name=\"entry\">";
    echo 
    "<td><div align=\"center\"><input type=\"text\" value=\"Email\" name=\"email\" size=\"25\"></td>"
    normal klappts sonst immer so

    und wie müsste die if-Abfrage dann lauten, damit ich eine ordentliche Kontrollfunktion hab?
     

  8. #8
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Ich würd’s wie folgt machen:
    PHP-Code:
    if( isset($_POST['submit']) ) //ueberprueft ob der submit button gedrückt wurde 
    {

        
    $query '
            SELECT
                    1
              FROM
                    `newsletter`
              WHERE
                    `email` = "'
    .mysql_real_escape_string($_POST['email']).'"
            '
    ;
        if( 
    mysql_num_rows(mysql_query($query)) ) {
            echo 
    'E-Mail-Adresse bereits vorhanden!';
        } else {
            echo 
    'E-Mail-Adresse noch nicht vorhanden.';
        }

     
    Markus Wulftange

  9. #9
    BlackCross BlackCross ist offline Rookie
    Registriert seit
    Dec 2006
    Beiträge
    9
    ok , nochmals vielen Dank
     

Ähnliche Themen

  1. String mit ArrayList Inhalten vergleichen
    Von roontafloor im Forum Java
    Antworten: 16
    Letzter Beitrag: 10.12.09, 18:19
  2. Abfrage aller Tabellen mit allen Inhalten
    Von Watusimann im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 17.03.06, 16:01
  3. MySQL Abfrage mit PHP if Abfrage vergleichen
    Von son gohan im Forum Relationale Datenbanksysteme
    Antworten: 13
    Letzter Beitrag: 26.09.05, 11:24
  4. Antworten: 3
    Letzter Beitrag: 13.10.04, 18:11
  5. IF Abfrage mit 2 Var Vergleichen
    Von Webber im Forum PHP
    Antworten: 5
    Letzter Beitrag: 19.08.02, 07:03