Announcement

Collapse
No announcement yet.

Übertragen mehrerer Datensätze in eine Tabellenspalte gleichzeitig.

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Übertragen mehrerer Datensätze in eine Tabellenspalte gleichzeitig.

    Hallo,
    ich habe folgendes Problem. Ich will Daten in meine Datenbank „email_adressen“ eintragen.

    Ich habe 5 Eingabefelder, damit ich gleichzeitig 5 Emailadressen in die Datenbank senden kann. Jetzt habe ich ein Script geschrieben, dass die Funktion des Eintragens auch richtig ausfühlt und das Schließen des Fensters nach dem Eintragen auch. Was aber nicht funktioniert, ist z. Bs. die Fehlermeldung, wenn keine Adresse eingetragen wurde, die wird dann auch 5 Mal angezeigt.

    Hier mein Script.
    PHP Code:
    <?php
        
    include("../inc_folder/function/function.inc.php");
        
    mysqlconnect();
    ?> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
     
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
    <head>
    <title>crazykoni.de CMS (Autohaus N. Schmid - www.autohausnschmidt.de)</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <meta name="robots" content="index,follow" />
    <meta name="Language" content="German, de, deutsch" />
    <meta name="author" content="crazykoni.de" />
    <style type="text/css">
    fieldset
        {
            width:700px;
        }
    fieldset a
        {
            text-decoration: underline;
            color: #28ff14;
        }
    fieldset a:active
        {
            text-decoration: underline;
            color:#28ff14;
        }
    fieldset a:visited
        {
            text-decoration: underline;
            color: #28ff14;
        }    
    fieldset a:hover
        {
            text-decoration: underline;
            color: #3b3f63;
        }
    body
        {
      font-family:Trebuchet MS, Verdana, Arial;
        }
    /*HEADLINE FORMAT*/ 
    #headline label
        {
      font-size:20pt;
      font-weight:700;
      margin:2px 5px 2px 5px;
        }
    /*SEITENINFORMATION FORMAT*/    
    #site_info legend
        {
      font-size: 15pt;
        }
    #site_info div
        {
      margin:2px 5px 2px 5px;
            font-weight:700;
            font-size:13pt;
        }
     
     
    /*CONTENT FORMAT*/
    #contents legend
        {
      font-size: 15pt;
        }
    #contents div
        {
      margin:2px 5px 2px 5px;
        }
    #contents span
        {
      position:absolute;left:150px;
        }    
    </style>
    </head>
    <body>
    <?php  
        
    if( !$_POST["send"] )
            {
    ?> 
    <form action="" method="post">
    <fieldset title="headline" id="headline">
        <label>Emailadressen hinzuf&uuml;gen</label>
    </fieldset>
    <fieldset title="site_information" id="site_info">
        <legend>Neue Emailadressen</legend>
        <div>
        1. Emailadressen: <span><input type="text" name="email_1" value="Hier bitte die Emailadresse eingeben (Format: [email protected])" style="width:680px;" onFocus="if(this.value==this.defaultValue){this.value='';}"
                        onBlur="if(this.value==''){this.value=this.defaultValue;}" /></span><br/>
        2. Emailadressen: <span><input type="text" name="email_2" value="Hier bitte die Emailadresse eingeben (Format: [email protected])" style="width:680px;" onFocus="if(this.value==this.defaultValue){this.value='';}"
                        onBlur="if(this.value==''){this.value=this.defaultValue;}" /></span><br/>
        3. Emailadressen: <span><input type="text" name="email_3" value="Hier bitte die Emailadresse eingeben (Format: [email protected])" style="width:680px;" onFocus="if(this.value==this.defaultValue){this.value='';}"
                        onBlur="if(this.value==''){this.value=this.defaultValue;}" /></span><br/>
        4. Emailadressen: <span><input type="text" name="email_4" value="Hier bitte die Emailadresse eingeben (Format: [email protected])" style="width:680px;" onFocus="if(this.value==this.defaultValue){this.value='';}"
                        onBlur="if(this.value==''){this.value=this.defaultValue;}" /></span><br/>
        5. Emailadressen: <span><input type="text" name="email_5" value="Hier bitte die Emailadresse eingeben (Format: [email protected])" style="width:680px;" onFocus="if(this.value==this.defaultValue){this.value='';}"
                        onBlur="if(this.value==''){this.value=this.defaultValue;}" /></span><br/><br/>
        <input type="submit" name="send" value="Senden"/>
        <input type="button" name="Abbrechen" value="Abbrechen" onclick="window.close();">
    </div>
    </fieldset>
    <?php
            
    }
        elseif (
    $_POST["send"])
            {
               function 
    data_insert ($email)
                    {
                        if(
    $email != "Hier bitte die Emailadresse eingeben (Format: [email protected])")
                            {
                                
    $gecastet   mysql_real_escape_string($email);
        
    $insert  =  mysql_query("INSERT INTO email_adressen (email) VALUES ('$gecastet')");
                                if(!isset(
    $insert))
                                    {   
                                    }
                                else
                                    {
                                        echo 
    "<script type=\"text/javascript\">
                                            window.close();
                                            </script>"
    ;
                                    }
                            }
                        else
                            {
                                echo 
    "Es wurden keine eMailadressen eingegeben!";
                            }
                    }
            
                function 
    insert()
                    {
                 
    $email_1    =   data_insert($_POST["email_1"]);
                
    $email_2    =   data_insert($_POST["email_2"]);
                
    $email_3    =   data_insert($_POST["email_3"]);
                
    $email_4    =   data_insert($_POST["email_4"]);
                
    $email_5    =   data_insert($_POST["email_5"]);
                    }
                
                
    insert();
            }    
    ?> 
     
     
    </form>
    </body>
    </html>
    Ich wollte eben Fragen, ob der Script so OK ist oder, ob es vielleicht eine einfachere Möglichkeit gibt, so was zu lösen. Wie kann noch eine Kontrolle des Format der Emailadresse einfügen und ich möchte, dass die Fehlermeldung nur einmal angezeigt wird.

    Danke im Voraus
    Gruß
    Konstantin
    fange nie auf aufzuhören, höre nie auf anzufangen...
    crazykoni.de

  • #2
    Sicherlich wird die Fehlermeldung 5 mal ausgegeben, wenn du die Funktion 5 x aufrufst.

    Entweder die Funktion einmal aufrufen und alle Parameter übergeben oder in der Funktion merken, ob schon ein Fehler aufgetreten ist
    Um eine eMail zu prüfen wäre das mit einem regl. Ausdruck möglich
    ([\w-]+(\.[\w-]+)*@[a-zA-Z][a-zA-Z0-9]*((\.[a-zA-Z][a-zA-Z0-9]*)|([-][a-zA-Z0-9]+))*\.[a-zA-Z]{2,6})
    was aber immer noch nicht alle Fälle erfasst (in einer eMailadresse kann es Kommentare geben) findet http://tools.ietf.org/html/rfc2822
    Christian

    Comment


    • #3
      Hallo,
      danke schon mal für die Antworten.

      das mit der Übergabe habe ich auch schon versucht

      der Code:
      PHP Code:
      function data_insert ($email)
                      {
                          if(
      $email != "Hier bitte die Emailadresse eingeben (Format: [email protected])")
                              {
                                  
      $gecastet     =    mysql_real_escape_string($email);
                      
      $insert  =     mysql_query("INSERT INTO email_adressen (email) VALUES ('$gecastet')");
                              {
                      }
              
                  function 
      insert()
                      {
                  
      $email_1    =   data_insert($_POST["email_1"]);
                  
      $email_2    =   data_insert($_POST["email_2"]);
                  
      $email_3    =   data_insert($_POST["email_3"]);
                  
      $email_4    =   data_insert($_POST["email_4"]);
                  
      $email_5    =   data_insert($_POST["email_5"]);
                      }
                  
                  
      $status    =    insert();
              if(!isset(
      $Status))
              {
                  echo 
      "Es wurden keine eMailadressen eingegeben!";
              }
              else
              {
                  echo 
      "<script type=\"text/javascript\">
                  window.close();
                  </script>"
      ;
              } 
      funktioniert aber irgendwie nicht, er macht weder das Fenster zu, wenn einträge vorhanden sind, noch wenn nichts vorhanden ist.

      Ich habe mir gedacht, dass ich das Format der Mailadresse mit der funktion preg_match kontrollieren kann, aber an welche Stelle. Das Problem ist ja, dass auch eine Mailadresse eingegeben werden kann, wie schafe ich es, dass die restliche Felder ignoriert werden?

      Gruß
      fange nie auf aufzuhören, höre nie auf anzufangen...
      crazykoni.de

      Comment


      • #4
        Hallo,
        Originally posted by xxcoolxx View Post
        ...funktioniert aber irgendwie nicht, er macht weder das Fenster zu, wenn einträge vorhanden sind, noch wenn nichts vorhanden ist.
        Deine Funktion insert() hat keinen Rückgabewert, damit wird bei der Zuweisung "$status = insert();" $status immer mit NULL belegt.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Kannst du mir vielleicht helfen, wie ich die Funktion so umbauen kann, damit ich einen Rückgabewert erhalte???
          fange nie auf aufzuhören, höre nie auf anzufangen...
          crazykoni.de

          Comment


          • #6
            Originally posted by xxcoolxx View Post
            Kannst du mir vielleicht helfen, wie ich die Funktion so umbauen kann, damit ich einen Rückgabewert erhalte???
            Das ist jetzt nicht dein Ernst oder? Schonmal was von return gehört oder mal einen Blick ins PHP-Handbuch geworfen?

            Gruß Falk
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              Ja in den Handbuch habe ich auch schon geaschaut, und die Funktion return ist mit auch bekannt trotzdem kriege keinein Rückgabewert zurück.

              CODE:
              PHP Code:
              function data_insert ($email)
                              {
                                  if(
              $email != "Hier bitte die Emailadresse eingeben (Format: [email protected])")
                                      {
                                          
              $gecastet     =    mysql_real_escape_string($email);
                                          
              $insert  =     mysql_query("INSERT INTO email_adressen (email) VALUES ('$gecastet')");
                                      }   
                              }
                      
                          function 
              insert()
                              {
                                  
              $email_1    =   data_insert($_POST["email_1"]);
                                  
              $email_1    .=   data_insert($_POST["email_2"]);
                                  
              $email_1    .=   data_insert($_POST["email_3"]);
                                  
              $email_1    .=   data_insert($_POST["email_4"]);
                                  
              $email_1    .=   data_insert($_POST["email_5"]);
                                  
                                  return 
              $email_1;
                              }
                      
              insert();        
                      if(!isset(
              $email))
                          {
                              echo 
              "Es wurden keine eMailadressen eingegeben!";
                          }
                      else
                          { 
                              echo 
              "<script type=\"text/javascript\">
                              window.close();
                              </script>"
              ;
                          }
                      } 
              Jetzt mal ganz davon abgesehen, gits einen andere Möglichkeit mehrere Datensätze gleichzeitig in eine Spalte einzutragen?
              fange nie auf aufzuhören, höre nie auf anzufangen...
              crazykoni.de

              Comment


              • #8
                Originally posted by xxcoolxx View Post
                Ja in den Handbuch habe ich auch schon geaschaut, und die Funktion return ist mit auch bekannt trotzdem kriege keinein Rückgabewert zurück.

                CODE:
                PHP Code:
                function data_insert ($email)
                            function 
                insert()
                                {
                                  ...                    
                                    return 
                $email_1;
                                }
                        
                insert();        
                        if(!isset(
                $email))
                                ... 
                Ähem ... dazu muß ich jetzt nichts sagen oder? Ansonsten glaube ich dir nicht das du wirklich in das (nicht den!) Handbuch geschaut und dir das Kapitel und die Beispiele über Funktionen und Rückgabewerte durchgelesen hast.
                Aber wenn ich mir deine Texte so ansehe, dann ists mit dem Schreiben nicht weit her ("geaschaut", "keinein", ...) und beim Lesen siehts dann wohl ähnlich aus.

                Gruß Falk
                Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

                Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

                Comment


                • #9
                  Danke, dass du mich auf meine Rechtsschreibfehler aufmerksam gemacht hast, ich muss wohl wieder in die 5 Klasse...
                  fange nie auf aufzuhören, höre nie auf anzufangen...
                  crazykoni.de

                  Comment

                  Working...
                  X