Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Problem Skrypt
Forum PHP.pl > Forum > Przedszkole
Pilsneer
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. ?>
rytek
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.
Pilsneer
Niestety nic to nie dało.
pawelsz66
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
rytek
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.