Database gegevens in een array te plaatsen
Ik heb een database met 4 artikelen met de naam artikel_A/D
, met het veld "prijs"
Op mijn aanbieding pagina heb ik een Table geplaatst met 4 rijen en 2 kolommen.
Op de rijen 1 en 3 zijn de blokken gevuld met de foto van artikel_A /D
Op de rijen 2 en 4 staan nu de tekst en de prijs. (in PHP geschreven)
Ik wil echter niet steeds de prijs handmatig op die site veranderen en zoek naar een mogelijkheid dat dit vanuit de database kan.
als ik de opdracht While gebruik komen de gegevens als lijst te voorschijn.
Moet ik nu voor ieder artikel voor het deel waar de prijs komt opnieuw een SELECT opdracht geven met WHERE? of is het mogelijk om $artikel rechtstreeks te benaderen in 0 /3 omdat dit schijnbaar een array is?
$artikel_SQL="SELECT * FROM aanbieding;
$artikel_result=mysql_query($artikel_SQL);
$artikel=mysql_fetch_array($artikel_result)
Graag jullie reactie hierover,
Groeten Dick
UPDATE aanbieding SET prijs = 23.95 WHERE artikel_naam = 'jouw artikel'
Bedankt voor je snelle reactie. Het probleem is niet dat er een UPDATE moet plaatsvinden, maar dat ik de te tonen gegevens van de database wil vereenvoudigen.
Na het inlezen van $artikel heb ik in PHP een zooi regels geschreven waarin ik 4 x $artikel["prijs"] wil plaatsen. (verschillende prijzen uiteraard)
Mijn vraag is eigenlijk hoe plaats ik de gegevens in een array, zodat ik gewoon kan zeggen echo $prijs(0..3) en dan de prijs op de goede plaats krijg.
groetjes Dick
Dit is een manier om de prijzen in een array te plaatsen. Je hebt nu echter geen idee meer welke prijs bij welk artikel hoort. En daarnaast: de foto's heb je wel statisch op je pagina neergezet?
Ik zou ervoor kiezen om de hele pagina dan dynamisch te genereren waarbij je dus de locatie van de foto's van een artikel ook in je database zet. Op die manier weet je altijd zeker dat je de juiste prijs bij de juiste foto hebt staan.
Bedankt voor je reachtie. De foto's worden geupload in de map foto's. Het zijn er slechts 4 en de naam is artikel_A tot artikel_D.
Met dit stukje heb ik geen probleem, de juiste foto's worden in de juiste kolom geplaatst.
Als je de locatie (lees: bestandsnaam, dat is immers al voldoende) van de fotos ook opslaat in de database heb je aan 1 query voldoende.
Nu weet je zeker dat je alle benodigde informatie opvraagt en dus ook weer kunt geven. Belangrijker is nog dat je op deze manier een verband krijgt in de dataset die je retour krijgt (artikelnaam, foto en prijs) en dat je helemaal niets meer hardcoded in jouw php-script hoeft te zetten.
Het klopt dat het aantal artikelen er niet toe doet, die kunnen altijd wel worden opgeroepem, de foto's kan ik wel in de database vermelden maar dat heeft niet veel nut daar het er maximaal 4 stuks zijn en ze toch eerst geplaatst moeten worden in de map foto's, anders vind de database ze niet.
onderstaand de zooi in PHP waarvan artikel CD nog met hardcoded de prijzen hebben.
<table border="1" cellspacing="0" width="100%">
$werk_SQL="SELECT * FROM aanbieding;
$werk_result=mysql_query($werk_SQL);
$werk=mysql_fetch_array($werk_result)
<tr>
<td width="50%" bgcolor="#0000FF">
<p align="center"><b><font size="6" color="#FFFF00">ARTIKEL A</font></b></td>
<td width="50%" bgcolor="#FFFF00">
<p align="center"><b><font size="6" color="#0000FF">ARTIKEL B</font></b></td>
</tr>
<tr>
<td width="50%" bgcolor="#0000FF" bordercolor="#FFFF00">
<p align="center"><img border="0" src="../foto/artikel_A.JPG" width="225" height="262"></td>
<td width="50%" bgcolor="#FFFF00" bordercolor="#FFFF00">
<p align="center"><img border="0" src="../foto/artikel_B.JPG" width="225" height="252"></td>
</tr>
<tr>
<td width="50%" bgcolor="#0000FF" align="center" bordercolor="#FFFF00"><b>
<font size="2" color="#FFFF00">Nu slechts</font><font color="#FFFF00">
</font>
</b>
<font size="6" color="#FFFF00"><b></b></font><b><font color="#FFFF00">
</font> <font size="2" color="#FFFF00">(excl.BTW 19 %)</font></b></td>
<td width="50%" bgcolor="#FFFF00" align="center" bordercolor="#0000FF"><b>
<font color="#0000FF"><font size="2">Nu slechts</font>
</font></b><font size="6" color="#0000FF"> $werk[2]["prijs"] </b></font><b><font color="#0000FF">
</font> <font size="2" color="#0000FF">(excl.BTW 19 %)</font></b></td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFF00" bordercolor="#FFFF00">
<p align="center"><b><font size="6" color="#0000FF">ARTIKEL C</font></b></td>
<td width="50%" bgcolor="#0000FF" bordercolor="#FFFF00">
<p align="center"><b><font size="6" color="#FFFF00">ARTIKEL D</font></b></td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFF00" align="center">
<p align="center"><img border="0" src="../foto/artikel_C.JPG" width="249" height="282"></td>
<td width="50%" bgcolor="#0000FF" align="center">
<p align="center"><img border="0" src="../foto/artikel_D.JPG" width="249" height="283"></td>
</tr>
<tr>
<td width="50%" bgcolor="#FFFF00" align="center"><b>
<font size="2" color="#0000FF">Nu slechts</font><font color="#0000FF">
</font></b>
<font size="6" color="#0000FF"><b>18,50 euro</b></font><b><font color="#0000FF">
</font> <font size="2" color="#0000FF">(excl.BTW 19 %)</font></b></td>
<td width="50%" bgcolor="#0000FF" align="center"><font color="#FFFF00"><font size="2">Nu slechts</font>
</font><font size="6" color="#FFFF00"><b>12,50 euro</b></font><font color="#FFFF00">
</font> <font size="2" color="#FFFF00">(excl.BTW 19 %)</font></td>
</tr>
</table>
En ja, natuurlijk moeten die foto's ergens in een map staan. Maar op dit moment heb je de fotos nog steeds hard coded in je script staan. Zodra je de fotos ook opneemt in de database, kun je deze hele pagina dynamisch laten genereren wat je een aantal voordelen biedt:
- Een veel kortere code aangezien je elke combinatie van foto/prijs maar 1 keer hoeft de scripten en dit vervolgens in een loop plaatst.
- Minder sql queries aangezien je er nu al een onderlinge relatie bestaat in je resultaat set tussen een foto en een prijs. Anders gezegd: je weet al welke prijs bij welke foto hoort.
<font> is overigens al sinds jaar en dag vervallen.
ik zal eens kijken wat css voor mogelijkheden bied, anders moet ik gewoon weer in frontpage werken.
groeten Dick
Quote:
Niet lullig bedoelt, maar ik mag toch hopen dat je niet zo diep zinkt! Die teringzooi staat toch wel met superstip op 1 wat betreft het meest beroerde programma om webpagina's te maken. Nog slechter kun je het niet treffen!anders moet ik gewoon weer in frontpage werken.
Google eens op 'html php editor' en je krijgt genoeg (betere) resultaten. Bv. Eclipse met PHP-plugin.