alle DB ausgbe aendern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.

    Comment


    • #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 !

      Comment


      • #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ß.

        Comment

        Working...
        X