checkbox aus datenbank auslesen

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

  • checkbox aus datenbank auslesen

    Hi Zusammen,

    folgendes Problem bringt mich seit gestern zur Verzweiflung:

    Ich habe Layoutdatensätze in einer Tabelle und Werkzeuge in einer anderen. Es wird ausgewählt, welches Werkzeug für ein Layout in Frage kommt und die ausgewählten Werkzeuge werden dann in einer Tabelle Werkzeug_Layout gespeichtert.

    Das funktioniert mittlerweile auch. Hei!
    Allerdings will ich die Datensätze jetzt als Administrator verändern und somit die Werkzeuge in eine Checkbox-Liste anzeigen. Die gespeicherten Werkzeuge sollen dann markiert sein, sodass ich Markierungen löschen und / oder neusetzen kann.

    Das soll das Skript machen: Was es aber nicht tut! Es arbeitet erst komplett die inner Schleife ab und dann die äussere. Nur wie gehts richtig???

    /***********Tabelle Werkzeugdaten*************/
    echo "<table width=300 border=1 cellpadding=0 cellspacing=0 bgcolor=#BFBFBF bordercolor=#804000>";

    while ($dswzg=mysql_fetch_array($resultholwkz))
    {
    echo "Werkzeugnr: $dswzg[werkzeugnr]";

    while ($wzglay=mysql_fetch_array($resultwkzzulayout))
    { echo "Werkzeug: $wzglay[werkzeugnr]";
    if ($wzglay[werkzeugnr] == $dswzg[werkzeugnr])
    $checked = 'checked';
    else
    $checked = '';
    echo "<tr>
    <td align=center>$dswzg[werkzeugname]</td>
    <td><input type=checkbox name=werkzeugnr[] value=$dswzg[werkzeugnr] $checked></td>
    </tr>";
    }
    echo "<tr>
    <td colspan=2><input type=submit value=update!>
    <input type=hidden name=action value=update>
    <input type=hidden name=layoutnr value=$dsaendern[layoutnr]></td>
    </tr>
    na lecker...
    alex

  • #2
    keiner ne Idee?

    ...ich versprechs ich hab gesucht, kenn mich aber immernoch nicht aus!!!

    Sorry vielleicht klappts jetzt mit Hilfe? Danke

    alex
    na lecker...
    alex

    Kommentar


    • #3
      Möchtest Du alle Werkzeuge listen und da zu alle die Layouts, die dieses Werkzeug verwenden ? Oder Möchtest Du Layouts listen und alle dafür verwendeteen Werkzeuge anzeigen ? Kann ein Werkzeug für meherer Layouts verwendet werden ? Wie muss man sich das vorstellen ?

      taratus

      Kommentar


      • #4
        ok, es betrifft 2 tabellen:
        1. Layout. in der sind zu jedem Layout x werkzeuge als String (z.b.: 1,2,3,4...) gespeichert. in 2. Tabelle Werkzeuge, sind alle werkzeuge gelistet. (1 / schraubenzieher /2 /Zange...)

        So sind jetzt meine Werkzeuge mit dem Layout verknüpft. Jetzt will ich das Layout updaten. Dazu biete ich eine Liste mit allen Werkzeugen an und die, die schonmal gespeichert wurden, sollen gecheckt angezeigt werden.

        Script hat sich etwas geändert und mittlerweile krieg ich die "gespeicherten Werkzeuge auch wieder raus. DAs macht die for Schleife. Nur nach der Schleife, schreibt er einfach wieder alle Werkzeuge hin. Damit auch die abgehakten nochmal...

        So und jetzt dreh ich mich munter im Kreis...irgendwie hakts

        while ($dswkz = mysql_fetch_array($resultholwkz))
        {
        for ($i=0; $i<count($wzgnrarray); $i++)
        {
        $w = $wzgnrarray[$i];
        echo "Werkzeugnr: $w<br>";
        echo "W_L: $dswkz[werkzeugnr]<br>";
        if ($dswkz[werkzeugnr] == $w)
        echo "<tr><td align=center>$dswkz[werkzeugname]</td><td><input type=checkbox name=werkzeugnr[] value=$dswkz[werkzeugnr] checked></td></tr>";

        }
        }


        echo "<tr><td align=center>$dswkz[werkzeugname]</td><td><input type=checkbox name=werkzeugnr[] value=$dswkz[werkzeugnr]></td></tr>";
        [list]


        Vielleicht nen Einfall?

        Vielen Dank auf alle Fälle!!!

        grüße
        alex
        na lecker...
        alex

        Kommentar


        • #5
          Uh, das war nicht ganz einfach zu verstehen (zumal sich Deine Variablennamen lesen wie polnische Nachnamen).

          Wenn ich es aber richtig überschaut habe, gibst Du erst alle Werkzeuge aus, die "checked" sind und willst dann alle ausgeben, die noch nicht "checked" sind.

          Ich würde da eine andere Vorgehensweise empfehlen:
          Im Augenblick (wenn es denn mal funktioniert) würde sich die Reihenfolge der angezeigten Werkzeuge ja stänig ändern.

          Mein Vorschlag:

          -aus DB ermitteln, welche Werkzeuge vorhanden (alle)
          - in Schleife Werkzeug mit <input> generieren
          - in der Schleife eine Überprüfung, ob für das aktuelle Layout
          (var aus äusserer Schleife) dieses Werkzeug eingetragen ist,
          dann echo "checked"

          Ein weiteres Listen ausserhalb dieser Schleife ist dann nicht mehr erfordrerlich.

          Ich hoffe ich hab das Problem erfasst.
          Für konkrete Hilfe mit dem Code bitte die vars / deren Inhalt kommentieren.

          taratus

          Kommentar


          • #6
            hi Taratus,

            kenn das Problem, drück mich immer etwas kompliziert aus...deshalb vielleicht auch polnische Var.namen

            ...ich werde doch über 2 Abfragen die DB bemühen und dann funktioniert es auch.

            Habe gehofft mal ne andere Möglichkeit zu finden...aber irgendwie klemmt da eine Gehirnwindung.
            Einen Vorteil hats, man kramt in PHP-Befehlen, die man noch nie gehört hat und lernt dazu trotzdem bleibt der Frust wenns nicht klappt.
            Also nochmal merci für die Mühe....
            alex
            na lecker...
            alex

            Kommentar

            Lädt...
            X