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

Das Zend Framework

Das Zend Framework 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 23.09.2002, 12:59:07
DiJae DiJae ist offline
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?
Mit Zitat antworten
  #2  
Alt 23.09.2002, 13:35:06
Benutzerbild von Matt
Matt Matt ist offline
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.
Mit Zitat antworten
  #3  
Alt 23.09.2002, 18:53:17
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
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
Mit Zitat antworten
  #4  
Alt 24.09.2002, 11:32:22
Benutzerbild von Matt
Matt Matt ist offline
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..
Mit Zitat antworten
  #5  
Alt 24.09.2002, 16:08:53
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
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 ;)
Mit Zitat antworten
  #6  
Alt 24.09.2002, 16:18:44
Benutzerbild von Matt
Matt Matt ist offline
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..
Mit Zitat antworten
  #7  
Alt 24.09.2002, 16:28:11
DiJae DiJae ist offline
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?
Mit Zitat antworten
  #8  
Alt 24.09.2002, 16:44:55
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
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.
Mit Zitat antworten
  #9  
Alt 24.09.2002, 16:53:01
DiJae DiJae ist offline
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.
Mit Zitat antworten
Antwort


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:09:07 Uhr.


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


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