PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   alle DB ausgbe aendern (https://www.php-resource.de/forum/php-developer-forum/95673-alle-db-ausgbe-aendern.html)

YAT 26-02-2009 11:21

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

Lennynero 26-02-2009 11:50

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.

YAT 26-02-2009 11:59

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 !

ArSeN 26-02-2009 15:57

Zitat:

Original geschrieben von Lennynero
PHP-Code:

while($row mysql_fetch_array($res ,MYSQL_ASSOC)) 


Warum nicht
PHP-Code:

while($row mysql_fetch_assoc($res)) 

? :dontknow:


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:19 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG