[PHP] XML ontleden, hierna url aan regels hangen

Pagina: 1
Acties:
  • 151 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Ik zit hier met het volgende waar ik een workaround voor aan het bedenken ben. (ik geef even een uitleg van de situatie.... geen helpdeskvraag :))

Ik leg het even uit aan de hand van producten, dit omdat het me wat makkelijker lijkt om te begrijpen:

Ik heb gemaakt; een formulier, dat wordt verstuurd, er komt een XML-pagina terug. In deze XML-pagina staan een aantal zaken in die ontleed worden door een php-script dat het uiteindelijk weer uitpoept op de pagina netjes in regels (lees array icm tabellen)

Dus:

Product:

A
B
C
D
E
F

Kleur:

1
2
3
4
5
6

Kunnen geleverd worden vanaf leverancier:

Q
R
S
T
U
V
W
X
Y
Z

Wat een output dus kan zijn in html tabellen is:

code:
1
2
3
4
5
6
Product    |      Kleur      |    Leverancier
-------------------------------------------------------
    A                   1                   Q
    A                   1                   Z
    C                   3                   W
    C                   3                   U


Product en kleur zijn eigenlijk wel aan elkaar verbonden, de leverancier kan uiteraard wel verschillen. De productnaam is in de geval een aanduiding voor de kleur (beetje vaag omschreven maar kersenjam is nog steeds niet geel bij mijn weten ;) )


Wat ik wil proberen is wanneer er uit de XML wordt gehaald dat wanneer Product A/1 van leverancier Q leverbaar is hier een bepaalde link aan komt te hangen in de HTML-pagina. Een hyperlink is natuurlijk niet het probleem maar wel de manier waarop dit gecontroleerd wordt.

De optie die ik bedacht had leek me opzich nog niet zo gek :X dus ga ik hier maar even neerzetten met als hoop een idee/reactie te krijgen omdat ik toch enigzins twijfel.

De urls voor de producten zijn bekend, voor ieder product een aparte URL dus dacht ik dat deze wellicht in een DB gezet kunnen worden waarbij het script direct kijkt bij welke uitgepoepte combinatie welke URL hoort. Aangezien de Procuct/Kleur + Leverancier ook vaste combinaties zijn heb je dus eigenlijk maar 2 variabelen.

Is dit te doen op de manier zoals ik bedacht had of niet ?

Voor het ontleden van de XML maak ik gebruik van CURL en dat zou voor dit geval ook een mogelijkheid moeten zijn.

Eens kijken wat jullie er van vinden/denken.

[ Voor 3% gewijzigd door BacardiBreezer op 06-04-2005 16:25 ]

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
hmm ik snap het niet helemaal...kun je een voorbeeld geven van de gewenste HTML output inclusief de URLs waar je steeds over hebt?

Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Genoil schreef op woensdag 06 april 2005 @ 16:45:
hmm ik snap het niet helemaal...kun je een voorbeeld geven van de gewenste HTML output inclusief de URLs waar je steeds over hebt?
De gewenste output zoals hierboven aangegeven in de "CODE" met per regel de bijbehorende (aanhangende) url zodat je hem aan kan klikken en naar de bij behorende link toe gaat.

Ik hoop een beetje begrijpelijk.

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Mja dat had ik wel begrepen, maar wat voor urls zijn dat dan? URLs naar de pagina van de leverancier waarop die het product aanbiedt, of zijn het gewoon interne urls zoals pagina.php?product=a&kleur=1&leverancier=Y ?

Hmm na iets beter gelezen te hebben zie ik dat je dus voor elke product/kleur/leverancier combo een unieke URL in je database hebt (of gaat zetten). Dan is het toch een kwestie van een simpele database SELECT om de url bij de combinatie te vinden?

Maar het ontgaat me een beetje waarom je dan eerst een XML pagina in elkaar gaat zetten, vervolgens die met CURL gaat ontleden en dan per combi een database lookup te doen. Ik bedoel, je kunt ook de formulier-data direct in een database-query gooien en de urls meteen in de XML erbij plempen...

[ Voor 57% gewijzigd door Genoil op 06-04-2005 17:40 ]


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Ik heb de XML-output nodig omdat ik op de output geen grip hebt, in zo verre dat ik mocht ik een query doen van: "Laat mij alles maar zien" Ik deze items niet aan kan passen. Oftewel..... ik haal de XML ergens anders vandaan.

Volgens jou is dat dus een goede optie voor die urls om dit met een DB te doen? Het klopt wat je zegt qua details; het moet een door-verwijs-pagina worden die zelf gemaakt wordt en waar dus de URL van bekend is.

Waar ik alleen niet uit kom is hoe een combo (regel/array dus) weer in een script mee te nemen om te laten kijken wat er bij hoort. Dit omdat ik ik de combo eerst moet filteren uit de XML.... die combo is dan nog niet vast te pakken naar mijn idee om weer wat mee te doen.(of ikzit hier kompleet naast)

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
BacardiBreezer schreef op woensdag 06 april 2005 @ 18:07:
Ik heb de XML-output nodig omdat ik op de output geen grip hebt, in zo verre dat ik mocht ik een query doen van: "Laat mij alles maar zien" Ik deze items niet aan kan passen. Oftewel..... ik haal de XML ergens anders vandaan.
oh zeg dat dan ;) dan ontgaat het me iig niet :)
Volgens jou is dat dus een goede optie voor die urls om dit met een DB te doen? Het klopt wat je zegt qua details; het moet een door-verwijs-pagina worden die zelf gemaakt wordt en waar dus de URL van bekend is.
Ja (SQL) databases zijn uitermate geschikt voor het opslaan van tabulaire gegevens. Ik neem aan dat je die unieke URLs per combinatie zelf via een ander formulier in wilt gaat voeren? Dan maak je dus een database met 1 tabel, laten we zeggen 'combo', met de velden id(PK), product, kleur, leverancier en url, waarin je de ingevulde waarden van dat formulier steeds opslaat. Het kan allemaal een stuk complexer (= efficienter) met 1 table voor producten, 1 voor kleuren, 1 voor leveranciers en 1 voor urls met een hoop verwijzigingen, maar als je nog nooit met databases hebt gewerkt zou ik het in eerste instantie simpel houden.
Waar ik alleen niet uit kom is hoe een combo (regel/array dus) weer in een script mee te nemen om te laten kijken wat er bij hoort. Dit omdat ik ik de combo eerst moet filteren uit de XML.... die combo is dan nog niet vast te pakken naar mijn idee om weer wat mee te doen.(of ikzit hier kompleet naast)
Per combo doe je vervolgens een database lookup naar de bijbehorende URL:
code:
1
SELECT url FROM combo WHERE product='a' AND kleur=1 AND leverancier='Y' LIMIT 1

Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
toch "simpeler" dan ik dacht !! Dank voor deze bevestiging alvast !

Het DB probleem is niet zo'n groot probleem lijkt me,moet alleen de select query er even goed bij invoegen.

Het idee opzich was dus goed, niet anders op te lossen of totaal omslachtig ?

Jij bent misschien belangrijk, maar ik ben aardig ;)


Acties:
  • 0 Henk 'm!

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
BacardiBreezer schreef op woensdag 06 april 2005 @ 18:58:
Het idee opzich was dus goed, niet anders op te lossen of totaal omslachtig ?
Dat weet ik niet, misschien heeft iemand anders een veel beter idee :)

Ik ben zelf nogal fan van XSLT wanneer e.o.a. input-XML verwerkt moet worden naar een andere vorm. Je zou in 1 transformatie de lijst met SQL queries kunnen genereren, maar dat biedt op zich geen voordelen.

Misschien dat het efficienter is ipv van x queries 1 hele grote te maken door alle losse WHERE clauses aan elkaar te ORren. In dat geval (en ook met de XSLT-optie) moet je natuurlijk wel SELECT product, kleur, leverancier, url FROM doen en ORDER BY product, kleur, omdat je dan niet meer per regel werkt en de context dus kwijt bent in je resultaat.

[ Voor 18% gewijzigd door Genoil op 06-04-2005 19:28 ]


Acties:
  • 0 Henk 'm!

  • BacardiBreezer
  • Registratie: September 2003
  • Laatst online: 19-06-2005

BacardiBreezer

Breezing Bacardi ?

Topicstarter
Ik ga het eens proberen met een DB. Ik denk dat we het we met elkaar eens zijn, so wish me luck :D

Jij bent misschien belangrijk, maar ik ben aardig ;)

Pagina: 1