Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
universelles formular??? [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
universelles formular???


 
ostyle
02-08-2002, 10:11 
 
moin
ich habe in meiner datenbank einige tabellen die öfter mal upgedatet werden müssen und da die alle recht gross sind stellt sich bei mir die frage:
kann ich da nich ein universelles formular erstellen das mir die daten aus der datenbank ausliest? sonst muss ich ja für jede tabelle eine eigene datei erstellen, oder?
kann mir da jemand weiter helfen?

gruss
olli

 
Wotan
02-08-2002, 10:28 
 
Ich würde es ähnlich erstellen wie es im PHPMyAdmin ist (auf meinem Entwicklungserver).

Du hast ein Select-Feld und wählst dir die Tabelle aus die du gerade brauchst. Jetzt nur noch durch eine Abfrage welche Tabelle gebraucht wird und alle Spalten werden zurverfügung gestellt. Ein Klick auf OK und dann hast du ein Universelles Formular.

 
MoRtAlAn
02-08-2002, 10:28 
 
klar geht das, du läßt doch die Tabelle per schleife ausgeben, mußt nur auf die richtigen Felder ja nach Spaltentyp achten (textarea für Spaltentype Text, etc)

gruss

 
ostyle
02-08-2002, 10:42 
 
danke für die tips ich werd das gleich mal ausprobieren und berichten ob ich´s verstanden habe...

 
ostyle
05-08-2002, 11:42 
 
tja ich hab mein glück mal probiert aber ich bekomms nicht wirklich hin! das formular ist ja kein thema aber dann die vorhandenen daten anzeigen lassen funktioniert nich! habt ihr vielleicht noch nen tip für mich?

olli

 
tj99de
05-08-2002, 11:47 
 
Poste doch mal, was Du bisher gemacht hast, dann können wir Dir sagen, wo Du was ändern/einfügen mußt.

 
ostyle
05-08-2002, 11:57 
 
ich habs mal so versucht:

$query = "select * from tabelle";
$result = mysql_query($query)
or die(mysqL_error());
$ergebnis = mysql_query($query)
or die(mysql_error());
$anz_spalten = mysql_num_fields($ergebnis);
echo "<form action='submit.php'>\n";
echo "<table width=100% border=1>\n";
while ($zeile = mysql_fetch_row($ergebnis))
{
for ($l=0; $l<$anz_spalten; $l++)
{
if (!isset($zeile[$l]))
{echo "<tr><td colspan=2>Nix mehr da!</td></tr>";}
else
{$k=$zeile[$l];}
}
}
for ($i=0; $i<$anz_spalten; $i++)
{
echo "<tr><td>" . mysql_field_name($ergebnis, $i). "</td><td><input type=text name=" . mysql_field_name($ergebnis, $i) . " value=" . $k ."></td></tr>\n";
}

nich erschrecken ich bin noch relativ neu in der php sache ;-)

olli

 
Titus
05-08-2002, 13:38 
 
schau dir mal das Ergebnis der Query "show fields from tabelle" an :)

 
ostyle
05-08-2002, 13:59 
 
ähm dumme frage vielleicht aber wie macht man das?

 
Titus
05-08-2002, 18:20 
 
dumme Frage, fürwahr ... so wie bei jeder anderen Query auch:

$q = mysql_query("show fields from tabelle")
or die(mysql_error());
while ($x = mysql_fetch_assoc($q))
{
foreach($x as $k=>$v)
echo "<br>$k : ", htmlentities($v);
echo '<hr>';
}
Wenn du die Ergebnisse auswertest, dann kannst du ganz einfach den Typ einer Spalte ermitteln und aufgrund dieser Abfrage den richtigen Formularfeldtyp einsetzen:
für enum ein select oder radios, für set ein select multiple etc. pp.
Auch die maxlength für input type="text" erhältst du damit.

 
ostyle
05-08-2002, 23:26 
 
na gut :-)
ich bin ja wie gesagt neu im thema und versuch mein bestes ;-)
aber noch mal zurück zum thema! der sinn des ganzen ist halt eine idiotensichere site-administration herzustellen ;o)
und ich hab bestimmt noch ein paar mehr fragen dazu und wenn das dann mal fertich is dann kann ich das ja auch mal hier posten.. aber das wird noch nen bissl dauern.
so ich wer das dann mal morgen früh in ruhe ausprobieren und mich dann mal wieder melden... bis denne

olli

 
ostyle
06-08-2002, 09:39 
 
moin
@titus
ich hab das grad mal ausprobiert aber bekomme immer eine fehlermeldung unexpected T_STRING woran kann das liegen?

 
Titus
06-08-2002, 10:19 
 
daran dass du dich vertippt hast ... poste mal die Zeile, in der der Fehler auftritt - bzw. den Befehl der dazu gehört.

PS: Ich würd dem Formular noch "method='post'" als Parameter mitgeben.

 
ostyle
08-08-2002, 09:37 
 
@titus
ich weis nich ob ich mich vertippt hab, ich hab sofort beim query den fehler bekommen, aber das ist jetzt auch egal weil ich was anderes probiert habe.

ich kann zwar jetzt die mysql_field_type abrufen aber wie setz ich sie ein das ich dann auch die passenden feld typen bekomme?
hier noch mal das skript:

$query = "select * from tabelle where id=$id";
$ergebnis = mysql_query($query)
or die(mysql_error());

$num_fields = mysql_num_fields($ergebnis);
for ($i=0; $i<$num_fields; $i++)
{
$type = mysql_field_type($ergebnis, $i)."<br>";
}
echo "<form action='submit.php' method=post>\n";
echo "<table width=100% border=1>\n";

while($row = mysql_fetch_array($ergebnis, MYSQL_ASSOC))
{
while (list($key, $value) = Each ($row))
{
{echo "<tr><td><b>$key:</b></td><td><input type=???? name='$key' value='$value'></td></tr>\n";}
}
}

echo "<tr><td><input type=submit value=Update></td></tr>";
echo "</form>";
echo "</table>";

vielleicht hat da noch jemand einen kleinen tip für mich vielleicht kann ich dann auch bald mal helfen ;-)

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:33 Uhr.