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 ::

TYPO3 Kochbuch

TYPO3 Kochbuch 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 Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 07.04.2013, 10:14:56
panametrics panametrics ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Mittelfranken
Alter: 33
Beiträge: 87
panametrics befindet sich auf einem aufstrebenden Ast
Name einer Post-Variable prüfen?

Hallo,

ich steh heute voll auf dem Schlauch und blicke es gerade nicht.
Ich habe folgendes Problem:
Ein Formular mit mehreren Feldern. Einige Felder sind dynamisch aufgebaut, deren Name mit "serial-" anfängt. Diese muss/möchte ich aber gesondert behandeln, beim wegschreiben in die Datenbank.

Irgendwie fehlt mir gerade voll der Ansatz, wie ich den Namen der Post-Variable prüfe.

Ich möchte also prüfen wenn der Name der POST Variable mit "serial-" beginnt, dann ....
Bin schon am überlegen ob ich alle $_POST mit foreach durchlaufe und dann aufteile in $name => $value, und dann kann ich ja an den Namen ran, aber das muss doch auch kürzer gehen oder?

Ich würde mich über einen Denkansatz freuen. Mir fällt grad keine Funktion aus der Referenz ein, mit der ich das machen kann. Vielleicht liegts aber auch nur an der frühen Uhrzeit.

Danke,
Tom
__________________
# man lernt nie aus #
Mit Zitat antworten
  #2  
Alt 07.04.2013, 11:22:18
panametrics panametrics ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Mittelfranken
Alter: 33
Beiträge: 87
panametrics befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Für die Nachwelt,

ich habe es jetzt mal so gelöst.
Ist zwar etwas umständlich und ich dachte es geht auch kürzer, aber Lösung ist in diesem Fall erstmal Lösung ;-)

PHP-Code:
        foreach( $_POST AS $postFeldName => $postFeldValue )
        {
            if( 
eregi"serial-"$postFeldName ) )
            {
                
// ... mach was
            
}
        } 
__________________
# man lernt nie aus #
Mit Zitat antworten
  #3  
Alt 07.04.2013, 11:24:12
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Beiträge: 2.269
DokuLeseHemmung befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Zitat:
Ich möchte also prüfen wenn der Name der POST Variable mit "serial-" beginnt, dann ....
Das ist keine gute Idee!

Besser:

HTML-Code:
name="serial[]"
oder
HTML-Code:
name="serial[irgendwas]"
Dann basteln dir Browser und PHP die Daten in einem schönen Array zusammen, und du hast sofort alle am Haken

Geändert von DokuLeseHemmung (07.04.2013 um 11:44:54 Uhr)
Mit Zitat antworten
  #4  
Alt 07.04.2013, 12:47:48
panametrics panametrics ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Mittelfranken
Alter: 33
Beiträge: 87
panametrics befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Hey Dokulesehemmung,

das geht leider nicht, da die POST Varis keinen Namen haben aus dem ich ein Array machen kann.
z. B. heißen diese $_POST["serial-Geraet"] oder $_POST["serial-Tubus"]

daher geht
Zitat:
HTML-Code:
name="serial[]"
oder
HTML-Code:
name="serial[irgendwas]"
Dann basteln dir Browser und PHP die Daten in einem schönen Array zusammen, und du hast sofort alle am Haken
leider nicht.
__________________
# man lernt nie aus #
Mit Zitat antworten
  #5  
Alt 07.04.2013, 12:54:07
panametrics panametrics ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Mittelfranken
Alter: 33
Beiträge: 87
panametrics befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Vergessen: Danke für Deine Anregung. :)
Deinen Vorschlag mit name="serial[XXX]" könnte ich zwar umbauen, müsste aber dann im Form auch wieder aufdröseln.

Beziehungsweiße, was spricht gegen die Prüfung mit foreach und dann eregi?
Es gibt ja auch noch andere Post Felder, die nicht mit serial- beginnen.

Da es weder eine kritische Anwendung noch ein kritischer Server ist, ist mir die Rechenzeit für diese Abfrage egal.

Ich schweife mal kurz aus:
In der DB gibt es eine Spalte serials. Diese beinhaltet alle Seriennummern eines Röntgengeräts.

Sieht dann so aus:
Gerät§1234%Röhre§2345%Bedienelement§9876%Tubus§5555

und im Form splitte ich dann auf, zerlege erstmal den Inhalt der Spalte aus der DB mit explode anhand des Trenners % und danach nochmal mit § um quasi Name und Value zu bekommen und erstelle dann input-Felder mit dem Namen serial-Roehre, serial-Tubus, usw.

Und das ganze dann nach dem Absenden des Forms wieder umgekehrt. Da baue ich dann wieder alle Felder die mit serial- beginnen zusammen zu einem Inhalt der in die Spalte geschrieben wird.

Hat leider folgenden Grund, dass es bei verschiedenen Rö-Geräten verschiedene Seriennummern gibt, beim einen Hersteller sind es 5, beim anderen nur 3, bei einem anderen Gerät (unterschied zwischen 2D und 3D) sind es bsp. 5 bzw. 8, und so weiter. Somit spar ich mir 5000 Spalten in der Tabelle und würfle alles in einer Spalte. Ja ist umständlich, aber die schnellste Variante für Änderungen, etc. Wenn ein neues Gerät dazukommt, wird im Formular einfach ein weiteres input-Feld mit serial-XXXX aufgenommen und dann kann dies mit eingebaut werden, keine Spalten in der Tabelle anlegen, etc.
__________________
# man lernt nie aus #
Mit Zitat antworten
  #6  
Alt 07.04.2013, 13:37:59
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Beiträge: 2.269
DokuLeseHemmung befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Zitat:
und im Form splitte ich dann auf, zerlege erstmal den Inhalt der Spalte aus der DB mit explode anhand des Trenners % und danach nochmal mit § um quasi Name und Value zu bekommen und erstelle dann input-Felder mit dem Namen serial-Roehre, serial-Tubus, usw.
Ein Verstoß gegen die erste Normal Form.
Also ganz und gar nicht zu empfehlen.

Ja, ich sage es ist falsch!

Die 5 Normal Formen
Mit Zitat antworten
  #7  
Alt 07.04.2013, 13:38:32
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 49
Beiträge: 1.044
urvater befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Was spricht dagegen eine weitere DB-Tabelle anzulegen, in der du alle "Zusätze" speicherst?

id | bezeichnung
1 | Röhre
2 | Bedienelement
etc.

In deiner jetzigen Spalte könntest du dann die ID zum speichern nutzen.
Das Formular könntest du dann anhand der Spalte "bezeichnung" erstellen. So müsstest du keine weitere Spalte in der jetzigen Tabelle erzeugen. Könntest dein Formular automatisiert ergänzen, wenn ein neuer Zusatz dazu kommt und deine Formularfelder kannst du dann leicht mit serial[XX] beschreiben.

Gegen deine momentane Lösung spricht meiner Meinung nach nur, dass du unnötigen Code erzeugt hast. Hier geht es ja nicht nur um Systemlast und Ausführungszeit sondern auch um die Pflege deines Codes. Je weniger Code desto leichter die Pflege.
Mit Zitat antworten
  #8  
Alt 07.04.2013, 14:06:01
panametrics panametrics ist offline
Anfänger
 
Registriert seit: Nov 2004
Ort: Mittelfranken
Alter: 33
Beiträge: 87
panametrics befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Zitat:
Zitat von urvater Beitrag anzeigen
Gegen deine momentane Lösung spricht meiner Meinung nach nur, dass du unnötigen Code erzeugt hast. Hier geht es ja nicht nur um Systemlast und Ausführungszeit sondern auch um die Pflege deines Codes. Je weniger Code desto leichter die Pflege.
Lieber Dokulesehemmung und Urvater,

danke für die Ansätze. Ja das mit dem unnötigen Code stimmt wohl - Leider. :-(
Dass es gegen die Normal-Formen verstößt weiß ich auch, und bisher habe ich immer darauf verzichtet ein DB-Feld so zu befüllen.

Wie gesagt, komplex macht es das ganze nur, dass es halt eben schon vom Namen her unterschiedliche Seriennummern Bezeichner gibt, wie beschrieben "Röhre", "Tubus", oder eben bei einem Befundungsmonitor heißt es dann "Seriennummer Monitor", und die Anzahl variiert.

Durch diese etwas unschöne Lösung, bin ich der Meinung ist mir bei anderen Formularen wie z. B. Datensatz bearbeiten, neu hinzufügen, etc, ein wenig Arbeit erspart.
Gefallen tut es mir persönlich auch nicht wirklich. Aber: Es funktioniert, und ist kompatibel zu neuen Geräten, die vielleicht erst in einem halben Jahr auf den Markt kommen, und wieder andere Seriennummern haben. Ja, das wäre mit der Extra-Tabelle auch zu lösen, sehe ich ein. :D

Wie gesagt, es ist keine kritische Anwendung und kein kritischer Server, daher ist der Aufwand es sauberer zu lösen zur Relation saubere Datenbank Tabellen relativ.

Vielleicht mache ich mir mal die Arbeit es wirklich so umzubauen.

Ich danke euch trotzdem, auch wenn es nun voll am ursprünglichen Thema vorbeigeht.

schönen Sonntag.
__________________
# man lernt nie aus #
Mit Zitat antworten
  #9  
Alt 07.04.2013, 14:20:09
Benutzerbild von vt1816
vt1816 vt1816 ist offline
Administrator
 
Registriert seit: Jul 2004
Beiträge: 3.571
vt1816 hat die Renommee-Anzeige deaktiviert
vt1816 eine Nachricht über Skype™ schicken
AW: Name einer Post-Variable prüfen?

Zitat:
Zitat von panametrics Beitrag anzeigen
[..]
Vielleicht mache ich mir mal die Arbeit es wirklich so umzubauen.
In der Zeit die wir hier alle gemeinsam mit der Problemanalyse und den Lösungsvorschlägen verbracht haben, hättest Du nutzen können um die Datenbankstruktur zu berichtigen.

Wir werden uns über kurz oder lang hier wieder lesen, wennDu ein neues Problem mit der verwurschtelten Struktur hast.

Bitte nicht falsch verstehen - aber haben wir hier oft genug gehabt.
__________________
Gruss vt1816
Erwarte nicht, dass sich jemand mehr Mühe mit der Antwort gibt als Du Dir mit der Frage.
. . . . . Feedback wäre wünschenswert

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.
Ansosnten gilt: Hilfe ausserhalb dieses Thread (PN, WhatsApp, Skype, Mail, ICQ, etc...) nur per Barzahlung oder Vorauskasse!

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10  
Alt 07.04.2013, 14:37:59
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Beiträge: 2.269
DokuLeseHemmung befindet sich auf einem aufstrebenden Ast
AW: Name einer Post-Variable prüfen?

Zitat:
Ich danke euch trotzdem, auch wenn es nun voll am ursprünglichen Thema vorbeigeht.
Bitte schön, gern geschehen...

Hmmm...
Könnte es sein, dass du das jetzige Problem gar nicht hättest, wenn du dich an die Normalisierungsregeln halten würdest?
Mit Zitat antworten
Antwort

Stichworte
name, post, prüfung, string


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
POST Daten prüfen und anschliessend an andere Website senden mororu PHP Grundlagen 4 14.11.2008 17:19:42
Variable wird nicht per post übermittelt... echo "anfänger" PHP Grundlagen 2 28.05.2006 18:29:09
Kann man INSERT INTO in tabelle, deren name eine variable ist ...? Ina PHP für Fortgeschrittene und Experten 8 23.01.2004 20:24:01
Variable Prüfen überflüssige Zeichen entfernen Chris007 PHP für Fortgeschrittene und Experten 1 12.03.2003 11:27:02
mit if() eine variable prüfen und ausgabe machen |Coding PHP für Fortgeschrittene und Experten 10 18.05.2002 15:54:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:09:55 Uhr.


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


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