CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
09.02.2003, 10:41:14
|
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 3
|
|
MySQL: UPDATE-Ausdruck
Hallo,
kurze Frage und wahrscheinlich noch kürzere Antwort von euch. Naja, ich seh wohl vor Wald die ganzen Bäume nicht.
Problem:
Mit Update sollen mehrere einträge einer Zeile geändert werden. Bsp: In der HansMustermann-Zeile sollen Fon, Fax und Strasse mittels Formular durch den User geändert werden - soweit kein Problem...
Nur sollen vorhandene Einträge nicht durch einen leeren Stringersetzt werden, wenn der User das entsprechende Feld im Forumlar nicht ausfüllt. Bsp.: Der User will nur seine Fon-Nummer ändern schickt das Formular ab. Nun sind ja aber Fax und Strasse nicht ausgefüllt worden und ersetzetn mir bei
mysql_query("
UPDATE
adressen
SET
fax='$fax', fon='$fon', strasse='$strasse'
WHERE
name='$name'
");
die Strasse und die Fax-Nummer durch einen leeren String.
Wie kann ich das verhindern - vor allem in Hinblick auf ein größeres Formular bei dem man mehr als nur diese 3 Werte ändern kann?
Danke für eure Hilfe.
|
09.02.2003, 11:14:56
|
|
Das kannst Du verhindern, indem Du die Eingaben prüfst und, wenn nicht alle gemacht worden sind Du eine entsprechende Fehlermeldung ausgibst und den User bittest das Feld auszufüllen.
Code:
if(@isset($_POST["gesendet"])) {
if($_POST["feldx"] == "";
echo "Feld X darf nicht leer sein!";
}
else {
//Datenbank aktualiseren!
}
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Eingabefelder...
<input type="submit" name="gesendet" value="Abschicken">
</form>
Du könntest natürlich auch die Eingaben prüfen und wenn was fehlt, den SQL Befehl abändern, aber das ist etwas verwirrend für den User ("Ich hab die Telefonnummer doch gelöscht - warum steht sie denn immernoch drin?")
|
09.02.2003, 11:23:13
|
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 3
|
|
Das Problem dabei ist, dass es sich bei einigen Feldern um riesen Datenmengen handelt (d.h. der Text innerhalb eines Feldes sehr lange ist z.B. eine Biographie). Diese immer wieder zu tippen, wenn man nur eine Kleinigkeit abändern will ist zugegebenermaßen lästig.
Das Löschen einzelner Daten bzw. nicht mehr anzeigen kann man über ein Kontrollkästchen neben dem Formularfeld realisieren d.h. falls gesetzt, lösch mir die entsprechenden Daten bzw. update einen leeren String.
Gibt es also noch andere Möglichkeiten außer diese? Kann auch gern komplizierter sein *g*
|
09.02.2003, 11:29:19
|
|
Die Daten muß man nicht jedes Mal eingeben, wenn das Forumlar richtig programmiert worden ist. Wenn jemand einen Fehler gemacht hat zeigst Du das Formular mit den eingegeben Werten nochmal an. Wenn jemand etwas ändern will, zeigst Du ihm das Formular mit vorhandenen Einträgen an!
Ansonsten, wie gesagt einfach die Abfrage ändern
$set = "SET feldy = 'xyz'";
if($_POST["feldx"] != "") {
$set = $set . ", feldx = '" . $_POST["feldx"] . "';
}
mysql_query("UPDATE table $set WHERE xyz = 'bla'");
Wenn der User jetzt das Feldx ausgefüllt hat wird es aktualisiert, wenn nicht eben nicht!
|
09.02.2003, 11:32:46
|
Anfänger
|
|
Registriert seit: Feb 2003
Beiträge: 3
|
|
Sorry. Hab mich wohl etwas missverständlich ausgedrückt...
Es soll eine Aktualisierung sein, sprich vorher sind ja bereits Daten vorhanden (Name, Strasse... Biographie, Fob, Fax).
Nehmen wir an, alle Daten wurden angegenen, auch die ellenlange Bio. So... nun will der User seine Faxnummer ändern, trägt also nur diese in dem Profilformular ein - schließlich will er ja die ellenlange Bio nicht auch nochmal eintragen...
Etwas klarer nun?
|
09.02.2003, 12:22:05
|
Anfänger
|
|
Registriert seit: Jun 2002
Beiträge: 75
|
|
Hi!
Entweder liest Du die Daten vorher aus der DB aus und zeigst sie beim Aufruf des Formulars mit in den <input><texarea>... Tags an oder aber
Du machst eine if() Abfrage. Z.B. Wenn das Feld leer ist dann mache bei Fax (Beispiel) kein Update usw.
Wobei ich denke das ersteres besser ist.
Gruss, Viper
|
09.02.2003, 15:13:13
|
|
Zitat:
Original geschrieben von Ben20
Die Daten muß man nicht jedes Mal eingeben, wenn das Forumlar richtig programmiert worden ist. Wenn jemand einen Fehler gemacht hat zeigst Du das Formular mit den eingegeben Werten nochmal an. Wenn jemand etwas ändern will, zeigst Du ihm das Formular mit vorhandenen Einträgen an!
|
Drück ich mich so undeutlich aus? ;-)
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:01:34 Uhr.
|