Mailinglisten-Archive |
>Ich bin der Schuldige ! >Die Idee besteht darin ein Formular mehrfach zu verwenden. >Also sowohl für Neuaufnahme eines Datensatzes, als auch für das >ändern, oder dem löschen >eines bereits vorhandenen Datensatzes. >Ich suche nach einer Möglichkeit eine vorhandene SQL-Query ohne >größere Veränderung für jeden !!!!!!!!! dieser Fälle zu verwenden. >Daher klopfe ich das 'replace' auf alle möglichen Einsatzformen ab. >m.f.G. Hi Stephan, Bei nem replace benötigst du !!! immer !!! einen eindeutigen INDEX, gibt's den net passiert auch nix. Da kommst du mit REPLACE nicht weiter. Du musst ja sowieso vor deiner UPDATE oder INSERT Anweisung abfragen obs denn den Datensatz schon gibt. Und dazu brauchst du nen eindeutigen INDEX z.B. Kundennummer oder so... Wenn du z.B. 20 Huber Franz hast weiss dein Script nimmer was es denn tun soll. Da ist ein UPDATE eh besser, denn sonst musst du immer alles übergeben... Für solche Zwecke ist es durchaus nützlich eine Funktion zu schreiben, die das übernimmt: zum Bleistift: function getquery($tabelle,$felder,$id = "") { $ende = ""; if (count($felder)) { if($felder[$id]) { $query = "UPDATE"; $ende = " WHERE ".$id." = '".addslashes($felder[$id])."';"; } else { $query = "INSERT INTO"; } } $query .= " ".$tabelle." SET"; while (list($key, $val) = each($felder)) { if ($key != $id) $query .= " ".$key." = '".addslashes($val)."',"; } $query = substr($query,0,-1).$ende; return $query; } $test["id"] = 3; $test["name"] = "Maier"; $test["vorname"] = "Kurt's"; $test["telefon"] = "12345"; $test["fax"] = "2345678"; $test["email"] = "emil at bla.net"; echo getquery("testtabelle",$test,"id")."<BR>"; echo getquery("testtabelle",$test)."<BR>"; Wenn du willst kannste da noch ne Prüfung reinschnitzen, aber ah bisserl was solltste auch noch tun... MfG Wolfgang -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive