mysql update

Bleem

Gesperrt
gibts für dieses mysql-update function auch ne andere möglich keit ?
PHP:
if ($action == "update")
{
$update = "update boxrimuser set head = '$head', text = '$text' where id = '$id'";
mysql_query ($update, $db);
}

weil ich hätt da ein form mit etwa 56 sachen...
da müsste ich dann 56mal

blabl = '$blabla', schreiben...und das will ich nicht
 
Ich weiss nicht wies anders gehen sollte... wenn dus geschickt anstellst, kannste dass ja auch in einer schlaufe verpacken, obs sinnvoll ist fragt sich aber...

=> zuerst schreibst du in ein array den feldnamen und den wert der da reingeschrieben werden soll

=> dann hängst du in einer foreachschleife alle diese felder und werte im format "feld='$wert'," aneinander.

und wennde damit fertig bist, machst du einen
mysql_query("UPDATE blabla SET $aktion WHERE id='$id'");

Aber obs viel schlauer ist wage ich zu bezweifeln... ;)

antihero

PS: ansonsten frag doch mal im mysql forum nach, vielleicht wissen die nen trick
 
Zuletzt bearbeitet von einem Moderator:
Original geschrieben von antihero
=> zuerst schreibst du in ein array den feldnamen und den wert der da reingeschrieben werden soll

=> dann hängst du in einer foreachschleife alle diese felder und werte im format "feld='$wert'," aneinander.

und wennde damit fertig bist, machst du einen
mysql_query("UPDATE blabla SET $aktion WHERE id='$id'");

jepp, ich habs so ähnlich gemacht:

alle feldnamen haben eine durchgehende nummerierung. nach dem absenden geh ich ner for-schleife alle feldnamen durch und bastel mir da alles zusammen (nicht in nem array, sondern einfach direkt in nem string, wo ich einfach weitere werte hinten dran häng). und wenn alles fertig is, wird der update befehl ausgeführt.

Original geschrieben von melmager
musst du aber :-)

keine möglichkeit das anders zu machen

ach ja? sicher? ;o)
 
@bleem wenn schon dann scheiss die richtige sprache zusammen
es muss heissen sch.... sql

@chion klar kann man schleifen bauen usw. aber ich behaupte mal das
das mehr schreib und denkarbeit ist wie die sql zeile zu schreiben

nachtrag : und wenn ich das programmtechnisch lösen wollte dann so:
ich frage die datenbank nach den tabellennamen ab , ermittle ob eine gleiche variable in php gesetzt ist (sprich übergeben wurde) und daraus mein update string basteln aber ich bin ja faul und würde einfach die sql zeile schreiben :-)
 
Zuletzt bearbeitet:
Original geschrieben von Bleem
...weil ich hätt da ein form mit etwa 56 sachen...
da müsste ich dann 56mal...
Ich an deiner Stelle würde mich fragen, ob die Tabelle wirklich 56 Spalten braucht und ob man die 56 Eingaben nicht anders lösen könnte.
 
hmmm..... ja aber die lösung mit dem array/string ist übersichtlicher, wenn du irgendwo nen fehler hast...
im mysql_query stehen dann einfach 5 Zeilen lang xyz='abc' und das find ich zum durchschauen mühsamer als array( xyz=>abc ) etc.

ansonsten hat melmager aber recht...

antihero
 
nö leider es müssen 56 sein :)
aber das is ja nicht das schlimme...

ich hab da noch eine andere db mit 145 :(
und das is viel zum schreiben :(

@melmager: wieso sql ? das is ja ein php befehl...
 
php ist an der betreffenden zeile nur mysql_query();

das ganze "update set xyz=abc" ist dann das SQL query, die SQL anfrage welche du an die Datenbank stellst.

antihero
 
Zurück