abonnement Unibet Coolblue
  maandag 13 oktober 2014 @ 15:42:59 #241
37634 wobbel
Da WoBBeL King
pi_145494353
Hoe krijg ik van onderstaande XML alle nummers in een array? Soms zijn het 10 nummers, soms is het er maar 1....

Met simplexml_load_string weet ik niet hoe ik hiervan een array moet bakken waar ik vervolgens iets mee kan :@ ik kan dan niet met een foreach loopen door de nummers bijvoorbeeld

Na het laden van simplexml_load_string kan ik er wel een array van printen met print_r ( $xml->messagebody->order->mobilenumbers ); maar dan kan ik er geen foreachje mee doen

[update]
Op de volgende manier is het gelukt. Is dit netjes of is dit om te janken?

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
foreach($xml->messagebody->order->mobilenumbers as $nummer)
{
    
    foreach ( 
$nummer->number as $value )
    {
        
        echo 
"Nummer: " $value "<br /><br />";    
        
    }
    
}    
?>

Voorbeeld met 1 nummer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="UTF-8"?>
<mobile_orderdetail_ack xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <messageheader>
    <messagetype>mobile_orderdetail_ack</messagetype>
    <messageversion>01</messageversion>
    <timestamp>2014-10-13T15:28:04+02:00</timestamp>
    <reference>abchenkdetank</reference>
    <requestid>12345-REQUEST-ID</requestid>
  </messageheader>
  <messagebody>
    <order>
      <general>
        <customer>Klantnaam</customer>
        <orderdate>2014-06-24</orderdate>
        <msub>msub1337</msub>
      </general>
      <mobilenumbers>
        <number>0612345678</number>
      </mobilenumbers>
      </orders>
    </order>
  </messagebody>
</mobile_orderdetail_ack>

Voorbeeld met 3 nummers

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?xml version="1.0" encoding="UTF-8"?>
<mobile_orderdetail_ack xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <messageheader>
    <messagetype>mobile_orderdetail_ack</messagetype>
    <messageversion>01</messageversion>
    <timestamp>2014-10-13T15:28:04+02:00</timestamp>
    <reference>abchenkdetank</reference>
    <requestid>12345-REQUEST-ID</requestid>
  </messageheader>
  <messagebody>
    <order>
      <general>
        <customer>Klantnaam</customer>
        <orderdate>2014-06-24</orderdate>
        <msub>msub1337</msub>
      </general>
      <mobilenumbers>
        <number>0612345678</number>
        <number>0612341234</number>
        <number>0687654321</number>
      </mobilenumbers>
      </orders>
    </order>
  </messagebody>
</mobile_orderdetail_ack>


[ Bericht 4% gewijzigd door wobbel op 13-10-2014 15:58:11 ]
pi_145499094
quote:
0s.gif Op maandag 13 oktober 2014 15:42 schreef wobbel het volgende:
Hoe krijg ik van onderstaande XML alle nummers in een array? Soms zijn het 10 nummers, soms is het er maar 1....
Met simplexml_load_string weet ik niet hoe ik hiervan een array moet bakken waar ik vervolgens iets mee kan :@ ik kan dan niet met een foreach loopen door de nummers bijvoorbeeld
Na het laden van simplexml_load_string kan ik er wel een array van printen met print_r ( $xml->messagebody->order->mobilenumbers ); maar dan kan ik er geen foreachje mee doen
[update]
Op de volgende manier is het gelukt. Is dit netjes of is dit om te janken?
[ code verwijderd ]
Voorbeeld met 1 nummer
[ code verwijderd ]
Voorbeeld met 3 nummers
[ code verwijderd ]
Kan dat niet korter?

1
2
3
4
5
<?php
foreach($xml->messagebody->order->mobilenumbers->number as $value ) {
  echo 
"Nummer: " $value "<br /><br />";    
}
?>

edit: je voorbeeld XML is invalid (er staat een </orders> die daar niet hoort).
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  maandag 13 oktober 2014 @ 18:07:24 #243
187069 slacker_nl
Sicko pur sang
pi_145499591
quote:
5s.gif Op maandag 13 oktober 2014 17:53 schreef papernote het volgende:
[..]
Kan dat niet korter?
[ code verwijderd ]
edit: je voorbeeld XML is invalid (er staat een </orders> die daar niet hoort).
Dat ligt eraan, als mobilenumbers een scalar value teruggeeft is jouw voorbeeld goed, maar als ie in list-context iets teruggeeft gaat het fout, want dat zit je op een lijst ->number uit te voeren en volgens mij kent een php array geen 'number' method.

Mogelijk kan je array_map gebruiken, http://stackoverflow.com/(...)rray-using-array-map
In theory there is no difference between theory and practice. In practice there is.
pi_145500820
quote:
0s.gif Op maandag 13 oktober 2014 18:07 schreef slacker_nl het volgende:
[..]
Dat ligt eraan, als mobilenumbers een scalar value teruggeeft is jouw voorbeeld goed, maar als ie in list-context iets teruggeeft gaat het fout, want dat zit je op een lijst ->number uit te voeren en volgens mij kent een php array geen 'number' method.
Mogelijk kan je array_map gebruiken, http://stackoverflow.com/(...)rray-using-array-map
Dat "number" is een onderdeel van de XML, geen PHP aanroep. Zie de voorbeeld XML in de post van wobbel. Mijn code werkt op beide voorbeelden (na de aanpassing van de edit).

Of begrijp ik je niet goed?
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
pi_145504275
1
2
REPLACE INTO tabel(naam,stad,leeftijd)
VALUES('Jan','Rotterdam','18')

1
2
REPLACE INTO tabel(naam,stad,leeftijd)
VALUES('Jan','Amsterdam','18')

1
2
REPLACE INTO tabel(naam,stad,leeftijd)
VALUES('Jan','Rotterdam','20')

Wat doet dit? Maakt het 3 nieuwe records aan? Of wordt er met de eerste query een record aangemaakt en de tweede+derde record passen het aan?

Of is het mogelijk om aan te geven op welke veld hij moet matchen en aan de hand daarvan kiest om een record te updaten of een record toe te voegen?
pi_145505728
Als er een duplicate key zou zijn doet hij een DELETE en daarna alsnog een INSERT.

Als je wilt update moet je ON DUPLICATE KEY UPDATE gebruiken.
pi_145522193
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  dinsdag 14 oktober 2014 @ 10:52:12 #248
187069 slacker_nl
Sicko pur sang
pi_145523904
quote:
2s.gif Op maandag 13 oktober 2014 18:42 schreef papernote het volgende:
[..]
Dat "number" is een onderdeel van de XML, geen PHP aanroep. Zie de voorbeeld XML in de post van wobbel. Mijn code werkt op beide voorbeelden (na de aanpassing van de edit).
Of begrijp ik je niet goed?
Waar ik over val is niet bestaand zie ik. Ik vond het nogal vreemd dat je $xml->mobilenumbers->number doet en dat ie dan over alle mobile numbers loopt. Daar had ik namelijk een lijst verwacht. Maar kennelijk is dat niet zo zie ik hier.
In theory there is no difference between theory and practice. In practice there is.
pi_145561504
Iemand hier bekend met Laravel Eloquent?
Ik heb 3 tabellen:
users
permissions
user_permissions

Nu wil ik met eagerloading een query maken hierop, waarbij permissions.name gebruikt wordt.

Normaal:
1
2
3
4
5
6
7
8
9
10
SELECT * 
FROM permissions
LEFT JOIN user_permissions
ON permissions.id = user_permissions.permission_id
LEFT JOIN users
ON user_permissions.user_id = users.id
WHERE
permissions.name = 'name.of.permission'
AND
users.id = 15
pi_145571268
weet iemand hoe ik een htaccess bestand uit een 'parent' directory kan laten negeren? bv:

public_html/www/index.php
public_html/www/.htaccess
public_html/www/blog/

en als dan public_html/www/blog/index.php wordt opgevraagd dat het bovenliggende .htaccess bestand geheel genegeerd wordt, is dat mogelijk?
..///
pi_145571906
quote:
0s.gif Op woensdag 15 oktober 2014 16:23 schreef wipes66 het volgende:
weet iemand hoe ik een htaccess bestand uit een 'parent' directory kan laten negeren? bv:
public_html/www/index.php
public_html/www/.htaccess
public_html/www/blog/
en als dan public_html/www/blog/index.php wordt opgevraagd dat het bovenliggende .htaccess bestand geheel genegeerd wordt, is dat mogelijk?
Een .htaccess in blog maken met:
1RewriteEngine Off
óf in de .htaccess toevoegen (uit m'n hoofd):
1RewriteConf %{REQUEST_URI} !^/blog/?
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_145572017
quote:
7s.gif Op woensdag 15 oktober 2014 16:39 schreef Aether het volgende:
[..]
Een .htaccess in blog maken met:
[ code verwijderd ]
óf in de .htaccess toevoegen (uit m'n hoofd):
[ code verwijderd ]
het gaat helaas niet alleen om rewrite rules, maar ook allerlei andere regels (white listing van bestanden etc). het hele htaccess moet dus genegeerd worden.
..///
pi_145579651
quote:
0s.gif Op woensdag 15 oktober 2014 16:42 schreef wipes66 het volgende:
[..]
het gaat helaas niet alleen om rewrite rules, maar ook allerlei andere regels (white listing van bestanden etc). het hele htaccess moet dus genegeerd worden.
Voor zover ik weet is dat niet mogelijk. Je zou in de bovenliggende htaccess moeten opgeven dat de regels daarin niet gelden voor een specifieke onderliggende map. Voorbeeld: http://stackoverflow.com/(...)ules-in-root-htacces
Schuimpje... mijn liefste. Verlaat mij nimmer weer...
  FOK!mycroftheld zondag 19 oktober 2014 @ 01:16:29 #254
128465 verified  bondage
niet meer aanwezig op FOK!
pi_145689110
MySQL query vraagje. Stel ik heb de volgende tekst:

quote:
bla
<blockquote>bla bla bla</blockquote>

bla bla
Ik wil daaruit de tekst tussen <blockquote> en </blockquote> hebben zodat ik tekst tussen tags apart van de rest kan verkrijgen, hiervoor heb ik het volgende bedacht:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN 
   MID(
      `contents`, 
      LOCATE( '<blockquote>', `contents` ) + 12,
      (LOCATE( '</blockquote>', `contents` ) - LOCATE( '<blockquote>', `contents` )) - 12
   ) 
ELSE 
   '' 
END AS post_quote, 
CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN 
   CONCAT_WS(
      LEFT( `contents` , LOCATE( '<blockquote>', `contents`) - 1), ' ',
      RIGHT( `contents` , LENGTH(`contents`) - (LOCATE( '</blockquote>', `contents` ) + 12))
   )
ELSE 
   `contents` 
END AS post_contents 

Bovenstaande kan een kind van 4 nog bedenken en werkt prima zolang er slechts één quote in de tekst staat, zodra er meerdere in de tekst voorkomen gaat het mis.

Dit werkt bijvoorbeeld niet correct omdat er meerdere quotes in staan. De eerste quote gaat prima maar de rest wordt als post_contents gerekend.
quote:
<blockquote>quote 1</blockquote>

reactie 1

<blockquote>quote 2</blockquote>

reactie 2
Hier zou het volgende uit moeten komen:
In het veld post_contents: reactie 1 reactie 2
In het veld post_quote: quote 1 quote 2

Is dit überhaupt mogelijk met de string functies die MySQL beschikbaar heeft? Zo ja; hoe doe ik dit? Indien het niet mogelijk is jammer dan, maar kan altijd proberen. Ik kom er in ieder geval niet uit.

Testcase:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT
CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN 
   MID(
      `contents`, 
      LOCATE( '<blockquote>', `contents` ) + 12,
      (LOCATE( '</blockquote>', `contents` ) - LOCATE( '<blockquote>', `contents` )) - 12
   ) 
ELSE 
   '' 
END AS post_quote, 
CASE WHEN LOCATE( '<blockquote>', `contents` ) != 0 THEN 
   CONCAT_WS(
      LEFT( `contents` , LOCATE( '<blockquote>', `contents`) - 1), ' ',
      RIGHT( `contents` , LENGTH(`contents`) - (LOCATE( '</blockquote>', `contents` ) + 12))
   )
ELSE 
   `contents` 
END AS post_contents
FROM (
   SELECT 'bla bla bla <blockquote>quote 1</blockquote>reactie 1<blockquote>quote 2</blockquote> reactie 2' AS `contents`
) AS dummy
pi_145692106
Dat het kan betekent niet dat je het ook moet willen. Dit lijkt me typisch iets wat je in je businesslogic afhandelt ipv in een query.
  zondag 19 oktober 2014 @ 09:01:00 #256
187069 slacker_nl
Sicko pur sang
pi_145692186
Hij vind het leuk om zich in moeilijke situaties te knopen.

Maar agreed, dit moet je denk ik niet in je SQL stoppen, maar erbuiten.
In theory there is no difference between theory and practice. In practice there is.
  FOK!mycroftheld zondag 19 oktober 2014 @ 09:08:28 #257
128465 verified  bondage
niet meer aanwezig op FOK!
pi_145692223
quote:
14s.gif Op zondag 19 oktober 2014 08:47 schreef KomtTijd... het volgende:
Dat het kan betekent niet dat je het ook moet willen. Dit lijkt me typisch iets wat je in je businesslogic afhandelt ipv in een query.
Deze query wordt door Sphinx gebruikt om data te indexeren, ik moet deze data in twee velden in de index hebben zodat ze los van elkaar doorzocht kunnen worden. Ik kan in dit geval niets anders doen dan het in de query afhandelen.

quote:
3s.gif Op zondag 19 oktober 2014 09:01 schreef slacker_nl het volgende:
Hij vind het leuk om zich in moeilijke situaties te knopen.

Maar agreed, dit moet je denk ik niet in je SQL stoppen, maar erbuiten.
Eens, maar gaat in dit geval niet ;(
pi_145714105
Normaal heb ik bij een database tabel een veld genaamd 'id' met auto increment. Dit keer heb ik een andere veld welke uniek is en nooit dubbel kan zijn. Is het dan nog steeds handig/nodig om een id veld te hebben?
  zondag 19 oktober 2014 @ 21:25:47 #259
230788 n8n
Pragmatisch
pi_145714512
Hoe zet je tekstuele content in een database met behoud van opmaak? Html in de database lijkt me niet handig, stel dat je een keer van markup veranderd. Bbtags kan maar dat zal ook een keer veranderen, plus je moet alles vertalen. Ik zou zeggen bbtags als archivering, platte teksts om te zoeken en een gedeelte inclusief html markup in een cache. 3 keer opslaan dus of mis ik wat?
Specialization is for insects”.—Robert Heinlein
pi_145715567
quote:
0s.gif Op zondag 19 oktober 2014 21:19 schreef xaban06 het volgende:
Normaal heb ik bij een database tabel een veld genaamd 'id' met auto increment. Dit keer heb ik een andere veld welke uniek is en nooit dubbel kan zijn. Is het dan nog steeds handig/nodig om een id veld te hebben?
Nodig niet, of het handig is hangt af van je toepassing.
pi_145715645
quote:
0s.gif Op zondag 19 oktober 2014 21:19 schreef xaban06 het volgende:
Normaal heb ik bij een database tabel een veld genaamd 'id' met auto increment. Dit keer heb ik een andere veld welke uniek is en nooit dubbel kan zijn. Is het dan nog steeds handig/nodig om een id veld te hebben?
Gebruikelijk is om zowel de ruwe input als de HTML op te slaan. Waarom je ook nog platte tekst op zou willen slaan zou ik niet weten. Je kunt toch ook zoeken op de html/txt velden?
  zondag 19 oktober 2014 @ 21:54:40 #262
230788 n8n
Pragmatisch
pi_145716172
quote:
1s.gif Op zondag 19 oktober 2014 21:44 schreef KomtTijd... het volgende:

[..]

Gebruikelijk is om zowel de ruwe input als de HTML op te slaan. Waarom je ook nog platte tekst op zou willen slaan zou ik niet weten. Je kunt toch ook zoeken op de html/txt velden?
ik dacht anders zoekt ie de tags ook gezellig mee. Ok cool dankje
Specialization is for insects”.—Robert Heinlein
pi_145716265
quote:
1s.gif Op zondag 19 oktober 2014 21:44 schreef KomtTijd... het volgende:

[..]

Gebruikelijk is om zowel de ruwe input als de HTML op te slaan. Waarom je ook nog platte tekst op zou willen slaan zou ik niet weten. Je kunt toch ook zoeken op de html/txt velden?
Whut?
pi_145716484
quote:
1s.gif Op zondag 19 oktober 2014 21:54 schreef n8n het volgende:

[..]

ik dacht anders zoekt ie de tags ook gezellig mee. Ok cool dankje
Daar heb je zeker een punt ja. Je zou kunnen overwegen ook de platte tekst op te slaan idd, maar als je echt een fatsoenlijke zoekfunctie wilt maken komt daar nog heel wat meer bij kijken. Ik heb er geen ervaring me maar weet dat er hele studies maar verricht zijn.
  † In Memoriam † maandag 20 oktober 2014 @ 00:00:16 #265
159335 Boze_Appel
Vrij Fruit
pi_145719948
quote:
1s.gif Op zondag 19 oktober 2014 21:42 schreef KomtTijd... het volgende:

[..]

Nodig niet, of het handig is hangt af van je toepassing.
Als je id hebt buiten je primary doe je wat fout.
Carpe Libertatem
  maandag 20 oktober 2014 @ 11:10:12 #266
230788 n8n
Pragmatisch
pi_145726981
quote:
1s.gif Op maandag 20 oktober 2014 00:00 schreef Boze_Appel het volgende:

[..]

Als je id hebt buiten je primary doe je wat fout.
een id is toch nooit weg?
Specialization is for insects”.—Robert Heinlein
  maandag 20 oktober 2014 @ 11:11:40 #267
12221 Tijn
Powered by MS Paint
pi_145727030
quote:
7s.gif Op maandag 20 oktober 2014 11:10 schreef n8n het volgende:

[..]

een id is toch nooit weg?
Hij bedoelt denk ik een extra id buiten je primary key.
  maandag 20 oktober 2014 @ 11:11:45 #268
230788 n8n
Pragmatisch
pi_145727034
quote:
1s.gif Op zondag 19 oktober 2014 22:00 schreef KomtTijd... het volgende:

[..]

Daar heb je zeker een punt ja. Je zou kunnen overwegen ook de platte tekst op te slaan idd, maar als je echt een fatsoenlijke zoekfunctie wilt maken komt daar nog heel wat meer bij kijken. Ik heb er geen ervaring me maar weet dat er hele studies maar verricht zijn.
ongetwijfeld, denk voor de html-variant dat in veel gevallen ook op hele pagina’s gecached kan worden. Geeft een mooi beeld van wat er nou allemaal onderhouden/aangepast moet worden met een update ;(
Specialization is for insects”.—Robert Heinlein
  maandag 20 oktober 2014 @ 11:13:35 #269
230788 n8n
Pragmatisch
pi_145727087
quote:
2s.gif Op maandag 20 oktober 2014 11:11 schreef Tijn het volgende:

[..]

Hij bedoelt denk ik een extra id buiten je primary key.
ik heb op een site een unieke hash die ik als slug gebruik maar daarnaast ook een id, momenteel omdat ik daar nog op sorteer (oud naar nieuw, wordt nog aangepast). Een id veld maakt verder toch geen reet uit, als in een id is 'gratis'?
Specialization is for insects”.—Robert Heinlein
pi_145727148
quote:
1s.gif Op zondag 19 oktober 2014 22:00 schreef KomtTijd... het volgende:

[..]

Daar heb je zeker een punt ja. Je zou kunnen overwegen ook de platte tekst op te slaan idd, maar als je echt een fatsoenlijke zoekfunctie wilt maken komt daar nog heel wat meer bij kijken. Ik heb er geen ervaring me maar weet dat er hele studies maar verricht zijn.
Het valt heel erg mee, maar ik zou voor een beetje fatsoenlijke zoekfunctie inderdaad gewoon fatsoenlijke search software gebruiken zoals bijvoorbeeld Apache Solr.Standaard relevantie scoring obv TF/IDF, allerhande mogelijkheden voor stopwords filtering, stemming, synoniemen, enzovoort.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')