alle DB ausgbe aendern

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

  • alle DB ausgbe aendern

    salve,

    ich brauch mal wieder hilfe ^^

    ich will daten aus einer mysql datenbank ausgeben (72 datensaetze)..
    Bei jedem Datensatz soll man dann die User rechte aendern koennen ...
    einfache select optionen .....

    nun will ich alle Datensaetze per submit button weitergeben und aendern....

    PHP-Code:
    echo"<form method ='POST' name='form' action='admin_aendern.php'>";
    $dbhandle=mysql_connect("SERVER""DATENBANK","PW");
    $db mysql_select_db("Buchung"$dbhandle);
    $res =mysql_query("select * from ADuser order by !admin");
    $num=mysql_num_rows($res);
    for(
    $i=0$i<$num$i++ )
    {
    $name=mysql_result($res,$i,"Name");
    $vorname=mysql_result($res,$i,"Vorname");
    $admin=mysql_result($res,$i,"admin");
    $mail=mysql_result($res,$i,"email");

    echo
    "<tr><td style='padding-left:10px;'>$name</td>";
    echo
    "<td style='padding-left:10px;'>$vorname</td>";
    echo
    "<td style='padding-left:10px;' >$mail</td>";
    echo
    "<td align='center'><select name='admin'>";
    if(
    $admin==1){
       echo
    " <option value='1' >Admin</option>";
       echo
    " <option value='0'>User</option>";
        }
    else{
     echo
    " <option value='0'>User</option>";
     echo
    " <option value='1'>Admin</option>";
    }
      echo
    "</select></td>";
    }
    ?> </table>
    <br><br><table border='0'>
    <tr><td width="450 px">
    <br></td><td width ="300px">
    </td>
    <td>
    <input type='submit' name='submit' value='Change' 
    style='background:#a9cbab;'></input>
    </td></tr></form>
    </table> 
    so wird ja nur der letzte Datensatz geaendert......
    Wie kann ich des realisieren das alle Datensaetze geaendert werden?

    gruß YAT

  • #2
    Du musst den Select-Feldern eindeutige Namen mitgeben, so das du die gesendeten Daten eindeutig identifizieren kannst.


    Hierzu kannst du z.B. mit einem Hiddenfield arbeiten, dem du die ID des Datensatzes übergibst (und alle Felder dann als array ausgelegt (admin[] statt admin), oder du baust dir eindeutige Namen zusammen:

    PHP-Code:
    echo"<td align='center'><select name='admin"$id ."'>"
    Wobei du dir die ID sowieso noch rausgeben musst.

    Alternativ denke ich auch das

    PHP-Code:
    while($row mysql_fetch_array($res ,MYSQL_ASSOC)) 
    der "for"-schleife

    PHP-Code:
    for($i=0$i<$num$i++ ) 
    vorzuziehen ist. Du erhälst dann ein assoziatives Array und kannst dann z.B.


    PHP-Code:
    echo"<td align='center'><select name='admin"$row['id'] ."'>"
    eisnetzen (wenn das id-feld den namen id trägt ) und dir den Anweisungsblock mit "mysql_result" sparen.

    Generell solltest du auch nicht mit "*" Abfragen, sondern immer explizit die gesuchten Spalten aufführen. Irgendwann erweiterst du die Tabelle. z.B. um ein BLOB-Feld, und dann wird eine kleine Abfrage auf einmal zur Bremse.

    Kommentar


    • #3
      super antwort

      ich danke dir....

      ich hab des so gelernt mit der for schleife deshalb hab ich die genommen des mit der while schleife is mir nich bekannt....
      aber glaube es zu verstanden zu haben xD

      ich denke den rest schaff ich alleine

      vielen dank !

      Kommentar


      • #4
        Original geschrieben von Lennynero
        PHP-Code:
        while($row mysql_fetch_array($res ,MYSQL_ASSOC)) 
        Warum nicht
        PHP-Code:
        while($row mysql_fetch_assoc($res)) 
        ?
        Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

        Kommentar

        Lädt...
        X