abonnement Unibet Coolblue Bitvavo
pi_38094524
oke dan zal ik mijn vraag nog een keer stellen maar nu heel duidelijk


1
2
3
4
5
6
7
8
9
10
11
12
13
14
<bedrijf>
        <id>2</id>
        <titel>Titeltest</titel>
        <doelstelling>Test test</doelstelling>
        <vraagt></vraagt>
        <locatie>Rotterdam</locatie>
      </bedrijf>
<bedrijf>
        <id>3</id>
        <titel>Test Test</titel>
        <doelstelling>Testje</doelstelling>
        <vraagt>Ik vraag </vraagt>
        <locatie>Amsterdam</locatie>
      </bedrijf>


Bovenstaande is een deel uit mijn XML bestand. Nu zou ik alleen de info (titel , doelstelling , vraagt, locatie) van het bedrijf met ID 3 eruit willen halen, hoe krijg ik dit dan voor elkaar?
pi_38095177
@broodmonkeh

Zo even uit het blote hoofd met een regular expression:
1
2
3
4
5
6
7
8
<?php
$matches
= array();
$findID = 3;
preg_match('#<bedrijf>.*<id>' . $findID . '</id>.*<titel>(.*)</titel>.*
<doelstelling>(.*)</doelstelling>.*<vraagt>(.*)</vraagt>.*
<locatie>(.*)</locatie>.*</bedrijf>#Uis'
, $data, $matches);
print_r($matches);
?>

Wel alles op één regel zetten natuurlijk
pi_38096599
nu krijg ik array() terug

//edit

foutje in de code gemaakt toen ik er 1 regel van maakte , gefixed en het werkt! danku
pi_38111217
Die .* in die preg_match, zonder haakjes. Wat doet die precies?
pi_38111242
quote:
Op dinsdag 23 mei 2006 07:01 schreef fokME2 het volgende:
Die .* in die preg_match, zonder haakjes. Wat doet die precies?
Alle tekens matchen. Wordt hier vooral gebruikt voor newlines en spaties, bij XML bestanden staan volgende tags immers meestal op een nieuwe regel.
pi_38111263
quote:
Op maandag 22 mei 2006 19:24 schreef JeRa het volgende:
@broodmonkeh

Zo even uit het blote hoofd met een regular expression:
[ code verwijderd ]

Wel alles op één regel zetten natuurlijk
Werkt, maar is niet handig. Als er iets wordt aangepast in de XML dan heb je een probleem. De manier van Roönaän is met een simpel if-statement uit te breiden voor een ID-check.
  dinsdag 23 mei 2006 @ 08:44:09 #132
11753 Roonaan
Strictly
pi_38111950
quote:
Op maandag 22 mei 2006 09:02 schreef Chandler het volgende:

[..]

Je zegt het wel heel erg simpel maar in praktijk blijkt het niet zo simpel te zijn
In principe zou je beter een enkele file kunnen maken. mod.mod_name.php

Die bevat een class met verschillende functies:
1
2
3
4
5
6
7
8
class mod_name extends basic_module {
   function hasAdmin() {}
   function hasRuntime() {}
   function hasInfo() {}
   function getInfo() {}
   function getRuntime() {}
   function getAdmin() {}
}

Of getAdmin er vervolgens uitziet als function getAdmin() { include dirname(__FILE__).'/mod_name.admin.php';} maakt dan niet zo heel veel uit.
Het punt is wel dat je maar een single point of failure hebt ipv vier.
  dinsdag 23 mei 2006 @ 08:45:57 #133
11753 Roonaan
Strictly
pi_38111979
1
2
3
4
5
6
7
8
9
10
11
$inhoud = file_get_contents($xml);
$requestedId = 4;
$inhoud = explode('<bedrijf>', $inhoud);
foreach($inhoud as $vacature) {
  $id = preg_match('#<id>(.*?)</id>#', $vacature, $m) ? $m[1] : 0;
  if($id == $requestedId) {
    $titel = preg_match('#<titel>(.*?)</titel>#', $vacature, $m) ? $m[1] : 0;
    echo '<a href="index.php?actie=bekijk&vacatureid='.intval($id).'">'.htmlspecialchars  ($title).'</a><br/>';
    break;
  }
}
  FOK!-Schrikkelbaas dinsdag 23 mei 2006 @ 08:47:45 #134
1972 Swetsenegger
Egocentrische Narcist
pi_38112012
quote:
Op dinsdag 23 mei 2006 08:44 schreef Roönaän het volgende:

[..]

In principe zou je beter een enkele file kunnen maken. mod.mod_name.php

Die bevat een class met verschillende functies:
[ code verwijderd ]

Of getAdmin er vervolgens uitziet als function getAdmin() { include dirname(__FILE__).'/mod_name.admin.php';} maakt dan niet zo heel veel uit.
Het punt is wel dat je maar een single point of failure hebt ipv vier.
Ik moet me echt gaan verdiepen in OOP
  dinsdag 23 mei 2006 @ 08:53:19 #135
12221 Tijn
Powered by MS Paint
pi_38112116
quote:
Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:

[..]

Ik moet me echt gaan verdiepen in OOP
Heb je dat PHP5 Power Programming boek niet gelezen, waar je zelf mee kwam?
  dinsdag 23 mei 2006 @ 08:54:39 #136
11753 Roonaan
Strictly
pi_38112144
quote:
Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:
Ik moet me echt gaan verdiepen in OOP
Áls je het zo wilt opstellen. Bovengenoemde is een van de methodes die ik ooit gebruikt heb.

Meer recent heb ik gewoon een series classes voor output modules en een serie classes voor managers ("admin tools"), en die staan aan elkaar gelinkt.
Dit om te voorkomen dat je dezelfde database management meuk voor iedere db-driven class opnieuw moet schrijven.
  FOK!-Schrikkelbaas dinsdag 23 mei 2006 @ 08:57:26 #137
1972 Swetsenegger
Egocentrische Narcist
pi_38112206
quote:
Op dinsdag 23 mei 2006 08:53 schreef Tijn het volgende:

[..]

Heb je dat PHP5 Power Programming boek niet gelezen, waar je zelf mee kwam?
Ik wist alles al, behalve OOP... en dat heb ik overgeslagen
quote:
Op dinsdag 23 mei 2006 08:54 schreef Roönaän het volgende:

[..]

Áls je het zo wilt opstellen. Bovengenoemde is een van de methodes die ik ooit gebruikt heb.

Meer recent heb ik gewoon een series classes voor output modules en een serie classes voor managers ("admin tools"), en die staan aan elkaar gelinkt.
Dit om te voorkomen dat je dezelfde database management meuk voor iedere db-driven class opnieuw moet schrijven.
Zie je...., ik begrijp totaal niet wat je hier zegt
  dinsdag 23 mei 2006 @ 09:07:29 #138
11753 Roonaan
Strictly
pi_38112423
quote:
Op dinsdag 23 mei 2006 08:57 schreef Swetsenegger het volgende:

[..]

Ik wist alles al, behalve OOP... en dat heb ik overgeslagen
[..]

Zie je...., ik begrijp totaal niet wat je hier zegt
Grin. Je hebt een serie modules:
basic_module.php
modules/module1.php
modules/module2.php
modules/module3.php

En een serie managers:
basic_manager.php
managers/dbmanager.php
managers/filemanager.php
managers/formmanager.php

Vervolgens stel je dat elke module een subclass is van een basic_module en elke manager een subclass van basic_manager.
Waar ik in het eerste voorbeeld de admin had als onderdeel van de module class, is het in dit voorbeeld zo dat elke module een functie heeft: getManager().
De manager heeft vervolgens een bepaalde set functies om te integreren met je content management systeem.
De modules zelf bevatten dan voornamelijk runtime info, en een relatief kleine set data om de manager aan te sturen. (Bijvoorbeeld: "welke db-tabel moet er gebruikt worden" of "welke 'aliassen' moeten er getoond worden ipv db-fields. 'user_id' => 'Gebruikersid', etc").
  FOK!-Schrikkelbaas dinsdag 23 mei 2006 @ 09:18:06 #139
1972 Swetsenegger
Egocentrische Narcist
pi_38112673
quote:
Op dinsdag 23 mei 2006 09:07 schreef Roönaän het volgende:

[..]

Grin. Je hebt een serie modules:
basic_module.php
modules/module1.php
modules/module2.php
modules/module3.php

En een serie managers:
basic_manager.php
managers/dbmanager.php
managers/filemanager.php
managers/formmanager.php

Vervolgens stel je dat elke module een subclass is van een basic_module en elke manager een subclass van basic_manager.
Waar ik in het eerste voorbeeld de admin had als onderdeel van de module class, is het in dit voorbeeld zo dat elke module een functie heeft: getManager().
De manager heeft vervolgens een bepaalde set functies om te integreren met je content management systeem.
De modules zelf bevatten dan voornamelijk runtime info, en een relatief kleine set data om de manager aan te sturen. (Bijvoorbeeld: "welke db-tabel moet er gebruikt worden" of "welke 'aliassen' moeten er getoond worden ipv db-fields. 'user_id' => 'Gebruikersid', etc").
Ok, zo in tekst klinkt het logisch en wordt de toegevoegde waarde van OOP ook wel duidelijk.
Maar het kwartje met het daadwerkelijk OOP coden wil maar niet vallen. Maar met 50 uur werken, een vrouw en kind en nog wat klusjes in de avonduren heb ik nou nooit eens lekker tijd om er een week voor te gaan zitten.

Maar... met een beetje mazzel komt er een verschuiving in werkzaamheden en kan ik in de baas z'n tijd wat meer aan de studie
  dinsdag 23 mei 2006 @ 09:19:18 #140
11753 Roonaan
Strictly
pi_38112708
quote:
Op dinsdag 23 mei 2006 09:18 schreef Swetsenegger het volgende:
Maar... met een beetje mazzel komt er een verschuiving in werkzaamheden en kan ik in de baas z'n tijd wat meer aan de studie
Altijd prettig, werkgevers die het licht zien als het om investering in de kennis van je medewerkers gaat.
pi_38116324
quote:
Op dinsdag 23 mei 2006 07:14 schreef Light het volgende:

[..]

Werkt, maar is niet handig. Als er iets wordt aangepast in de XML dan heb je een probleem. De manier van Roönaän is met een simpel if-statement uit te breiden voor een ID-check.
De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruiken
pi_38116543
quote:
Op dinsdag 23 mei 2006 08:47 schreef Swetsenegger het volgende:

[..]

Ik moet me echt gaan verdiepen in OOP
Begin dan met PHP6 (zie de php-src module in CVS) of pak een taal die een wat completere set aan OOP-mogelijkheden biedt; met PHP is het elke keer weer nét niet maar dat ligt ook aan het doeleinde natuurlijk
pi_38116579
quote:
Op dinsdag 23 mei 2006 11:26 schreef JeRa het volgende:

[..]

De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruiken
PHP5, SimpleXML
pi_38131585
Ik zit weer eens met een probleem...

de volgende query levert problemen op:

1SELECT bericht FROM slowchat WHERE userid='1' and bericht = 'Je mag ook berichten met inhoud plaatsen hoor <img src = 'emoticons/tongue.gif'> ' and datumtijd >= '2006-05-23 18'



Dit is de selectie voor controle voor dubbele berichten..

Nu snap ik dat SQL de ' van <img niet leuk gaat vinden, maarrrr ik heb bij het invoegen van mn variabele in de query wel { } gebruikt. Dit werkte eerder ook, want <img src = 'blaat'> wordt zelfs uit de database geladen...

PHP code is de volgende:

1
2
3
<?php
$sql_query
= "SELECT bericht FROM slowchat WHERE userid='{$MemCookID}' and bericht = '{$bericht}' and datumtijd >= '{$uurnu}' ";
?>


Iemand een idee wat er mis gaat? Tq:)
pi_38131624
Heb je ook de foutmelding?
En iets minder layout verneukende code
pi_38131665
@LeeHarveyOswald

Userid is hopelijk toch geen string? Geen quotes eromheen dan

Verder kun je dat oplossen door ' bericht = \'' . addslashes($bericht) . '\' te gebruiken.
pi_38131740
quote:
Op dinsdag 23 mei 2006 11:26 schreef JeRa het volgende:

[..]

De manier van Roönaän gaat ook op zijn bek als er grote wijzigingen worden doorgevoerd. Het beste is nog altijd om een XML-parser te gebruiken
PHP4 beschikt niet over een native XML-parser. En dan gaat mijn voorkeur uit naar een oplossing waarbij de volgorde van de elementen binnen een item (dus id en titel binnen bedrijf) niet relevant is boven een oplossing waarbij de volgorde vast is.
pi_38131778
opgelost!

[ Bericht 99% gewijzigd door big_al op 24-05-2006 11:25:43 ]
pi_38131959
quote:
Op dinsdag 23 mei 2006 18:37 schreef Light het volgende:

[..]

PHP4 beschikt niet over een native XML-parser.
Dát is natuurlijk helemaal waar. Ikzelf werk alleen in PHP5 en draai zo nu en dan PHP-cvs, dan denk je daar niet eens meer over na
pi_38132566
quote:
Op dinsdag 23 mei 2006 18:33 schreef c0nd0r het volgende:
Heb je ook de foutmelding?
En iets minder layout verneukende code
quote:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /usr/home/jeroen/www/test/chat.php on line 154
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'emoticons/tongue.gif'> ', 2, '2006-05-23 18:16:03', '62.251.120.197')' at line 1
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')