Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[PHP] PHP-Winkel probleem

Pagina: 1
Acties:
  • 228 views

  • Dimby
  • Registratie: April 2008
  • Laatst online: 01-07-2024
Hallo allemaal,

Na heel lang zoeken naar het probleem en herschrijven van het script weet ik geen raad meer en hoop dat jullie me kunnen helpen. Ik heb een winkel in een online oorlogs-RPG van mij, die niet goed functioneert.

Als je in de winkel iets koop bijvoorbeeld 10 soldaten krijg je er bv 157. Soms werkt het systeem wel en soms niet. Het aantal wat je krijgt is naar mijn zien random. Het systeem werkt als volgt: Je koopt 10 soldaten die komen in de db te staan. Dan komt er om de minuut een cron langs die kijkt hoeveel van die 10 soldaten gebouwd kunnen worden (ze hebben namelijk een bouwtijd).

DB:
Afbeeldingslocatie: http://i405.photobucket.com/albums/pp132/dimbyy/db.gif
Id: Id van de rij
Userid: de spelers id
Kol: Het id van de legerbasis (waar het gebouwd moet worden)
Image: Verwaarloosbaar
Naam: Naam van datgene wat gebouwd moet worden
Duur: Aantal seconden dat het duurt om 1 object te maken
Begin: Tijd van invoeren, of de laatste cronjob run
Aantal: Zoveel objecten moeten er nog gebouwd worden
Soort: De naam van de velden in andere tabellen

Deel van de cron:
code:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
//////////////
//Winkel//
//////////////

$res = mysql_query("SELECT * FROM bouw") ;
while($data = mysql_fetch_assoc($res)){
//Variabels resetten
$tijd = time();
$verschil =0;
$aantal =0;
$begin = 0;
$naantal = 0;
$delete = 0;

if($data['aantal']<1){ //Kijken of er nog wel wat gebouwd moet worden

mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
echo 'Verwijderen';
$delete++;
}

//Berekenen hoeveel er bebouwt kunnen worden
$verschil = $tijd-$data['begin'];
if($verschil >0){
$aantal = floor($verschil/$data['duur']);
if($aantal>0){
if($aantal>$data['aantal']){
$aantal = $data['aantal'];
}
$begin1 = $aantal*$data['duur'];
$begin = $begin1+$data['begin'];
$naantal = $data['aantal']-$aantal;
if($naantal > 0 ){
mysql_query("UPDATE bouw SET begin='".$begin."', aantal='".$naantal."' LIMIT 1")or die(mysql_error()) ;
echo 'Toevoegen';
}elseif($delete==0){
mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
echo 'Verwijderen';
$delete++;
}
if($naantal == 0 && $delete==0){
mysql_query("DELETE FROM bouw WHERE id= '".$data['id']."' LIMIT 1") ;
echo 'Verwijderen';
$delete++;
}

//Toevoegen

if($data['soort'] == 'werknemers' OR $data['soort'] == 'soldaat' OR $data['soort'] == 'schipper'){
mysql_query("UPDATE users SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['userid']."' LIMIT 1")or die(mysql_error()) ;
}
mysql_query("UPDATE wereld SET ".$data['soort']."=".$data['soort']."+'".$aantal."' WHERE id= '".$data['kol']."' LIMIT 1")or die(mysql_error()) ;
}
echo 'wat: '.$data['soort'].'<br>Tijd: '.$tijd.'<br>Begin: '.$data['begin'].'<br>Verschil: '.$verschil.'<br>DB Aantal: '.$data['aantal'].'<br>Aantal: '.$aantal.'(duur:'.$data['duur'].')<br>Begin1: '.$begin1.'<br>Begin: '.$begin.'(dbegin:'.$data['begin'].')<br>Naantal: '.$naantal.'<br><br>';

}


}


Ik hoop dat jullie de fout zien!!!
*snip*
Bedankt
Dimby

[ Voor 4% gewijzigd door Creepy op 13-09-2008 13:26 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 16-11 14:26

Creepy

Tactical Espionage Splatterer

Het is hier niet de bedoeling om je code te dumpen en hopen wat wij het probleem voor je gaan fixen. Debuggen e.d. zul je in eerste instantie zelf moeten. Whoami heeft dat perfect uitgelegd whoami in "[MYSQL] If statement" ;)

En er vervolgens nog geld of andere zaken voor willen weggeven is helemaal not done. Dat is pure werving en reclame. Ik denk eerlijk gezegd dat je iets teveel hooi op je vork hebt genomen. Dat je zelf een game wilt maken is leuk maar elk probleem hier dumpen zodat wij hier deels je game maken is natuurlijk niet de bedoeling.

[ Voor 40% gewijzigd door Creepy op 13-09-2008 13:31 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.