Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Mini sklep, kupowanie.
kurczak610
post
Post #1





Grupa: Zarejestrowani
Postów: 87
Pomógł: 2
Dołączył: 3.05.2009

Ostrzeżenie: (0%)
-----


Mam sklep i gdy nie mialem rang cena byla 1 i wszystko bylo ok. wyswietlało się:
Znajdziesz kod w zamowieniach!

Ale zrobiłem ze z wyzsza ranga ceny są niższe i pisze tak
Znajdziesz kod w zamówieniach!Brak nagrody!

Punkty odejmuje dobrze tylko ten tekst coś jest zle.
Oto kod:
  1. <?php
  2. $ranga=mysql_query("SELECT ranga,rangamin,rangamax FROM users1 WHERE id='".$_SESSION['userid']."'") or die(mysql_error());
  3. $pokazranga = mysql_fetch_array($ranga);
  4.  
  5.  
  6. $queryshop=mysql_query("SELECT * FROM shop ORDER BY id") or die(mysql_error());
  7. while ($rowshop = mysql_fetch_array($queryshop))
  8. {
  9.  
  10. $staty=mysql_query("SELECT boughtthingtoday,limitboughtthingtoday,points,partie,ranga FROM users1 WHERE id='".$_SESSION['userid']."'") or die(mysql_error());
  11. $pokazstaty=mysql_fetch_array($staty);
  12.  
  13.  
  14. switch($pokazstaty['ranga'])
  15. {
  16. case 1:
  17. $min = $rowshop['price'];
  18. break;
  19. case 2:
  20. $min = $rowshop['price'];
  21. break;
  22. case 3:
  23. $min = $rowshop['price'];
  24. break;
  25. case 4:
  26. $min = $rowshop['pricevip'];
  27. break;
  28. case 5:
  29. $min = $rowshop['pricesupervip'];
  30. break;
  31. case 6:
  32. $min = $rowshop['pricesupervip'];
  33. break;
  34. case 7:
  35. $min = $rowshop['pricesupervip'];
  36. break;
  37. }
  38.  
  39. $querycodes=mysql_query("SELECT * FROM codes$rowshop[id] WHERE available=1") or die(mysql_error());
  40. $amount = mysql_num_rows($querycodes);
  41.  
  42. if($amount==0)
  43. $message = 'Brak nagrody!';
  44.  
  45. elseif($min>$pokazstaty['points'])
  46. $message = 'Masz za mało pktów!';
  47.  
  48. elseif($pokazstaty['limitboughtthingtoday']==$pokazstaty['boughtthingtoday'])
  49. $message = 'Limit się skończył!';
  50.  
  51. else
  52. {
  53.  
  54. switch($pokazstaty['ranga'])
  55. {
  56. case 1:
  57. $cena = $rowshop['price'];
  58. break;
  59. case 2:
  60. $cena = $rowshop['price'];
  61. break;
  62. case 3:
  63. $cena = $rowshop['price'];
  64. break;
  65. case 4:
  66. $cena = $rowshop['pricevip'];
  67. break;
  68. case 5:
  69. $cena = $rowshop['pricesupervip'];
  70. break;
  71. case 6:
  72. $cena = $rowshop['pricesupervip'];
  73. break;
  74. case 7:
  75. $cena = $rowshop['pricesupervip'];
  76. break;
  77. }
  78. mysql_query("UPDATE users1 SET points=points-".$cena.", boughtthingtoday=boughtthingtoday+1 WHERE id=$_SESSION[userid]") or die(mysql_error());
  79.  
  80. $querybuycodes=mysql_query("SELECT * FROM codes$_GET[id] WHERE available=1 LIMIT 1") or die(mysql_error());
  81. $rowbuycodes = mysql_fetch_array($querybuycodes);
  82. echo "Kod znajdziesz w zamówieniach!";
  83. mysql_query("DELETE FROM codes$_GET[id] WHERE id=$rowbuycodes[id] LIMIT 1") or die(mysql_error());
  84. mysql_query("INSERT INTO zamowienia VALUES ('NULL','$_SESSION[username]','$rowshop[name]','Sklep','$rowbuycodes[code]','".date("Y-m-d", time())."','".date("H:i:s", time())."')");
  85. }
  86. }
  87. echo "$message";
  88. ?>


Co jest źle??

Ten post edytował kurczak610 18.06.2009, 18:33:57
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
MateuszS
post
Post #2





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Co to za tabela codes$rowshop[id] (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Nic dziwnego ze $amount = 0 ;>
Go to the top of the page
+Quote Post
kurczak610
post
Post #3





Grupa: Zarejestrowani
Postów: 87
Pomógł: 2
Dołączył: 3.05.2009

Ostrzeżenie: (0%)
-----


No bo to jest sklep do kodów doładowujacych telefon.
Tam dodaje kody, i gdy ktos kupi to liczy czy są kody (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
Spawnm
post
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




ale czy istnieje tabela codes$rowshop[id] ? bo w tym miejscu daje się jej nazwe .
daj echo $rowshop[id] i zobacz w bazie czy masz tabelę codes$rowshop[id]
Go to the top of the page
+Quote Post
Pawel_W
post
Post #5





Grupa: Zarejestrowani
Postów: 1 675
Pomógł: 286
Dołączył: 15.06.2009
Skąd: Wieliczka

Ostrzeżenie: (0%)
-----


pozamieniaj pare rzeczy, kod będzie krótszy i bardziej przejrzysty, np:

  1. <?php
  2. switch($pokazstaty['ranga'])
  3. {
  4. case 1: case 2: case 3:
  5. $min = $rowshop['price'];
  6. break;
  7. case 4:
  8. $min = $rowshop['pricevip'];
  9. break;
  10. case 5: case 6: case 7:
  11. $min = $rowshop['pricesupervip'];
  12. break;}
  13. ?>

zamiast
  1. <?php
  2. switch($pokazstaty['ranga'])
  3. {
  4. case 1:
  5. $min = $rowshop['price'];
  6. break;
  7. case 2:
  8. $min = $rowshop['price'];
  9. break;
  10. case 3:
  11. $min = $rowshop['price'];
  12. break;
  13. case 4:
  14. $min = $rowshop['pricevip'];
  15. break;
  16. case 5:
  17. $min = $rowshop['pricesupervip'];
  18. break;
  19. case 6:
  20. $min = $rowshop['pricesupervip'];
  21. break;
  22. case 7:
  23. $min = $rowshop['pricesupervip'];
  24. break;
  25. }
  26. ?>
Go to the top of the page
+Quote Post
kurczak610
post
Post #6





Grupa: Zarejestrowani
Postów: 87
Pomógł: 2
Dołączył: 3.05.2009

Ostrzeżenie: (0%)
-----


Nie mam takiej tabeli (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) mam link i ?id=1
I wtedy powinno to liczyc z tabeli codes1

Tzn. Mam tabele
codes1

Ten post edytował kurczak610 18.06.2009, 19:35:01
Go to the top of the page
+Quote Post
Andaramuxo
post
Post #7





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


A nie coś w tym stylu?
Kod
codes".$rowshop[id] "
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




to po co stosować " " ...
prędzej mysql_query("SELECT * FROM `codes{$rowshop['id']}` WHERE available=1")
Go to the top of the page
+Quote Post
MateuszS
post
Post #9





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

Ostrzeżenie: (0%)
-----


Nie mozesz miec nazwy zmiennej w nazwie tabeli bo bys musial caly czas tworzyc tabele ktora w nazwie by miala zawartosc zmiennej.
Go to the top of the page
+Quote Post
Andaramuxo
post
Post #10





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


Cytat(Spawnm @ 18.06.2009, 22:02:48 ) *
to po co stosować " " ...
prędzej mysql_query("SELECT * FROM `codes{$rowshop['id']}` WHERE available=1")

To powinno działać bo sam testowałem.
Go to the top of the page
+Quote Post
kurczak610
post
Post #11





Grupa: Zarejestrowani
Postów: 87
Pomógł: 2
Dołączył: 3.05.2009

Ostrzeżenie: (0%)
-----


Skrypt działa tylko pisze tak:
Kod znajdziesz w zamowieniach!Brak nagrody!.

A tabeli mam 10 (codes1, codes2 i tak do 10 ;P )
Go to the top of the page
+Quote Post
Spawnm
post
Post #12





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




  1. <?php
  2. $querycodes=mysql_query("SELECT * FROM codes$rowshop[id] WHERE available=1") or die(mysql_error());
  3. $amount = mysql_num_rows($querycodes);
  4.  
  5. if($amount==0)
  6. $message = 'Brak nagrody!';
  7. ?>

num_rows wynosi 0. zobacz czy są parametry spełniające warunek, zobacz czy nie ma gdzieś literówki i czy $rowshop[id]
wynosi 1 .
Go to the top of the page
+Quote Post
Andaramuxo
post
Post #13





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


Kod
if($amount==0)
$message = 'Brak nagrody!';

elseif($min>$pokazstaty['points'])
$message = 'Masz za mało pktów!';

elseif($pokazstaty['limitboughtthingtoday']==$pokazstaty['boughtthingtoday'])
$message = 'Limit się skończył!';


Ten post edytował Andaramuxo 19.06.2009, 12:13:21
Go to the top of the page
+Quote Post
kurczak610
post
Post #14





Grupa: Zarejestrowani
Postów: 87
Pomógł: 2
Dołączył: 3.05.2009

Ostrzeżenie: (0%)
-----


Ale jak w tabeli codes1 nic nie mam to wyskakuje brak nagrody, a jak jest to kod znajdziesz w zamowieniach!brak nagrody!

Ale tak sie stało gdy dodałem ceny dla osób z wyższą rangą.
Go to the top of the page
+Quote Post
Andaramuxo
post
Post #15





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


A może zamknij połączenie mysql? mysql_close
Go to the top of the page
+Quote Post
Spawnm
post
Post #16





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Cytat(Andaramuxo @ 19.06.2009, 19:15:09 ) *
A może zamknij połączenie mysql? mysql_close

I podskocz na jednej nodze (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif)

mysql_close nic nie zmieni , nawet nie jest obowiązkowe ...
Go to the top of the page
+Quote Post
kurczak610
post
Post #17





Grupa: Zarejestrowani
Postów: 87
Pomógł: 2
Dołączył: 3.05.2009

Ostrzeżenie: (0%)
-----


To co zrobić??
Go to the top of the page
+Quote Post
Andaramuxo
post
Post #18





Grupa: Zarejestrowani
Postów: 150
Pomógł: 15
Dołączył: 18.03.2009

Ostrzeżenie: (10%)
X----


A tu
Kod
$querycodes=mysql_query("SELECT * FROM codes$rowshop[id] WHERE available=1") or die(mysql_error());
$amount = mysql_num_rows($querycodes);

nie powinno być po tym pętli while, bo jak nie ma, to chyba zmienna $amount ma wartość zawsze zero i wyskakuje taki komunikat, to są moje przypuszczenia, nie zaszkodzi spróbować.
A jeżeli po dodaniu rang powstał błąd, to coś z nimi jest nie tak.

Ten post edytował Andaramuxo 19.06.2009, 18:25:17
Go to the top of the page
+Quote Post
Spawnm
post
Post #19





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




a co ma while do num_rows (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

z innej beczki to szybszym rozwiązaniem będzie

  1. <?php
  2. $querycodes=mysql_query("SELECT count(*) FROM codes{$rowshop['id']} WHERE available=1") or die(mysql_error());
  3. $amount = mysql_result($querycodes,0);
  4. ?>
Go to the top of the page
+Quote Post
kurczak610
post
Post #20





Grupa: Zarejestrowani
Postów: 87
Pomógł: 2
Dołączył: 3.05.2009

Ostrzeżenie: (0%)
-----


Na poczatku byla 1 cena, i bylo tylko tak:

  1. <?php
  2. if($_SESSION['logged']!=0)
  3. {
  4. ?>
  5. <?php
  6. $ranga=mysql_query("SELECT ranga,rangamin,rangamax FROM users1 WHERE id='".$_SESSION['userid']."'") or die(mysql_error());
  7. $pokazranga = mysql_fetch_array($ranga);
  8.  
  9.  
  10. $queryshop=mysql_query("SELECT * FROM shop ORDER BY id") or die(mysql_error());
  11. while ($rowshop = mysql_fetch_array($queryshop))
  12. {
  13.  
  14. $staty=mysql_query("SELECT boughtthingtoday,limitboughtthingtoday,points,partie,ranga FROM users1 WHERE id='".$_SESSION['userid']."'") or die(mysql_error());
  15. $pokazstaty=mysql_fetch_array($staty);
  16.  
  17.  
  18. $querycodes=mysql_query("SELECT * FROM codes$rowshop[id] WHERE available=1") or die(mysql_error());
  19. $amount = mysql_num_rows($querycodes);
  20.  
  21. if($amount==0) {
  22. $message = 'Brak nagrody!';
  23. }
  24.  
  25. elseif($rowshop['price']>$pokazstaty['points']) {
  26. $message = 'Masz za mało pktów!';
  27. }
  28.  
  29. elseif($pokazstaty['limitboughtthingtoday']==$pokazstaty['boughtthingtoday']) {
  30. $message = 'Limit się skończył!';
  31. }
  32.  
  33. else
  34. {
  35. mysql_query("UPDATE users1 SET points=points-$rowshop['price'], boughtthingtoday=boughtthingtoday+1 WHERE id=$_SESSION[userid]") or die(mysql_error());
  36.  
  37. $querybuycodes=mysql_query("SELECT * FROM codes$_GET[id] WHERE available=1 LIMIT 1") or die(mysql_error());
  38. $rowbuycodes = mysql_fetch_array($querybuycodes);
  39. echo "Kod znajdziesz w zamówieniach!";
  40. mysql_query("DELETE FROM codes$_GET[id] WHERE id=$rowbuycodes[id] LIMIT 1") or die(mysql_error());
  41. mysql_query("INSERT INTO zamowienia VALUES ('NULL','$_SESSION[username]','$rowshop[name]','Sklep','$rowbuycodes[code]','".date("Y-m-d", time())."','".date("H:i:s", time())."')");
  42. }
  43. }
  44. echo "$message";
  45. ?>


I dodałem to na rangi i sie zle zrobiło ;/
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 10:45