Inhoud database ophalen sorteren en variabele toevoegen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc willemsen

Marc willemsen

04/10/2011 03:34:47
Quote Anchor link
Hallo,

Na een dag puzzelen en tig verschillende opties uitgeprobeerd te hebben wil ik hier toch graag wat hulp vragen.

Ik heb een databasetabel bijvoorbeeld

Nieuweprijs Oudeprijs titel url
10 20 blabla http...
20 40 blabla http...
ect...

Nu heb ik deze tabel tabel aangeroepen en met een while
in een array gestopt.

Vervolgens wil ik een variable (korting of percentage) berekenen en
deze variabele weer toevoegen aan een nieuwe array. ( mag ook zelfde array zijn)
De array sorteren en vervolgens de 10 hoogste kortingen presenteren.

Echter krijg ik het veld kortingen niet gepresenteerd in array $kortingen2

Ik moet toe naar het volgende denk ik:

array [0]
array => waarde
[titel]=> waarde
[oudeprijs]=> waarde
[nieuweprijs]=> waarde
[korting]=> waarde

array [url]=> waarde
[titel]=> waarde
[oudeprijs]=> waarde
[nieuweprijs]=> waarde
[korting]=> waarde

enz....



Ik hoop dat iemand mij hiermee verder op weg wil helpen.
let svp maar niet op de rommelige code hieronder.

mvgr
Marcel

-----------------------------------------------------

$sql = "SELECT title,url,prijs,prijs2 FROM dataitems ";
$result = mysql_query($sql);


while ($data = mysql_fetch_array($result)) {
$dataitems[] = $data;
//echo $dataitems['Prijs'].'<br/>';

}
//print_r ($dataitems);


foreach ($dataitems as $item) {
$newprice = $item['Prijs'];
$oldprice = $item['Select2'];
$korting = $oldprice - $newprice;
if ($korting <= 1)
$oldprice = 0.01;
$kortingper = $korting / $oldprice;
$kortingen= array('percentage'=>$kortingper);
//print_r ($kortingen);
//echo '&euro; '.$kortingper.'<br/>';

}

$kortingen2 = array_merge($kortingen, $dataitems);
foreach ($kortingen2 as $items) {
//print $items['kortingen'].'<br/>';
print_r ($kortingen2['Prijs']);
}
 
PHP hulp

PHP hulp

24/12/2024 19:07:03
 
- SanThe -

- SanThe -

04/10/2011 06:29:12
Quote Anchor link
Ik wil best helpen, maar ik snap er geen .... van.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

04/10/2011 07:41:02
Quote Anchor link
- SanThe - op 04/10/2011 06:29:12:
Ik wil best helpen, maar ik snap er geen .... van.

Ik ook niet, lol.
Maar het lijkt mij sowieso handiger om het kortings percentage in de tabel zetten.
en dan SQL:
SELECT ((100-discount)*price/100) AS newprice, price FROM ....... (etc.)
 
Marc willemsen

Marc willemsen

04/10/2011 11:08:49
Quote Anchor link
dan snappen we het geen van drieën hahaha
Ik kan het helaas niet anders uitleggen.

"Ik heb een tabel de gegevens hiervan moeten in een array.
Vervolgens wil ik een variable (bv korting) berekenen en
deze variabele weer toevoegen aan de array.
Deze array sorteren en vervolgens de 10 hoogste kortingen presenteren."

@Ger
Zat ik ook aan te denken
Echter de inhoud van de tabel wijzigt voortdurend doormiddel van enkele Cron jobs.
Ik zou dus wel kunnen proberen om een INSERT in de Cron te zetten maar ben bang dat ik hier op andere plaatsen in de code last mee krijg. Betreft namelijk een bestaand programma.




Toevoeging op 04/10/2011 14:00:17:

Geen hulp meer nodig - ik had een helder moment :-)
kan gewoon in 1 while loop

while ($data = mysql_fetch_array($result)) {
$title = $data['title'];
$url = $data['url'];
$Select2 = $data['Select2'];
$Prijs = $data['Prijs'];
$newprice = $data['Prijs'];
$oldprice = $data['Select2'];
$korting = $oldprice - $newprice;

dataitems[] = array('korting'=>$korting,'title'=>$title,'url'=>$url,'Select2'=>$Select2,'Prijs'=>$Prijs);

}
rsort ($dataitems);
Gewijzigd op 04/10/2011 14:02:31 door Marc willemsen
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

04/10/2011 14:28:07
Quote Anchor link
Marc willemsen op 04/10/2011 11:08:49:
@Ger
Zat ik ook aan te denken
Echter de inhoud van de tabel wijzigt voortdurend doormiddel van enkele Cron jobs.
Ik zou dus wel kunnen proberen om een INSERT in de Cron te zetten maar ben bang dat ik hier op andere plaatsen in de code last mee krijg. Betreft namelijk een bestaand programma.

Ik kan begrijpen dat je dan wat voorzichtig bent, maar waarom los je die berekeningen niet in een SQL statement op? Nu ga een hoop data ophalen waarvan je met een groot gedeelte niets meer doet.
 
Marc willemsen

Marc willemsen

04/10/2011 14:48:29
Quote Anchor link
klopt ga ik ook nog proberen hierna - is allemaal nog een leerschool voor mij
ben pas net begonnen met php
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

04/10/2011 15:51:45
Quote Anchor link
Marc willemsen op 04/10/2011 14:48:29:
klopt ga ik ook nog proberen hierna - is allemaal nog een leerschool voor mij
ben pas net begonnen met php

Mijn vorige post was ook een tip, geen kritiek ;-)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT (price - discount_price) AS discount, price, discount_price,
url, title FROM products ORDER BY discount DESC LIMIT 0, 10

resulteert in een 'recordset' van 10 records. Met php in een while lus echoen en klaar!
Gewijzigd op 04/10/2011 15:52:24 door Ger van Steenderen
 
Marc willemsen

Marc willemsen

04/10/2011 16:19:52
Quote Anchor link
lol ook niet opgevat als kritiek

Even geprobeerd - werkt heel goed alleen...

de meeste getallen in de database zijn opgeslagen als floats
Dus ik krijg niet dezelfde(juiste) resultaten via de select manier




gr
Gewijzigd op 04/10/2011 17:04:04 door Marc willemsen
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

04/10/2011 17:20:44
Quote Anchor link
Marc willemsen op 04/10/2011 16:19:52:
lol ook niet opgevat als kritiek
Even geprobeerd - werkt heel goed alleen...
de meeste getallen in de database zijn opgeslagen als floats
Dus ik krijg niet dezelfde(juiste) resultaten via de select manier

je bedoelt dat je waardes krijgt van 33.33333?
 
Marc willemsen

Marc willemsen

04/10/2011 17:32:34
Quote Anchor link
Nee 33.3333 kan ik me wel mee redden.

ik maak zelf een denkfout - want de sql statement moet nog aangepast worden.
want ik zoek eigenlijk niet de waarden met de meeste korting maar de waarden met
de hoogste relatieve korting. ( dus in percentage)
Gewijzigd op 04/10/2011 17:37:20 door Marc willemsen
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

04/10/2011 17:44:33
Quote Anchor link
das niet meer dn een berekening maken in je select
en percentage is niet meer dan: heteen/hetander*100
 
Marc willemsen

Marc willemsen

04/10/2011 17:46:42
Quote Anchor link
ja jiepee helemaal goed nu.

Dank je Ger voor de ondersteuning
 



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.