PHP,Tabelle, mySQL

  • Hallo,

    ich habe folgendes Problem. ich habe Datensätze in einer Datenbank mit ID,Vorname,Nachname,admin(admin ist 0 oder 1)


    ich gebe die tabelle über php aus. dabei möchte ich gerne das wenn die person admin ist in der checkbox ein haken son soll und wenn nicht dann halt der haken nicht da ist.

    außerdem wenn ich eine anderen person ebendfalls zum admin machen möchte, auf die checkbox klicken kann und dann auf den button freischalten und das es in der DB geändert wird. aber halt nur bei dieser einen person und da muss ich dann ja irgendwie die id aus der zeile zur variablen machen damit er ne eindeutige zuordnung hat.

    ich hoffe ihr wisst was ich meine. würde mich über hilfe sehr freuen.

    danke

  • Der einfachste Weg ist wohl über Array-Namen, du kannst machn:

    Code
    <input type="checkbox" name="admin[iddesnutzers]"/>


    Die id kannst du bei der Ausgabe in der Tabelle dort einfügen.
    In PHP geht es dann ganz einfach:

    PHP
    foreach($_POST['admin'] as $adminid => $egal)
    {
      machAdmin($adminid);
    }


    Pass nur auf, dass die IDs gültig sind.

  • also bei mir sieht das mit der ausgabe so aus(sry aber ich weiß nicht wie man das macht das man es als code anzeigt:

    echo '<form action="freischalten.php" method="POST">
    <table border="1" width="400px">
    <tr><td>ID</td>
    <td>Benutzername</td>
    <td>E-Mail</td>
    <td>Frei</td>
    <td>Freischalten</td>
    <tr>';

    while($row=mysql_fetch_array($result))
    {
    echo "<tr><td>".$row['id']."</td>";
    echo '<td>'.$row['benutzername'].'</td>';
    echo '<td>'.$row['email'].'</td>';
    echo '<td>'.$row['frei'].'</td>';
    echo '<td><input type="checkbox" name="frschalten" id="frschalten"></td>';
    }

  • Erstmal HTML-technisch:
    Du darfst nicht mehrere Elemente mit der selben id verpassen, wenn dann nimm class.
    PHP:
    Du ersetzt beim Namen einfach frschalten durch "frschalten[' . $row['id'] . ']". Auf die Auswahl kannst du dann wie auf ein Array zugreifen, so wie es oben steht. Außerdem solltest du durchgehend ' an Stelle von " verwenden und den Code einrücken.

    Viele liebe Grüße
    The User

  • Ungetestet:



    <edit>
    http://www.php.de/php-einsteiger…hp-tabelle.html :( Immer diese Leute, die ihre Fragen in vielen Foren verteilen :(
    </edit>

    2 Mal editiert, zuletzt von bandit600 (25. April 2009 um 18:01)

  • hey Bandit,

    danke für deine ausführliche antwort =) aber es geht nicht so 100%ig
    und zwar in der zeile:
    [Zitat]$checked = ($row['admin'] == 1) ? "checked=checked" . "";[/Zitat]

    dort sagt er mir syntax error wegen des simikolons am ende =/
    habe auch alles was mir so eingefallen ist ausprobiert aber hab es nicht hin bekommen. wäre dir an der stelle für deine hilfe noch mal recht dankbar

  • ist nur hier und im php forum. hatte hier ja ersta gefragt und dann meinte nen kollege ich sollte mal im php.de forum fragen weil da viele sind die das so aus dem ärmel schütteln. tun sie vielleicht auch aber es geht nicht wirklich

  • Der Punkt ist falsch, so sollte es gehen:

    PHP
    $checked = ($row['admin'] == 1) ? "checked=checked" : "";