Vraag & Antwoord

Webprogrammeren & scripting

str_replace krijg ik niet voor elkaar

3 antwoorden
  • Beste mensen, Ik ben niet zo sterk met PHP maar met wat geknutsel kom ik vaak wel redelijk ver. Nu loop ik alleen vast op het volgende: Ik haal de gegevens op uit de database en bij 1 veld ($dvd[field]) staat alles op 1 regel maar gescheiden door een ';' [i:135b47a755]vb: ditiseenregel;ditiseenvolgenderegel;enditisweereenandereregel[/i:135b47a755]1 Nu wil ik de ';' vervangen door een '<br />' maar krijg het niet voor elkaar.. Wie kan en wil mij helpen? [code:1:135b47a755] $aanbiedingen = mysql_query( $query ); while( $dvd = mysql_fetch_assoc( $aanbiedingen ) ) $dvd=str_replace(';', "<br />", $dvd); { echo "\n\t<div class=\"leftbox\"> \n\t<h3> $dvd[productName]</h3> \n\t<a href=\"dvd-titel/default.php?productID=$dvd[productID]&titel=$dvd[productName]\" title\"meer informatie over $dvd[productName]\"><img src=\"$dvd[imageUrl]\" height=\"95\" alt=\"$dvd[description]\" class=\"left\" /></a> \n\t<p><strong>$dvd[TDCategoryName]</strong></p> \n\t<p><b>Prijs:</b> <b>€ $dvd[price]</b></p> \n\t<p>$dvd[fields]</p> \n\t<p class=\"readmore\"><a href=\"dvd-titel/default.php?productID=$dvd[productID]&titel=$dvd[productName]\" title\"meer informatie over $dvd[productName]\">Bestellen</a></p> \n\t<div class=\"clear\"></div> \n</div>"; } [/code:1:135b47a755]
  • Ik denk dat je probleem meer in de loop zit dan in je str_replace, want die ziet er gewoon goed uit (buiten dat ik mezelf altijd aangeleerd heb om consequent te zijn met enkele of dubbele aanhalingstekens). Je loop ziet er echter vreemd uit. Allereerst zeg je nu dat de loop uitgevoerd moet worden zolang [code:1:42df43fa95]$dvd = mysql_fetch_assoc( $aanbiedingen )[/code:1:42df43fa95] waar is. Met bovenstaande code máák je die waar, dus dat resulteert in oneindig. Het gemakkelijkst is om de [url=www.php.net/foreach]foreach-loop[/url] toe te passen. Verder heb je onder de while, maar vóór het openings-haakje nog een regel staan (de str_replace). Of PHP dit slikt betwijfel ik ten zeerste. Ik denk dat je op zoiets uit moet komen: [code:1:42df43fa95]$aanbiedingen = mysql_query( $query ); $aanbiedingen = mysql_fetch_assoc( $aanbiedingen ); foreach ($aanbiedingen as $dvd){ $dvd=str_replace(';', "<br />", $dvd); echo "\n\t<div class=\"leftbox\"> \n\t<h3> $dvd[productName]</h3> \n\t<a href=\"dvd-titel/default.php?productID=$dvd[productID]&titel=$dvd[productName]\" title\"meer informatie over $dvd[productName]\"><img src=\"$dvd[imageUrl]\" height=\"95\" alt=\"$dvd[description]\" class=\"left\" /></a> \n\t<p><strong>$dvd[TDCategoryName]</strong></p> \n\t<p><b>Prijs:</b> <b>€ $dvd[price]</b></p> \n\t<p>$dvd[fields]</p> \n\t<p class=\"readmore\"><a href=\"dvd-titel/default.php?productID=$dvd[productID]&titel=$dvd[productName]\" title\"meer informatie over $dvd[productName]\">Bestellen</a></p> \n\t<div class=\"clear\"></div> \n</div>"; } [/code:1:42df43fa95]
  • Ger, bij jou oplossing wordt enkel de eerste rij uit de query gebruikt. Het probleem is wel dat de str_replace niet in de while staat.. [code:1:cb33b3cf1a] $aanbiedingen = mysql_query( $query ); while( $dvd = mysql_fetch_assoc( $aanbiedingen ) ) { $dvd=str_replace(';', "<br />", $dvd); echo "\n\t<div class=\"leftbox\"> \n\t<h3> $dvd[productName]</h3> \n\t<a href=\"dvd-titel/default.php?productID=$dvd[productID]&titel=$dvd[productName]\" title\"meer informatie over $dvd[productName]\"><img src=\"$dvd[imageUrl]\" height=\"95\" alt=\"$dvd[description]\" class=\"left\" /></a> \n\t<p><strong>$dvd[TDCategoryName]</strong></p> \n\t<p><b>Prijs:</b> <b>€ $dvd[price]</b></p> \n\t<p>$dvd[fields]</p> \n\t<p class=\"readmore\"><a href=\"dvd-titel/default.php?productID=$dvd[productID]&titel=$dvd[productName]\" title\"meer informatie over $dvd[productName]\">Bestellen</a></p> \n\t<div class=\"clear\"></div> \n</div>"; } [/code:1:cb33b3cf1a]

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.