Berichten: 24
avatar
Offline Stuur privebericht
Beste CP leden,
Ik heb een klein probleempje met een WHILE statement in PHP.
Het probleem is dat er rente word uitgedeelt met een juist percentage maar enkel voor de eerste ID dus het lid met id 1
Een while zou dit moeten tegengaan maar dat doet hij hier niet.
Ik plaats een korte code indien je meer info nodig hebt kan je dit ff melden

Code | Selecteer Alles
minimaliseren
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
26
27
28
29
// Rente over de spelers
$sDonaties mysql_query("SELECT `id`, `donateur` FROM `status` WHERE`id`>0 LIMIT 1") or die(mysql_error());
while(
$rDonaties mysql_fetch_assoc($sDonaties))
{
$dona $rDonaties['donateur'];
$id $rDonaties['id'];

if(
$dona == 0
{
    
// LID RENTE = 3%
    
mysql_query("UPDATE speldata SET bankmoney=bankmoney+(bankmoney*0.03) WHERE id =".$id);
}
if(
$dona >&& $dona 5
{
    
// DONATEUR RENTE = 4%
    
mysql_query("UPDATE speldata SET bankmoney=bankmoney+(bankmoney*0.04) WHERE id =".$id);
}
if(
$dona >=&& $dona <10)
{
    
// VIP RENTE = 5%
    
mysql_query("UPDATE speldata SET bankmoney=bankmoney+(bankmoney*0.05) WHERE id =".$id);
}
if(
$dona >=10)
{
    
// PREMIUM RENTE = 6%
    
mysql_query("UPDATE speldata SET bankmoney=bankmoney+(bankmoney*0.06) WHERE id =".$id);
}
}
// Einde rente spelers

17-09-2010 17:56
Dit topic is 299 keer bekeken door 57 verschillende leden
Reacties op: "Rente"
1
De causeur!
Berichten: 504
avatar
Offline Stuur privébericht
Eerste query heb je limit 1, dit betekent dat alleen de eerste gevonden match opgenomen wordt, en de andere dus links laat liggen.
17-09-2010 17:59
Skype & Microsoft
Berichten: 3096
avatar
Offline Stuur privébericht
Ik weet niet zo heel veel van PHP,
Maar op regel 2 staat : 'LIMIT 1', volgens mij komt het daar door.
17-09-2010 17:59
Berichten: 24
avatar
Offline Stuur privébericht
Ok dankje, zal dat even aanpassen en uitvoeren en dan post ik het resultaat

Nieuwe reactie samengevoegd met originele reactie op 17.09.10 18:07:59:
Danje, Blijkbaar lag het dus tog daaraan
17-09-2010 18:00
WAN\'T TO LEARN SOMETHING
Berichten: 1564
avatar
Offline Stuur privébericht
LIMIT 0,1 moet het toch zin?
17-09-2010 20:23
Berichten: 491
avatar
Offline Stuur privébericht
Nee als je een limit aangeeft zal die maar een beperkt aantal rijen uit je database halen.


LIMIT 0,1 betekent het 1e rij.

Doe je 0,20 dan pakt die 20 rijen. Ligt er natuurlijk aan hoe je ORDER BY in elkaar zit.

Geen limit betekend dus alle rijen die aan de conditie van je query voldoen.
18-09-2010 13:58
nyan nyan nyan nyan
Berichten: 2076
avatar
Offline Stuur privébericht
Of je doet het gewoon makkelijk en doet LIMIT 1. Als je twee argumenten geeft (bijv. LIMIT 5,10), dan pakt ie vanaf de 5de de 10 volgende. Er is géén verschil tussen LIMIT 1 en LIMIT 0,1.

Wat je ook kan gebruiken is dit: [..query..] LIMIT 1 OFFSET 0.
18-09-2010 14:03
Berichten: 24
avatar
Offline Stuur privébericht
Quote: Extreme

Nee als je een limit aangeeft zal die maar een beperkt aantal rijen uit je database halen.


LIMIT 0,1 betekent het 1e rij.

Doe je 0,20 dan pakt die 20 rijen. Ligt er natuurlijk aan hoe je ORDER BY in elkaar zit.

Geen limit betekend dus alle rijen die aan de conditie van je query voldoen.



Dankje extreme, Weer iets bijgeleerd
18-09-2010 16:25
Reageer op: "Rente"
1
Je kan niet reageren omdat je niet bent ingelogd. Inloggen of Aanmelden