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 Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden |
23.09.2002, 11:59:07
|
Anfänger
|
|
Registriert seit: May 2002
Beiträge: 149
|
|
Kniffliges Formularproblem
Das ist ganz schön knifflig, oder? Nehmen wir als Beispielformular ein Formular mit dem man:
Nachname
Vorname
Straße
Postleitzahl
Stadt
Telefon
Email
speichern kann.
Der Benutzer kann aber auswählen, welche Felder nach der Eingabe tatsächlich auf der Seite angezeigt werden sollen und welche nur für eine interne Verfassung dienen. Nach jedem Feld steht also ein Radiobuttonfeld, dass fragt: öffentlich anzeigen.
Wir würdet Ihr nun bewerkstelligen, dass bei jedem Datensatz erkannt wird, ob der Inhalt des entsprechenden Feldes angeziegt wird oder nicht?
|
23.09.2002, 12:35:06
|
|
Member
|
|
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
|
|
hi!
Speichere für jeden wert, der angezeigt werden soll, oder eben nicht, einen weiteren, in dem j bzw. n steht, also ein enum["j","n"]
je nachdem ob das gewünscht ist, kommt in das entsprechende feld jetzt ein j bzw. n hinein das rufst du dann ab und überprüfst, ob das feld angezeigt werden soll strukturell:
name
showname [j/n]
mail
showmail [j/n]
usw...
zweite möglichkeit:
nimm ein zusätzliches feld, in dem du eine zahl speicherst, die per binärzahl generiert wird, so nämlich:
1. Stelle: zeige mail j=1, n=0
2. Stelle: zeige addresse j=1, n=0
3. Stelle: zeige name
4. Stelle: zeige telnummer
jetzt hast du beispielsweise zeige mail: ja, zeige addresse: nein, zweige name: ja, zeige telnummer: nein
daraus ergibt sich die binärzahl 1011, in das dezimalzahlsystem umgerechnet ergibt das 11, die 11 speicherst du in der datenbank, wenn du das wieder ausliest, wandelst du das in binär um, und prüfst die einzelnen stellen. Der Speicherplatzaufwand ist hierbei sehr gering, die datenbank effizienter, aber das interpretieren des codes ist schwieriger.
|
23.09.2002, 17:53:17
|
Member
|
|
Registriert seit: Apr 2002
Beiträge: 821
|
|
Man könnte auch eine neue Spalte hinzufügen das wie gesagt codiert die Daten angibt ob ein Feld ausgegeben werden soll oder nicht. Doch das codieren sollten wir MySQL überlassen.
http://www.mysql.com/documentation/m...rence.html#SET
|
24.09.2002, 10:32:22
|
|
Member
|
|
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
|
|
kannst du uns noch ein kleines beispiel dazu geben, wie du das meinst? Ich sehe dann nämlich nur die Möglichkeit, wieder für jede spalte eine zusätzliche zu machen..
|
24.09.2002, 15:08:53
|
Member
|
|
Registriert seit: Apr 2002
Beiträge: 821
|
|
Code:
CREATE TABLE bla
{
Name TEXT,
Vorname TEXT,
Geburtstag DATETIME,
ICQ INT,
Zeigbar SET('Name','Vorname','Geburtstag','ICQ')
}
und dann
Code:
SELECT
...
FROM
bla
WHERE
FIND_IN_SET('$wert',Zeigbar)>0
Wie man aber Werte reinschreibt weiß ich nicht ;)
|
24.09.2002, 15:18:44
|
|
Member
|
|
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
|
|
ich glaube aber eher, dass er das einzeln haben will, so profilartig halt, also nur bei einem user wissen, ob mail usw. gezeigt werden soll...
Insofern bringt dein set recht wenig glaube ich..
|
24.09.2002, 15:28:11
|
Anfänger
|
|
Registriert seit: May 2002
Beiträge: 149
|
|
Bisher sieht es so aus
Ich hatte inzwischen überlegt, einfach zwei Tabellen anzulegen, wobei eine Tabelle Daten enthält, die angezeigt werden und eine, die Daten enthält, die nicht angezeigt werden. Bei einer internen Suche durch einen Benutzer, der halt alle Daten einsehen kann, werden beide Tabellen berücksichtigt. Bei einer Suche durch einen Benutzer, der nur 'erlaubte' Daten einsehen kann, nur die Tabelle, die Daten enthält, die freigegeben worden. Bei der Prrogrammierung dahin bin ich schließlich doch bei einer Tabelle gelandet, die den ersten Vorschlag enthält, d.h. eine Spalte mit 'name' und eine nächste mit 'showname'...
weiß aber noch nicht, ob ich damit glücklich bin... finde die variante mit zwei tabellen eigentlich besser...
was meint Ihr?
|
24.09.2002, 15:44:55
|
Member
|
|
Registriert seit: Apr 2002
Beiträge: 821
|
|
was ist denn an diesem SET nicht so gut?
die Tabelle könnte doch so aufgebaut sein
Code:
| Name | Vorname | Email | Zeigbar |
-----------------------------------------
| bla | bli | ich@home.de | Name,Email |
| du | ich | wir@da.de | |
| hi | all | ervbev@erverv.de | Vorname,Email |
| oien | reverv | rfgerivj | Name,Vorname,Email |
(ich hab keine Monospace Font im textarea)
Und dann entsprechend dem Zeigbar gucken ob Spalte XY in "Zeigbar" drinsteht oder nicht. In PHP muss man die Zeigbaren Werte in ein Array laden und dann in_array(); machen.
|
24.09.2002, 15:53:01
|
Anfänger
|
|
Registriert seit: May 2002
Beiträge: 149
|
|
Sorry...
... hatte es in anfangs mit dem 'Zeigbar' nicht verstanden. Die Lösung ist auch gut. Stellt sich die Frage, welche von der Performance her die schnellere ist.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Ansicht |
Linear-Darstellung
|
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 05:14:41 Uhr.
|