Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Problem Skrypt
Pilsneer
post 15.02.2010, 16:22:02
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.02.2010

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


Witam!
Jako iż to mój pierwszy post chciałbym się przedstawić, nazywam się Bartosz, mieszkam w Wielkopolsce.
Programowaniem PHP, MySQL, HTML zajmuje się około 3 tygodni, za to bardzo dobrze potrafię C++.

Otóż mam mam skrypt, który podwyższa mi Dochody w klubie, a także pojemność Hali.
Błąd polega na tym gdyż wcisnę "Wykonaj" to wyskakuje mi "Masz za mało kasy!", jak usunę If'a odpowiadającego za Pieniądze, skrypt wykonuje się dobrze wyskakuje "Kupiłeś (100) miejsc na hali swojego klubu! " lecz UPDATE nie wykonuje się, nie żdżera mi kasy, ani nie dodaje pojemności hali i dochodów!

Proszę o pomoc!

Tutaj Kod:


  1. <?php
  2. include('inc/config.php');
  3. include('inc/top.php');
  4.  
  5. if((!empty($_POST['action']))&&(!empty($_POST['count'])) ){
  6.  
  7. $user_data = mysql_fetch_row(mysql_query("SELECT * FROM users WHERE user='".$_POST['user']."' "));
  8.  
  9. if($user_data['kasa'] < 10){
  10. //Za mało kasy
  11.  
  12. echo "Masz za mało kasy!" . " <br><a href=\"hall.php\">Powrót</a>";
  13. } elseif($_POST['count'] > 100) {
  14. //Więcej niż 100 to echo
  15.  
  16. echo "Maksymalna ilośc to 100!" . " <br><a href=\"hall.php\">Powrót</a>";
  17. } else {
  18.  
  19. switch ($_POST['action']){
  20. case 'rozbuduj':
  21. mysql_query("UPDATE users SET poj_hala=poj_hala+".$_POST['count'].", dochody=dochody+".$_POST['count'].", kasa=kasa - (10*".$_POST['count'].") WHERE user='".$_POST['user']."'");
  22.  
  23. echo "Kupiłeś (".$_POST['count'].") miejsc na hali swojego klubu! <a href=\"hall.php\">Powrót</a>";
  24. break;
  25.  
  26. default:
  27. echo "Błędna Akcja";
  28.  
  29. break;
  30. }
  31.  
  32. }
  33.  
  34.  
  35. }
  36.  
  37. ?>
  38.  
  39.  
  40.  
  41.  
  42. <form method='post' action=''>
  43. <table cellspacing="10">
  44. <tr>
  45. <td align="center">Rozbuduj Miejsca w Hali:</td>
  46.  
  47. </tr>
  48. <tr>
  49. <td align="center">10&euro; za 1 msc.</td>
  50.  
  51. </tr>
  52.  
  53. <td align="center" colspan="3">
  54. <select name="action">
  55. <option value="rozbuduj">Rozbuduj o:</option>
  56.  
  57. </select>
  58. <select name="count">
  59. <option value="1">1</option>
  60. <option value="2">2</option>
  61. <option value="3">3</option>
  62. <option value="4">4</option>
  63. <option value="5">5</option>
  64. <option value="10">10</option>
  65. <option value="35">35</option>
  66. <option value="50">50</option>
  67. <option value="75">75</option>
  68. <option value="100">100</option>
  69. </select>
  70. <input type="submit" value="Wykonaj">
  71. </td>
  72. </tr>
  73. </table>
  74. </form>
  75.  
  76. <?php
  77. include('inc/down.php');
  78. ?>
Go to the top of the page
+Quote Post
rytek
post 15.02.2010, 16:33:38
Post #2





Grupa: Zarejestrowani
Postów: 63
Pomógł: 14
Dołączył: 21.01.2009
Skąd: Mszczonów

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


Pokaż co wyświetla:
print_r($_POST);
umieść przed if'em i wyślij formularz.

Tam to $_POST['user'] mi nie pasuje, bo w formularzu pola brak.

Ten post edytował rytek 15.02.2010, 16:47:09
Go to the top of the page
+Quote Post
Pilsneer
post 16.02.2010, 18:54:04
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 15.02.2010

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


Niestety nic to nie dało.
Go to the top of the page
+Quote Post
pawelsz66
post 16.02.2010, 19:13:53
Post #4





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.01.2010

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


wydaje mi się że zamiast
Cytat
WHERE user='".$_POST['user'].

powinno być WHERE user=$id";

a gdzieś na początek wrzucić
Kod
if ( (isset($_GET['id'])) && (is_numeric($_GET['id'])) ) {
    $id = $_GET['id'];
} elseif ( (isset($_POST['id'])) && (is_numeric($_POST['id'])) ) { // Wysłanie formularza.
    $id = $_POST['id'];
} else { // Brak poprawnego identyfikatora, zakończ skrypt.
    echo '<h1>Bł±d</h1>
    <p class="error">Bł±d podczas dostępu do strony.</p><p><br /><br /></p>';

    exit();

Oczywiście moge się mylić bo dopiero zaczynam moją "przygode" z programwoaniem
Go to the top of the page
+Quote Post
rytek
post 16.02.2010, 19:15:20
Post #5





Grupa: Zarejestrowani
Postów: 63
Pomógł: 14
Dołączył: 21.01.2009
Skąd: Mszczonów

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


Tej zmiennej $_POST['user'] nie przesyłasz formularzem, dlatego $user_data['kasa'] jest mniejsza od 10 i skrypt kończy pracę na tym ifie.

Proponuję dodać sobie do formularza pole hidden z id użytkownika, jak koniecznie chcesz pobierać je ze zmiennej $_POST.

Gdybyś zrobił to, o co prosiłem (print_r($_POST)winksmiley.jpg to zobaczyłbyś, że ta zmienna nie jest przesyłana i dlatego występują problemy.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 20:25