Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]"Zaginiona kolumna"
Forum PHP.pl > Forum > Przedszkole
Sekhmet
Witajcie! Więc tak tworzę sobie stronę ( właściwie grę) . Najpierw pokażę Wam kod potem omówię :
  1. echo "x";
  2. if(!empty($_GET['trenuj'])){
  3. switch($_GET['trenuj']){
  4. case 1:
  5. $koszt = $uzytkownik['um'] * 10;
  6. if($uzytkownik['euro'] < $koszt){
  7. echo "<p>Masz za mało euro!</p>";
  8. }
  9. if($uzytkownik['akcje'] < 20 ){
  10. echo 'Skończyły Ci się akcje';
  11. }
  12. else{
  13. $gracz = $uzytkownik['login'];
  14. mysql_query("update `gracze` set `prowadzenie` = prowadzenie + 100, um = um +100, akcje = akcje -20, forma = forma - 20 where `gracz` = ".$gracz."")or die(' '.mysql_error());
  15. }
  16. }
  17. }
  18.  

Więc to jest kluczowy kod więcej chyba nie trzeba.
Jeżeli nic nie staje na przeszkodzie (mam akcję i euro) Wyskakuje error_mysql'a
Unknown column 'admin' in 'where clause'
Kolumna jest na 100%. Nawet takie samo rozwiązanie mam w innym treningu i wszystko działa.
Czytałem tematy
  1. http://forum.php.pl/index.php?showtopic=94687

  1. http://forum.php.pl/index.php?showtopic=157219


Ale nikt nic nie robił , tylko zrób to i będziesz wiedział , więc żaden lajk taki jak ja z tego nie wyciągnął i figę wie.


Z góry dzięki za pomoc.
lukaskolista
Nie widze, zebys gdzies uzywal tej kolumny. Nie wrzuciles calego potrabnego kodu. Wrzuc zapytanie w ktorym uzywasz tej kolumny i nie boj sie, nikt Ci kodu nie ukradnie i nie napisze takiej gry.
Sekhmet
Heh. z jednego pliku nic nikomu nie przyjdzie tongue.gif
  1. <?php
  2.  
  3.  
  4. require_once('var/ustawienia.php');
  5.  
  6.  
  7.  
  8.  
  9. require_once('test_zalogowanego.php');
  10.  
  11.  
  12.  
  13. require_once('gora_strony.php');
  14. ?>
  15. <?
  16. echo "Witaj! Tutaj moesz wybrać efektywny trening +100 umiejętności! Cena treningu zależy od tego ile masz umiejętności!";
  17. if(!empty($_GET['trenuj'])){
  18. switch($_GET['trenuj']){
  19. case 1:
  20. $koszt = $uzytkownik['um'] * 10;
  21. if($uzytkownik['euro'] < $koszt){
  22. echo "<p>Masz za mało euro!</p>";
  23. }
  24. if($uzytkownik['akcje'] < 20 ){
  25. echo 'Skończyły Ci się akcje';
  26. }
  27. else{
  28. $gracz = $uzytkownik['login'];
  29. require_once('var/ustawienia.php');
  30. mysql_query("update gracze set prowadzenie = prowadzenie + 100, um = um +100, akcje = akcje -20, forma = forma - 20 where gracz = ".$gracz."")or die(' '.mysql_error());
  31. }
  32. }
  33. }
  34.  
  35.  
  36. ?>
  37. <a href="td.php?trenuj=1">Trenuj 100 prowadzenia</a>
  38.  
  39.  
  40.  
  41.  
  42.  
  43. <?
  44.  
  45. require_once('menu.php');
  46.  
  47.  
  48.  
  49.  
  50. require_once('dol_strony.php');
  51.  
  52. //wyczamy bufor
  53. ?>


Inny plik z podobnym zastowaniem
  1. <?php
  2. //włączamy bufor
  3.  
  4. //pobieramy zawartość pliku ustawień
  5. require_once('var/ustawienia.php');
  6.  
  7. //startujemy lub przedłużamy sesję
  8.  
  9. //dołączamy plik, który sprawdzi czy napewno mamy dostęp do tej strony
  10. require_once('test_zalogowanego.php');
  11.  
  12.  
  13. //pobieramy nagłówek strony
  14. require_once('gora_strony.php');
  15.  
  16.  
  17.  
  18. ?>
  19.  
  20. <p><b>Trening</b></p><hr/>
  21. <p>
  22. Wpisz tutaj jakiś tekst powitalny, żeby strona nie była zbyt pusta<br/>
  23. Poinformuj gracza o kosztach pobieranych za trening.<hr/>
  24. </p>
  25. <?php
  26. if(!empty($_GET['trenuj'])){
  27. //jeżeli gracz wcisnął trenowanie jakiegoś atrybutu, w zmiennej $_GET['trenuj'] przetrzymywany jest typ
  28.  
  29. switch($_GET['trenuj']){
  30. case 1:
  31. //wybrano trening siły
  32.  
  33. //ustaw koszt, każdy kolejny punkt siły kosztuje 10x aktualna wartość siły, czyli przykładowo dla siły = 1 koszt będzie 10, a dla siły 15 koszt będzie 150, kombinuj samemu coś ze wzorem na koszt
  34. $koszt = $uzytkownik['prowadzenie'] * 10;
  35.  
  36. if($uzytkownik['euro'] < $koszt){
  37. echo "<p>Masz za mało euro!</p>";
  38. }
  39. if($uzytkownik['akcje'] < 1 ){
  40. echo 'Skończyły Ci się akcje';
  41. }
  42. else {
  43. //dodaj siłę
  44. $uzytkownik['prowadzenie']++;
  45.  
  46. //zabierz złoto
  47. $uzytkownik['euro'] -= $koszt;
  48.  
  49.  
  50.  
  51.  
  52. mysql_query("update gracze set euro = ".$uzytkownik['euro'].", prowadzenie = ".$uzytkownik['prowadzenie'].", um = um + 1, akcje = akcje -1 where gracz = ".$uzytkownik['gracz']);
  53.  
  54.  
  55. }
  56. break;
  57.  
  58. case 2:
  59. //wybrano trening zręczności
  60.  
  61. //ustaw koszt, każdy kolejny punkt zręczności kosztuje 7x aktualna wartość zręczności, czyli przykładowo dla zręczności = 1 koszt będzie 7, a dla zręczności 10 koszt będzie 70, kombinuj samemu coś ze wzorem na koszt
  62. $koszt = $uzytkownik['refleks'] * 7;
  63.  
  64. if($uzytkownik['euro'] < $koszt){
  65. echo "<p>Masz za mało euro!</p>";
  66. } else {
  67. //dodaj siłę
  68. $uzytkownik['refleks']++;
  69.  
  70. //zabierz złoto
  71. $uzytkownik['euro'] -= $koszt;
  72.  
  73. mysql_query("update gracze set euro = ".$uzytkownik['euro'].", refleks = ".$uzytkownik['refleks'].", um = um + 1, akcje = akcje -1 where gracz = ".$uzytkownik['gracz']);
  74.  
  75.  
  76. }
  77. break;
  78.  
  79. case 3:
  80. //wybrano trening koncentracji
  81.  
  82. //ustaw koszt, każdy kolejny punkt wytrzymałości kosztuje 8x aktualna wartość wytrzymałości, czyli przykładowo dla wytrzymałości = 1 koszt będzie 8, a dla wytrzymałości 10 koszt będzie 80, kombinuj samemu coś ze wzorem na koszt
  83. $koszt = $uzytkownik['koncentracja'] * 8;
  84.  
  85. if($uzytkownik['euro'] < $koszt){
  86. echo "<p>Masz za mało euro!</p>";
  87. } else {
  88. //dodaj siłę
  89. $uzytkownik['koncentracja']++;
  90.  
  91. //zabierz złoto
  92. $uzytkownik['euro'] -= $koszt;
  93.  
  94. mysql_query("update gracze set euro = ".$uzytkownik['euro'].", koncentracja = ".$uzytkownik['koncentracja'].", um = um +1, akcje = akcje -1 where gracz = ".$uzytkownik['gracz']);
  95.  
  96.  
  97. }
  98. break;
  99.  
  100. default:
  101. //jeżeli wybrał typ którego nie ma (np sam coś kombinuje w adresie strony, chcąc namieszać)
  102. echo "<p><b><font color=red>Wyśmienity żart...</font></b></p>";
  103. break;
  104. }
  105.  
  106.  
  107. }
  108. ?>
  109. <p>
  110. <b>Atrybuty</b>
  111. <table>
  112. <tr>
  113. <td>
  114. Prowadzenie: <?php echo $uzytkownik['prowadzenie']; ?>
  115. </td>
  116. <td>
  117. <a href='trening.php?trenuj=1'>trenuj za <?php echo $uzytkownik['prowadzenie'] * 10; ?> złota</a>
  118. </td>
  119. </tr>
  120. <tr>
  121. <td>
  122. Refleks: <?php echo $uzytkownik['refleks']; ?>
  123. </td>
  124. <td>
  125. <a href='trening.php?trenuj=2'>trenuj za <?php echo $uzytkownik['refleks'] * 7; ?> złota </a>
  126. </td>
  127. </tr>
  128. <tr>
  129. <td>
  130. Koncentracja: <?php echo $uzytkownik['koncentracja']; ?>
  131. </td>
  132. <td>
  133. <a href='trening.php?trenuj=3'>trenuj za <?php echo $uzytkownik['koncentracja'] * 8; ?> złota </a>
  134. </td>
  135. </tr>
  136. </table>
  137. </p>
  138.  
  139. <?php
  140.  
  141. //pobieramy zawartość menu
  142. require_once('menu.php');
  143.  
  144.  
  145.  
  146. //pobieramy stopkę
  147. require_once('dol_strony.php');
  148.  
  149. //wyłączamy bufor
  150. ?>


Baza:
  1. -- phpMyAdmin SQL Dump
  2. -- version 2.7.0-pl2
  3. -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
  4. --
  5. -- Host: localhost
  6. -- Czas wygenerowania: 09 Kwi 2011, 14:33
  7. -- Wersja serwera: 5.0.18
  8. -- Wersja PHP: 5.1.2
  9. --
  10. -- Baza danych: `corvetta`
  11. --
  12.  
  13. -- --------------------------------------------------------
  14.  
  15. --
  16. -- Struktura tabeli dla `gracze`
  17. --
  18.  
  19. CREATE TABLE `gracze` (
  20. `gracz` int(11) NOT NULL AUTO_INCREMENT,
  21. `login` varchar(24) NOT NULL,
  22. `haslo` varchar(40) NOT NULL,
  23. `email` varchar(40) NOT NULL,
  24. `rank` varchar(11) NOT NULL DEFAULT 'Użytkownik',
  25. `vip` varchar(11) NOT NULL DEFAULT '0',
  26. `akcje` int(100) NOT NULL DEFAULT '200',
  27. `forma` int(11) NOT NULL DEFAULT '75',
  28. `prowadzenie` int(11) NOT NULL DEFAULT '5',
  29. `refleks` int(11) NOT NULL DEFAULT '5',
  30. `koncentracja` int(11) NOT NULL DEFAULT '5',
  31. `a_auto` int(11) NOT NULL DEFAULT '0',
  32. `vmax` int(11) NOT NULL DEFAULT '3',
  33. `do100` int(11) NOT NULL DEFAULT '100',
  34. `bak` varchar(11) NOT NULL,
  35. `refleks_t` int(11) NOT NULL DEFAULT '10',
  36. `um` int(11) NOT NULL DEFAULT '15',
  37. `euro` int(11) NOT NULL DEFAULT '100',
  38. `euro_b` int(11) NOT NULL DEFAULT '0',
  39. `pracuje` int(11) NOT NULL DEFAULT '0',
  40. `ostatnia_walka_pvp` int(11) NOT NULL DEFAULT '0',
  41. `ostatnia_walka_pvc` int(11) NOT NULL DEFAULT '0',
  42. PRIMARY KEY (`gracz`),
  43. UNIQUE KEY `login` (`login`)
  44. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
  45.  
  46. --
  47. -- Zrzut danych tabeli `gracze`
  48. --
  49.  
  50. INSERT INTO `gracze` VALUES (1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'admin', 'Użytkownik', '0', 76, 60, 19, 567, 22, 1, 0, 0, '', 100, 680, 6800, 2147476847, 0, 0, 0);
  51. INSERT INTO `gracze` VALUES (2, 'admin1', 'e00cf25ad42683b3df678c61f42c6bda', 'admin1', 'Użytkownik', '0', 40, 15, 5, 5, 5, 0, 1, 100, '', 10, 488, 7780, 0, 0, 0, 1111111);
  52. INSERT INTO `gracze` VALUES (3, 'test123', 'cc03e747a6afbbcbf8be7668acfebee5', 'test123', 'Użytkownik', '0', 20, 0, 117, 565, 155, 6, 3, 100, '', 10, 1571, 2147483647, 0, 0, 0, 0);
melkorm
Ale w tabeli gracze nie masz kolumny admin ... .
lukaskolista
hehe banalny blad, zakladam ze Twoj login to admin smile.gif poczytaj o tym, jak uzywa sie stringow w zapytaniach SQL, bo zle to robisz i dlatego wartosc admin traktuje jako kolumne
Sekhmet
Czytałem na phpkurs o stringach i nie znalazłem tam nic wnoszącego do mojego problemu.
Szukałem w guuglach "stringi w zapytaniu sql" nic nie znalałem.
Moglibyście mi wytłumaczyć dlaczego admin traktuje jako kolumnę a w innym pliku jest okej?
lukaskolista
admin traktuje jako kolumne, poniewaz Ty sam traktujesz to jako kolumne smile.gif
  1. $query = "SELECT pole FROM tabela WHERE gracz = 'admin'";
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.