mehrere Einträge aufeinmal?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mehrere Einträge aufeinmal?

    Hallo @all

    Bin Anfängerin und hab da mal ne Frage?
    Hab mir ein Fomular gebastelt:
    Das schaut so aus:

    PHP-Code:
    <form action="index.php?oben=80&amp;section=101&amp;unten=82" 
                
    method="post">
                <
    pre>
      
    Kategorie 01:  <input type="text" size="31" maxlength="50"
            
    name="kat_01" />
        
    zu Kategorie 01:  <input type="text" size="24" maxlength="50"
            
    name="kat_01_a" />
        
    zu Kategorie 01:  <input type="text" size="24" maxlength="50"
            
    name="kat_01_b" />
      
    Kategorie 02:    <input type="text" size="31" maxlength="50"
            
    name="kat_02" />
        
    zu Kategorie 02:  <input type="text" size="24" maxlength="50"
            
    name="kat_02_a" />
        
    zu Kategorie 02:  <input type="text" size="24" maxlength="50"
            
    name="kat_02_b" />            
                
            <
    input type="submit" 
                
    value="Forum anlegen" 
                
    name="Forum_anlegen"/>        
                </
    pre>
                </
    form
    kann man die Werte in einen Rutsch in eine mysql tabelle eintragen?
    wenn ja wie macht man das am besten?
    meine Tabelle schaut so aus:
    PHP-Code:
    id int(11)         NOT NULL     auto_increment,
            
    KategorieName    tinytext     NOT NULL default    ''     UNIQUE KEY        ,
            
    UnterKategorieName    tinytext     NOT NULL default    ''     UNIQUE KEY        ,
            
    gruppe    tinytext     NOT NULL default                        ,
            
    PRIMARY KEY (id
    bei den unterkategorien trag ich in gruppe ein zu welcher Kategorie sie gehöhren.
    zb.:
    kat_01_a gruppe Kategorie 01
    kat_02_b gruppe Kategorie 02

    so nun kommt der schwere Teil, ich schreib mir eine Datei die das eintragen soll:
    ich mach das hier mal ganz laienhaft
    PHP-Code:
    // ersteinmal alle Variablen von dem Fomular holen:
    $kat_01 $_POST["kat_01"]; 
     
    $kat_01a $_POST["kat_01a"]; gruppe kat_01
     $kat_01a 
    $_POST["kat_01b"]; gruppe kat_01
    $kat_02 
    $_POST["kat_02"];
     
    $kat_02a $_POST["kat_02a"]; gruppe kat_02
     $kat_02a 
    $_POST["kat_02b"]; gruppe kat_02
    nun müste man das hier bestimmt anders schreiben das ich mit 2 schleifen 
    die Einträge vornemen kann
    hab da mal ein 
    Array vorbereitet vieleicht kann man dieses benutzen:
    $kategorie = array(
                
    10 => array    (
                        
    'name' =>     $kat_01,
                            ),
                
    11 => array    (
                        
    'name' =>     $kat_01a,
                        
    'gruppe' =>     $kat_01,
                            ),
                
    12 => array    (
                        
    'name' =>     $kat_01b,
                        
    'gruppe' =>     $kat_01,
                            ),
                            
                
    20 => array    (
                        
    'name' =>     $kat_02,
                        
                            ),
                
    21 => array    (
                        
    'name' =>     $kat_02a,
                        
    'gruppe' =>     $kat_02,
                            ),
                
    22 => array    (
                        
    'name' =>     $kat_02b,
                        
    'gruppe' =>     $kat_02,
                            ),
                            );


        
    schleife1
    {
            
    $eintrag01 "INSERT INTO meineTabelle
            (KategorieName) 
                VALUES 
            ('
    $kategorie['irgendwas muss hier rein']['name'])"
            
    $eintragen01 mysql_query($eintrag01); 
        
         if(
    wenn eine unterkategorie gruppe ==  der kategorie ist dann mach das)
         {
         
    schleife 2
         
    {
         
    $eintrag02 "INSERT INTO meineTabelle
            (UnterKategorieName) 
                VALUES 
            ('
    $kategorie['hier muss auch was rein]['name']"
            
    $eintragen02 mysql_query($eintrag02); 
         }
         }


    kann mir bitte jemand den code so umändern das es klappt
    wenn Zeit und Lust, bitte auch etwas kommentieren.
    Danke schonmal im Voraus.

    LG
    Schyla
    Zuletzt geändert von Schyla; 08.05.2008, 13:41.

  • #2
    Arrays bzw. Schleife über ein Array brauchst du nicht unbedingt. Du musst ja nur einen SQL-Querystring zusammenbauen und die Anzahl der Inputs ist immer gleich (oder nicht?).
    PHP-Code:
    $query 'INSERT ... VALUES '
        
    ."('$varA1', '$varA2', ..., '$varAN'),"    // Datensatz 1
        
    ."...,"    // beliebige weitere Datensätze
        
    ."('$varX1', '$varX2', ..., '$varXN')";    // letzter Datensatz 

    Kommentar


    • #3
      Hallo onemorenerd

      das schaut ganz gut aus, was du da geschrieben hast.

      vielen Dank

      LG
      Schyla

      Kommentar


      • #4
        Vor SQL-Injections schützt dich übrigens mysql_real_escape_string(). Unbedingt einbauen!

        Kommentar


        • #5
          Hallo @ onemorenerd

          geht es nicht so auch?
          oder hast du wegen den Kommentaren mit . gemacht?

          PHP-Code:
          $query "INSERT ... 
                VALUES 
              ('
          $varA1', '$varA2', ..., '$varAN'),   
              (...),  
              ('
          $varX1', '$varX2', ..., '$varXN')    

          "

          noch ne frage zum Schutz wär das so ok?
          und ab Hier komm ich ohne Punkte wohl nicht mehr klar oder?
          PHP-Code:
          $query sprintf("INSERT ... 
                VALUES 
              ('
          $varA1=%s', '$varA2=%s', ...=..., '$varAN=%s')",   
             
          mysql_real_escape_string($varA1$varA2, ..., $varAN),
             .
          " (...)  ",   
             
          mysql_real_escape_string(...), 
             .
          "('$varX1=%s', '$varX2=%s', ...=..., '$varX2=%s')",   
             
          mysql_real_escape_string($varX1$varX2, ..., $varXN)

           ); 
          Wär sehr net, wenn du den unteren code dir mal anschauen könntest.

          LG
          Schyla

          Kommentar


          • #6
            Hallo Schyla,

            die Funktion mysql_real_escape_string lässt leider nur einen Escape-Parameter zu. Du kannst ansonsten nur die Datenbankressource angeben. Wenn du nur eine DB-Ressource hast, dann ist dies aber auch nicht umbedingt nötig.

            PHP-Code:
            mysql_real_escape_string($varX1).", ".mysql_real_escape_string($varX2).", ..., ".mysql_real_escape_string($varXN
            signed oder unsigned... das ist hier die Frage

            Kommentar

            Lädt...
            X