tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von saftmeister
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
327
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    gulo92 gulo92 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    55
    Hallo,

    ich möchte eine Tabelle mit 5 Spalten und 3 Zeilen mit Input-Feldern belegen, in welche Daten eingetragen werden können um dann in einer Datenbank abgespeichert zu werden.

    Nun kann es sein, dass nur zwei der 3 Zeilen mit Inhalten gefüllt sind. Das ist auch schon das Problem, denn ich möchte nicht, dass dann ein neuer Datensatz ohne Inhalte in der Datenbank gespeichert wird. Es müsste also irgendwie gecheckt werden. Nun weiß ich dass man das mit ner while-Schleife machen könnte, aber ich bin auch auf die foreach() Funktion gestoßen, mit welcher das vielleicht besser zu machen wäre.
    Habt Ihr nen Ansatz?

    Hier mal die Tabelle:

    PHP-Code:
     <table style="width: 100%">
            <
    tr>
                <
    td>Feld 1<input type="text" name="1" ></td>
                <
    td>Feld 2<input type="text" name="2" ></td>
                <
    td>Feld 3<input type="text" name="3" ></td>
                <
    td>Feld 4<input type="text" name="4" ></td>
                <
    td>Feld 5<input type="text" name="5" ></td>
            </
    tr>
            <
    tr>
                <
    td>Feld 6<input type="text" name="6" ></td>
                <
    td>Feld 7<input type="text" name="7" ></td>
                <
    td>Feld 8<input type="text" name="8" ></td>
                <
    td>Feld 9<input type="text" name="9" ></td>
                <
    td>Feld 10<input type="text" name="10" ></td>
            </
    tr>
            <
    tr>
                <
    td>Feld 11<input type="text" name="11"></td>
                <
    td>Feld 12<input type="text" name="12"></td>
                <
    td>Feld 13<input type="text" name="13"></td>
                <
    td>Feld 14<input type="text" name="14"></td>
                <
    td>Feld 15<input type="text" name="15"></td>
            </
    tr>
        </
    table
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Evtl. so:

    Code php:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
    $input_ok = true;
    $max_input_field_index = 15;
    for($i = 1; $i <= $max_input_field_index; $i++)
    {
      if(!isset($_POST[$i]))  // Wenn das Formular mittels GET übertragen wird, muss hier angepasst werden
      {
        echo "Das Feld $i hat keinen Wert!<br/>";
        // Sobald der erste Fehler auftritt, abbrechen
        $input_ok = false;
        break;
      }
    }
     
    if($input_ok)
    {
      // Hier in die Datenbank eintragen oder sonst wie verarbeiten...
    }
    gulo92 bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  3. #3
    gulo92 gulo92 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    55
    Danke, das ist prinzipiell ganz cool aber ich meine das so, dass es auch sein kann, dass von der zweiten Zeile die erste Spalte leer ist und dann Spalte zwei bis fünf gefüllt werden müssen. Es müsste also irgendwie gecheckt werden, ob überhaupt eine der Spalten einer Zeile belegt ist ... weißte?
     

  4. #4
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Versteh ich das richtig: Wenn eine der Spalten einer Zeile belegt ist, müssen die anderen Spalten auch einen Wert haben?
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  5. #5
    gulo92 gulo92 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    55
    Ja, und dann ist auch ein "leerer Inhalt" okay. Also wenn in einer Zeile mindestens eine Spalte einen Wert hat und die 4 anderen dann "leer" sind, dann ist das vollkommen okay. Wenn allerdings die erste Zeile kommt in der gar kein Inhalt in keiner der Spalten ist, dann soll aufgehört werden, Werte in die DB einzutragen.
     

  6. #6
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Code php:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    
    $input_ok = true;
    $anzahl_zeilen = 3;
    $anzahl_spalten = 5;
    for($i = 1; $i <= $anzahl_zeilen; $i++)
    {
      $zeile_ok = false;
      for($j = 1; $j <= $anzahl_spalten; $j++)
      {
        if(isset($_POST[$i*$j]))
        {
          // Mindestens ein Wert pro Zeile gefunden, nun ist diese Zeile ok!
          $zeile_ok = true;
          break;
        }
      }
      if(!$zeile_ok)
      {
        $input_ok = false;
        break;
      }
    }
     
    if($input_ok)
    {
      // Hier Datenbankeintrag machen oder so ähnlich...
    }
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  7. #7
    gulo92 gulo92 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    55
    Also das ist der PHP Code für die Datei, die aufgerufen wird um die Daten zu verarbeiten. Also wenn ich per POST die Variablen übergebe, kann ich das einfach so übernehmen?

    und dann dort wo dein Verweis ist einbinden

    PHP-Code:
    $eintragen mysql_query("INSERT INTO output
      (a,b,c,d,e) VALUES
     ('$1', '$2', '$3', '$4', '$5')"
    );
      
    ?> 
    und vorher noch aus den Post Daten Variablen machen, oder nicht?
     

  8. #8
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    So ungefähr ja. Du müsstest halt noch mal eine Schleife bauen, dort wo ich den Kommentar zum Speichern hinterlegt habe. Versuch erst mal, das selbst hinzubekommen. Wenn du noch Probleme hast, frag nach...
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

  9. #9
    gulo92 gulo92 ist offline Mitglied Silber
    Registriert seit
    Sep 2011
    Beiträge
    55
    hm ich bastel grad ... woher weiß ich, bei welchem Wert er gerade ist, also welchen Wert er gerade eintragen würde bei deinem Kommentar? Speicher er die Werte je Zeile als Array? also [1,2,3,4,5]? Falls 1,2,3,4,5 die Werte sind, die in der ersten Zeile eingegeben wurden?
     

  10. #10
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.521
    Mach mal ein

    PHP-Code:
    var_dump($_POST); 
    dann siehst du, wie die Daten im $_POST-Array organisiert sind.
     
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. Input-Abfrage mit Schleife
    Von meni im Forum Javascript & Ajax
    Antworten: 7
    Letzter Beitrag: 13.10.05, 11:53
  2. Input text in Schleife auslesen
    Von xeal im Forum PHP
    Antworten: 2
    Letzter Beitrag: 25.06.05, 12:53
  3. Antworten: 2
    Letzter Beitrag: 24.03.05, 21:05
  4. problem mit for schleife (input felder)
    Von Chino im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 18.10.02, 11:47
  5. Input Passwortübergabe in Datenbank!
    Von Breaky im Forum PHP
    Antworten: 9
    Letzter Beitrag: 13.11.01, 07:10