PhP Array, loop werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marko Westerveld

Marko Westerveld

01/06/2017 18:18:46
Quote Anchor link
Goede middag,

Hoogst waarschijnlijk zie ik iets over het hoofd.....

In mijn database staat in kolom x:
Quote:
VNKK9474; VNKK9468; VNKK9464; VNKK9462;


Dit haal ik uit de database, en wil een loop maken met de array
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
foreach ($row['product_pic'] as $value) {
$xml .= '
<PLAATJE'.$plaatje_nr.'>'.$value.'</PLAATJE'.$plaatje_nr.'>
';
}


Maar nu toont ie niet 3 regels, maar 1 regel met de inhoud:
Quote:
<plaatje_1>VNKK9474; VNKK9468; VNKK9464; VNKK9462;</plaatje1>


Waarschijnlijk denk ik iets te makkelijk....
 
PHP hulp

PHP hulp

27/11/2024 23:22:45
 
- Ariën  -
Beheerder

- Ariën -

01/06/2017 18:23:03
Quote Anchor link
Moet je niet eerst exploden op een spatie en mogelijk de punt-komma strippen?

Nog mooier is als je het netjes genormaliseerd opslaat als vier verschillende records in je tabel.
 
Marko Westerveld

Marko Westerveld

01/06/2017 18:27:14
Quote Anchor link
Inmiddels aangepast naar het volgende:

Quote:
VNKM2953,VNKM2821,VNKM2817,VNKL5770,VNKL5768,VNKL5259


Maar helaas niet het gewenste effect.

Inderdaad zou het anders mooier zijn, maar helaas kan ik aan de db niets aanpassen
 
Ben van Velzen

Ben van Velzen

01/06/2017 19:28:50
Quote Anchor link
Heb je dan ook die explode al gedaan?
 
Michael -

Michael -

02/06/2017 11:22:44
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$row
['product_pic'] = "VNKK9474; VNKK9468; VNKK9464; VNKK9462;";

$values = explode(";", $row['product_pic']);

foreach ($values as $value) {
$xml .= '
<PLAATJE'
.$plaatje_nr.'>'.trim($value).'</PLAATJE'.$plaatje_nr.'>
'
;
}

?>
Gewijzigd op 02/06/2017 17:33:13 door Michael -
 
- Ariën  -
Beheerder

- Ariën -

02/06/2017 17:17:10
Quote Anchor link
Maar, wat is de reden dat je tags die je genereert steeds uniek zijn?
Kan je die nummers niet in een attribuut zetten? Ik weet niet wat je met die output verder doet, maar het is logischer om er een soort tag van te maken.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$xml
.= '<PLAATJE code="'.$plaatje_nr.'">'.trim($value).'</PLAATJE>';
?>

Zo kan je uiteindelijk met DOMdocument of SimpelXML makkelijker er door heen lopen.
Gewijzigd op 02/06/2017 17:18:01 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

03/06/2017 02:50:21
Quote Anchor link
Begin bij het begin. Waarom zit deze informatie geserialiseerd in je database? Mogelijk wil je dat eerst eens opschonen.

Vervolgens is de loop niet zo moeilijk (meer).

Mogelijke verbetering(en) in XML:
* maak gebruik van output buffering en echo alleen de variabele delen in je XML, en
* zorg dat je in je XML karakters die hier een speciale betekenis kunnen hebben escaped met de daarvoor bestemde escaping-functie
Gewijzigd op 03/06/2017 02:50:47 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

03/06/2017 10:24:51
Quote Anchor link
Thomas van den Heuvel op 03/06/2017 02:50:21:
Begin bij het begin. Waarom zit deze informatie geserialiseerd in je database? Mogelijk wil je dat eerst eens opschonen.

Je doelt op normaliseren? Want dat had ik al eerder geroepen ;-)
Echter had hij al aangegeven dat dit op dit moment geen oplossing is.
Gewijzigd op 03/06/2017 11:49:10 door - Ariën -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.