hilfdirselbst.ch
Facebook Twitter gamper-media
jrandi
Beiträge: 794
21. Dez 2004, 19:45
Beitrag #1 von 12
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Hallo hds !

weiss nicht genau, wie ich das am effizientesten programmieren soll. . .
es geht darum, links zu html-seiten aufzurufen, über eine suchabfrage.
3 Suchkriterien (resp. 3 Pulldown-Menues) müssen entsprechendend gewählt werden :
- Ort (Gemeinde)
- Dienstleistung
- Type (der dienstleistung) entweder "ambulant" oder "hospitalisiert"

es geht um eine DB, welche folgende felder aufweisen wird :

- id
- link_zur_htmlseite
- name_des_links
- ort
(da liegt der erste hacken, denn es können x Ortschaften sein - also 10 oder mehr... - diese sollen die entsprechenden Links aufrufen, auch wenn natürlich nur eine Gemeinde ausgewählt wird)
- dienstleistung (dasselbe, ein link zur entsprechenden htmlseite kann bis zu 26 verschiedenen Dienstleistungen gehören...)
- type (da gibt es wenigstens nur "Ambulant" oder "Hospital")

Könnte ich jetzt im Feld "ort" mehrere Ortschafen (mit Leerraum getrennt) aufführen und via index_of die entsprechenden Links abfragen lassen ?
Dasselbe mit den Dienstleistungen sowie Type ?

Oder ist es besser, die DB mit den feldern "ort1" "ort2" "ort3" etc erstellen und entsprechend nur eine Ortschaft pro Feld eintragen. Abfrage : select ort from DB wehre $ortschaft_xy=ort1 OR $ortschaft_xy=ort2 OR $ortschaft_xy=ort3 etc. . . ?

Oder muss ich da 3 DB's machen... ? aber wenn ich eine Tabel "ort", eine "Dienstleistung" und eine "Type" mache, wie bring ich diese dann wieder zusammen, damit diese abfrage 1 oder X links zu den HTML-Seiten bringen ?

Für Tipps und Tricks danke ich schon mal im voraus !
gruss
jurg


Top
 
X
Kusi
Beiträge: 1398
22. Dez 2004, 00:00
Beitrag #2 von 12
Beitrag ID: #131938
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Hallo
Ich denke, das würde gehen wenn du dann in der $abfrage = "select * from tabelle where ort = 'pulldown1' and gugus = 'pulldown2' and blabla = 'pulldown3' ";
eingibst, also das ganze in einem Formular hast und dann an ein Suchscript übergibtst.

Gruss
Kusi

http://www.k-k.ch
Grafik, Layout, Webdesign
als Antwort auf: [#131908] Top
 
Pozor
Beiträge: 892
22. Dez 2004, 08:20
Beitrag #3 von 12
Beitrag ID: #131953
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Hallo Jrandi,

Dies sind wichtige Fragen, wenns ums DB Design geht:

Links können mehrere Ortschaften haben.
können Ortschaften auch mehrere Links haben?
Links können mehrere Dienstleistungen beinhalten.
kännen Dienstleistungen auch mehrere Links haben?

Eine Dienstleistung kann ambulant oder hospitalisiert sein.

Gruss Stefan

"KISS - KEEP IT SIMPLE, STUPID"
Ein paar Debuggingtricks:
http://www.boelsterli.biz/test/hds/debugging.php
als Antwort auf: [#131908] Top
 
jrandi
Beiträge: 794
22. Dez 2004, 13:38
Beitrag #4 von 12
Beitrag ID: #132022
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Hallo,

erstmals besten dank für Eure Anregungen.

@ Kusi, ist zu umfangreich, gäbe ja 10 Zeilen Select Abfrage oder ich verstehe nicht wie du es meinst.

Muss mich da vielleicht noch deutlicher ausdrücken.

Ziel ist es die entsprechenden Links zu HTML-Seiten aufzurufen.
Diese HTML-Seiten müssen aber unter mehreren Ortschaften aufgerufen, resp. klassiert werden, dasselbe mit den Dienstleistungen und dann noch "ambulant" oder "hosptalisé". Alle diese Kombination aufzuführen, wie es bei Kusi's Beispiel aussieht, ist da zulang. . .

Bei der Suche wird nur 1 Kriterium pro Pulldown möglich sein.
z.B Ort XY, Dienstleistung XY, ambulant => ergibt html link XY

jedoch muss vielleicht genau derselbe link auch erscheinen, wenn ich im Pulldown Ort ZZ, Dienstleistung ZZ und ambulant eingebe => link XY

Darum muss der link, resp htmlseite, z.B. mit 10 Ortschaften, 26 Dienstleistungen sowie eben noch ambulant oder hospitalisé klassiert werden können.

=> siehe nochmals erstes Posting, hoffe es ist jetzt etwas klarer.

Nur, wie die Datenbank anlegen ? und wie abfragen ?
mehrer Ort-Felder oder nur eins und entsprechen viele Ortschaften darin auflisten ? Letztere Lösung erscheint mir einfacher um die DB zu erstellen, aber wie dann wieder auslesen ?

Besten dank für Eure Inputs !
jurg
als Antwort auf: [#131908] Top
 
jrandi
Beiträge: 794
22. Dez 2004, 13:39
Beitrag #5 von 12
Beitrag ID: #132023
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


P.S.

eine Abfrage kann 1 oder x links aufrufen !
als Antwort auf: [#131908] Top
 
ganesh  M 
Beiträge: 1981
22. Dez 2004, 14:29
Beitrag #6 von 12
Beitrag ID: #132043
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


bei sog. many-to-many relationships musst Du halt mehrere Tabellen erstellen und via id's verknüpfen. Daten sind ja selten bis in alle Ewigkeit gültig, und früher oder später wirst Du Aenderungen haben. URLs können ändern, Dienstleistungsangebot mag wechseln, usw. Einzelne Einträge zu ändern, wenn Du alles in eine einzige Tabelle packst, ist mühsam.

d.h. eine Tabelle für Ortschaft, eine für Dienstleistungen, eine für URLs usw.

Bei den Abfragen musst Du dann darauf achten, dass Du entsprechende WHERE Eingrenzungen machst, bzw. GROUP BY verwendest, damit Du nicht zu viele Ergebnisse bekommst.
als Antwort auf: [#131908] Top
 
jrandi
Beiträge: 794
22. Dez 2004, 14:59
Beitrag #7 von 12
Beitrag ID: #132061
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


bez. Flexibilität ist es sicher das beste, mehrere Tabellen zu machen, nur wie verbinde ich diese, damit der oder die entsprechenden links zur richtigen HTML-Seite erreichen. Eine Tabelle nur für die diversen ID's erstellen ?

Neben 185 Ortschaften gibt's noch 27 Dienstleistungen welche wiederum "ambulant" oder "hospitalisé" sein können.

Möglichkeiten : 27 x 185 = àhm so ca. 5000 und ambulant oder hospitalisé ist nich dabei. . .

diese ca. 5000 kombinationen sollen 1 oder x Links zu HTML-Seiten aufrufen. Link, resp. HTML-Seiten gibt es ca. 60

Es scheint mir das einfachste, von diesen 60 auszugehen und entsprechende Attribute anfügen, also z.B. 25 ortschaften und 9 Dienstleistungen oder wieviele das dann jeweils sind. . . und das attribut "ambulant" oder "hospitalisé". . .

Könnte ich da nicht einfachheitshalber alle benötigten Ortschaften unter dem Feld ORT einfügen, dasselbe mit den Dienstleistungen ?
Wie aber dann wieder auslesen, wenn die Ortschaft in dem Feld neben den vielen anderen auftaucht ?
mit Index_OF ? oder wie mach ich das am besten...

schon mal besten dank und gruss
jurg
als Antwort auf: [#131908] Top
 
Pozor
Beiträge: 892
22. Dez 2004, 16:22
Beitrag #8 von 12
Beitrag ID: #132090
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Hallo,

mal kurz ein Versuch:

tb_link //tabellenname
l_id
l_name
l_link

tb_ort //tabellenname
o_id
o_name

tb_dienstleistung //tabellenname
d_id
d_name
d_type

cl_lo //connectionlist many to many
o_id
l_id

cl_ld //connectionlist many to many
l_id
d_id

SQL:
SELECT l_name,l_link
FROM
tb_link AS L,
tb_ort AS O,
tb_dienstleistung AS D,
cl_lo AS lo,
cl_ld AS ld
WHERE
L.l_id = lo.l_id AND lo.o_id = O.o_id
AND O.o_name = '#Ortschaft#'
AND
L.l_id = ld.l_id AND ld.d_id = D.d_id
AND D.d_name = '#Dienstleistung#' AND D.d_type = '#Diensteliestungstyp#'

Mit der obigen Abrfage, #***# zu ersezten mit den gesendeten Daten,
kann ein oder mehrere Links als Antwort resultieren.

Ich habe es kurz noch als PDF unter folgendem Link gespeichert:
http://www.boelsterli.biz/...ort_link_service.pdf

hier ist es auch noch visuell dargestellt.

Es ist ev noch nicht ganz das was du suchst, doch sollte dir diese
Ansatz helfen deine Lösung zu implemenitieren denke ich.

Gruss Stefan

"KISS - KEEP IT SIMPLE, STUPID"
Ein paar Debuggingtricks:
http://www.boelsterli.biz/test/hds/debugging.php
als Antwort auf: [#131908] Top
 
jrandi
Beiträge: 794
22. Dez 2004, 18:09
Beitrag #9 von 12
Beitrag ID: #132102
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Besten Dank !

Das sieht gut und sauber aus. mal sehen, wie ich damit zurechtkomme. . .

gruss
jurg
als Antwort auf: [#131908] Top
 
jrandi
Beiträge: 794
3. Jan 2005, 18:27
Beitrag #10 von 12
Beitrag ID: #133660
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Hallo allerseits !

Die DB funktioniert soweit. Besten Dank für Eure inputs !

Jetzt liegt das problem beim updaten der daten. . .

es geht darum die "Intermediaire Tabelle" zu updaten, also csp_avoir_prestation, welche nur ID's hat und a=yes oder no, h=yes oder no -> siehe modell
http://www.rezonord.net/baustelle/db_update.pdf
und
http://www.rezonord.net/baustelle/
--> ein Partenaire auswählen
--> weiter zum update-formular
--> quellcode soweit ok ?

das formular scheint OK, aber wie updaten ? Es müssen ja je nach dem neue zeilen (where "id_partenaire=$id_n) in die DB geschrieben werden, oder gelöscht, oder einfach geändert, z.b. neu "hospitalisation" anstelle "ambulant". . .

weiss jemand, wo ich da script herkriege ? (unter hotscript.com suche ich mich zu tode. . . finde auch sonst nichts. . .)

oder wie müsste der code aussehen ?

für tipps und tricks danke ich schon mal im voraus !
jurg
als Antwort auf: [#131908] Top
 
jrandi
Beiträge: 794
7. Jan 2005, 01:22
Beitrag #11 von 12
Beitrag ID: #134549
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


Hallo hds !

altes projekt - NEUES PROBLEM ;-(

die DB partenaire/prestation habe ich nun so gelöst, dass jede zeile ein formular ist.
(wenn du mal nen blick drauf werfen willst : http://www.rezonord.net/csp_maj_new/index.php -> partenaire auswählen und auf "rechercher" klicken. - die buttons habe ich deaktiviert, da sonst so ein scherzkecks mir daten löschen oder eintragen könnte ;-)

dasselbe habe ich mit den "communes" gemacht, die DB mit den Ortschaften, für welche die "Partenaire" zuständig sind. Also eine DB welche nur die ID_partenaires und ID_communes beinhaltet um die verbindung herzustellen. Aber das ist schrott. Jedesmal eine Ortschaft (commune) anklicken und INSERT oder DELETE, dann ist man wieder am anfang der seite und muss scrollen, scrollen, scollen. . . um wieder auf die Ortschaft "z" zu kommen. . . merde. . .

man muss einfach alles ankreuzen können, oder eben deaktivieren und nur einmal absenden. das template steht, siehe http://www.rezonord.net/...ew...tenaire_commune
--> rechercher klicken. (die function für den Button "mise à jour" habe ich wieder deaktiviert, da man mir sonst daten löschen könnte (-;

Möchte eine lösung haben, wo man einfach alles ankreuzt oder deaktiviert und updatet.
um das zu machen, ist die erste Request Delete * from DB where id_partenaire='$id_partenaire_n'

ABER dann wird kompliziert für mich . . .wie die angekreuzten Ortschaften zurückholen und die mittels INSERT INTO DB (. . . ) Values ('$....') WHERE ID_partenaire='ID_partenaire_n - es sind ja x zeilen zu schreiben. . .

z.Z sieht meine "function" so aus : àhm, wie macht man das denn, das der code schön farbig codiert ist ??? sorry...
_____________________________________________________________

$id_partenaire_n = $_REQUEST["id_partenaire"];
$id_commune_n = $_REQUEST["id_commune"];
$sql = "DELETE FROM csp_partenariats WHERE id_partenaire='id_partenaire_n"
$query_delete = sql($sql);
if (!$query_delete) {
echo mysql_error();
exit;
}
//requet
$sql = "INSERT INTO csp_partenariats (id_partenaire, id_commune) values ('$id_partenaire_n', '$id_commune_n')";
$query = sql($sql);
if(!$query) {
echo mysql_error();
exit;
}
else {
header ("location:index.php?action=pulldown_result_commune&pulldown_partenaire=$id_partenaire_n&feedback=OK");
exit;
}
}
______________________________________________________________

bin für alle input dankbar und lerne gern dazu !

thx und gruss
jurg
________________________________
net & print production
http://www.randj.net / http://www.alpha-randj.net
als Antwort auf: [#131908] Top
 
jrandi
Beiträge: 794
7. Jan 2005, 18:03
Beitrag #12 von 12
Beitrag ID: #134775
Bewertung:
(3683 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen

datenbank erstellen / abfragen - multiple choice. . .


hat sich nun erledigt. klappt bestens.

(zuerst mit foreach checkboxen erruieren, DELETE where ID_partenaire, nachher mit substr INSERT INTO)

nochmals besten dank für Eure Inputs.

gruss
jurg
als Antwort auf: [#131908] Top
 
X