While Schleife abarbeiten

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

  • While Schleife abarbeiten

    Bin gerade mal dabei ein kleines CMS zu schreiben und sitze schon eine ganze weile an ein Problem:

    Erklärung:
    Lese aus einer Tabelle ein Paar Daten aus in der eine Sortierungszahl für die Spätere verarbeitung angegeben ist...


    // menu_id = ID der Daten
    // menu_sort = Eine Zahl zur sortierung
    // anzahl_menu = anzahl der Dateneinträge


    PHP-Code:
    <select name="<? echo $menu_id; ?>">
              <option value="<? echo $menu_sort; ?>"><? echo $menu_sort; ?></option>
              <option value="<? echo $menu_sort; ?>">---</option>
              <? $x=1;
                    while($x < $anzahl_menu )
                    {
                           echo "<option value=$x>$x</option>";
                        $x++;
                    } ?>
            </select>
    Ergebniss ist :

    PHP-Code:
    <table width="100%" border="0" cellspacing="3" cellpadding="0">
      <
    tr
        <
    td>Hauptmen&uuml;name</td>
        <
    td>Reihenfolge</td>
      </
    tr>
      <
    tr
        <
    td>Impressum</td>
        <
    td> <select name="1">
            <
    option value="1">1</option>
            <
    option value="1">---</option>
            <
    option value=1>1</option>
            <
    option value=2>2</option>
            <
    option value=3>3</option>
          </
    select> </td>
      </
    tr>
      <
    tr
        <
    td>Service</td>
        <
    td> <select name="2">
            <
    option value="0">0</option>
            <
    option value="0">---</option>
            <
    option value=1>1</option>
            <
    option value=2>2</option>
            <
    option value=3>3</option>
          </
    select> </td>
      </
    tr>
      <
    tr
        <
    td>kontakt</td>
        <
    td> <select name="3">
            <
    option value="0">0</option>
            <
    option value="0">---</option>
            <
    option value=1>1</option>
            <
    option value=2>2</option>
            <
    option value=3>3</option>
          </
    select> </td>
      </
    tr>
      <
    tr
        <
    td>&nbsp;</td>
        <
    td><input type="submit" name="Submit" value="ändern"></td>
      </
    tr>
    </
    table>
    </
    form
    Nun zu meinen Eigendlichen Problem:

    da ich ja nie weiß wieviele Datensätze ich in der Datenbank habe,
    muß ich es ja auch wieder über eine schleife regeln, die Daten zu ändern.

    Der name ist auch gleichzeitig die ID des Datensatzes.
    Aber wie bekomme ich die Wertzuordnung in die schleife rein?

    Wie sie in etwa aussieht weiß ich

    PHP-Code:
    $y =1;
    while(
    $y $anzahl_menu ){
           
            
    mysql_query("update ".TABLE_PRE."menu set  menu_sort = '$x' WHERE menu_id = '$y'") or die(mysql_error());
           
    $y++;
           
    $x $x+1;
            
        } 
    Es wird nur ein kleiner Denkfehler von mir sein.....
    schaut mal bitte rüber und hilft mir weiter den ich bekomme die Zuordnung des wertes irgendwie nicht hin.

  • #2
    verstehe irgendwie gar nicht, was sache ist. vielleicht zu ausführlich oder umständlich erklärt. kannstes nochmal was "einfacher" machen?

    Kommentar


    • #3
      OK
      ich möchte über eine schleife Werte in die Datenbank eintragen.
      Diese Werte bekomme ich über ein Formular
      Als Beispiel
      WertName 1 | WERT 3
      WertName 2 | WERT 2
      WertName 3 | WERT 1
      ......

      Der WertName ist Identisch mit Autowert von der Datenbank.

      Die Schleife müßte in etwa so aussehen:
      PHP-Code:
      $y =1;
      while(
      $y $anzahl_menu ){
             
              
      mysql_query("update ".TABLE_PRE."menu set  menu_sort = '$x' WHERE menu_id = '$y'") or die(mysql_error());
             
      $y++;
             
      $x $x+1;
              
          } 
      Nun mein Problem: Wie bekomme ich den reinen Wert in die Datenbank.

      Wenn ich diese schleife so Ausführe ist die Tabelle
      WertName 1 | WERT 1
      WertName 2 | WERT 2
      WertName 3 | WERT 3

      Kommentar


      • #4
        Hint: du zählst sowohl den x als auch den y wert hoch.

        Kommentar


        • #5
          Richtig den der WertName erhöht sich ja.
          bei jedem Durchgang.
          aber ich bekomme nicht den Wert sondern nur die Zahl aus dem Durchlauf.

          Kommentar


          • #6
            Vielleicht solltest du mal echte Werte hier posten und nicht so nen Quatsch, wo keiner durchblickt.

            in welcher var steht welcher wert?
            wie sollen diese werte nachher in der db stehen? welcher wert in in welcher spalte und mit welchen anderen werten in einer zeile?

            Kommentar


            • #7
              das sind die echten Werte...
              es soll eine sortierung eines Menü's werden,
              aber OK habe kurz eine beispiel php geschrieben...

              PHP-Code:
              <? if ($_SERVER['REQUEST_METHOD'] == "POST") {
              $y=0;
              $x=1;
              while($y < 3 ){
                     echo " ID = $y |Wert = $x <br>";
                     echo " ";
                     $y++;
                      
                  } 
              } ?>
              <form action="?" method="POST">
                <table width="100%" border="0" cellspacing="3" cellpadding="0">
                <tr> 
                  <td>Reihenfolge</td>
                </tr>
                <tr> 
                    <td> Wert ID 1 
                      <select name="1">
                      <option value=1>1</option>
                      <option value=2>2</option>
                      <option value=3>3</option>
                    </select> </td>
                </tr>
                <tr> 
                    <td>Wert ID 2 
                      <select name="2">
                      <option value=1>1</option>
                      <option value=2>2</option>
                      <option value=3>3</option>
                    </select> </td>
                </tr>
                <tr> 
                    <td> Wert ID 3 
                      <select name="3">
                      <option value=1>1</option>
                      <option value=2>2</option>
                      <option value=3>3</option>
                    </select> </td>
                </tr>
                <tr> 
                  <td><input type="submit" name="Submit" value="ändern"></td>
                </tr>
              </table>
              </form>

              Kommentar


              • #8
                Ich weiß jetzt auch wo das Problem genau liegt:
                bei der Ausgabe.

                $x ist danndie reine Zahl und nicht die Variable.
                $$x wäre die Variable aber da gibt er nur

                $(die fortlaufende Zahl) aus

                Kommentar


                • #9
                  ok, jetzt hab ich zumindest mal den ist-zustand geafft. und wie solls dann in der DB stehen?

                  Kommentar


                  • #10
                    Jenachdem was ich im Dropdownmenü ausgewählt habe für eine Zahl zwischen 1 und 3

                    ob ich es nun etzt nur ausgebe oder in der Datenbank eintrage ist egal...

                    PS: hatte noch einen Nachtrag gemacht

                    Kommentar


                    • #11
                      PS: hatte noch einen Nachtrag gemacht
                      Demnach hast du es gelöst?

                      Generell würden auch ein paar Grundlagen nicht weh tun. Wenn du zum Beispiel mal anfängst mit dem $_POST-Array zu arbeiten.

                      Kommentar


                      • #12
                        Der reine Code ist Uralt und wird gerade von mir aktuelliesiert und erweitert....
                        und zu der Beispieldatei... rufe sie lokal auf, und kopiere den Quelltext und lösche das unwichtige raus...

                        aber ich glaube nicht, das es mit einem $_POST-Array getan wäre.

                        Kommentar


                        • #13
                          Weiß jetzt nicht, was du mir sagen willst. Irgendwie sind wir (heute) nicht auf einer Wellenlänge.

                          $_POST ist sicher nicht alles. Aber schonmal ein ansatz, deinen code endlich mal sauber zu schreiben...

                          Kommentar

                          Lädt...
                          X