SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



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



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 09.02.2003, 10:41:14
AngelOfMine AngelOfMine ist offline
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.
Mit Zitat antworten
  #2  
Alt 09.02.2003, 11:14:56
Ben20
Guest
 
Beiträge: n/a
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?")
Mit Zitat antworten
  #3  
Alt 09.02.2003, 11:23:13
AngelOfMine AngelOfMine ist offline
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*
Mit Zitat antworten
  #4  
Alt 09.02.2003, 11:29:19
Ben20
Guest
 
Beiträge: n/a
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!
Mit Zitat antworten
  #5  
Alt 09.02.2003, 11:32:46
AngelOfMine AngelOfMine ist offline
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?
Mit Zitat antworten
  #6  
Alt 09.02.2003, 12:22:05
Viper Viper ist offline
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
Mit Zitat antworten
  #7  
Alt 09.02.2003, 15:13:13
Ben20
Guest
 
Beiträge: n/a
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? ;-)
Mit Zitat antworten
Antwort


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.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:01:34 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt