Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt dodajacy rekordy do bazy mysql
Adikus123
post 4.01.2011, 18:08:05
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.04.2010

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


Witam.
Mam taki skrypt:
  1. <?PHP
  2. echo ('<table><tr><td><p>Username:</p></td> <td><p><input type="text" name="medal_nick" size="15"></p></td></tr>
  3.  
  4. <tr><td><p>Medal:</p></td><td><p><select name="medal3"> <option selected value="" /> Wybierz</p>
  5. <option value="1" /> 1
  6. <option value="2" /> 2
  7. <option value="3" /> 3
  8. <option value="4" /> 4
  9. <option value="5" /> 5
  10. <option value="6" /> 6
  11. <option value="7" /> 7
  12. <option value="8" /> 8
  13. <option value="9" /> 9
  14. <option value="10" /> 10
  15. <option value="11" /> 11
  16. </select></td></tr></table>');
  17. echo ('<input type="submit" value="Daj medal"></p>');
  18.  
  19. mysql_connect('localhost','login','haslo');
  20. mysql_select_db('baza');
  21. $medale23 = mysql_query("SELECT * FROM medale") or die ('Error: '.mysql_error ());
  22. $cMedale = mysql_fetch_array($medale23);
  23. $ooName = $cMedale['username'];
  24. if ($_SESSION['admin'] == 'ok' && isset($_COOKIE['log'])){
  25. if ($isAdmin == 1 || $isAdmin == 2){
  26.  
  27. if (isset($medal_nick)) {
  28. if($ooName != $medal_nick)
  29. {
  30. mysql_query( 'INSERT INTO medale (username, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) '.
  31. "VALUES ('$medal_nick', '$med1', '$med2', '$med3', '$med4', '$med5', '$med6', '$med7', '$med8', '$med9', '$med10', '$med11')" );
  32.  
  33. if($medal13 == 1){
  34. $med1 = 1;
  35. $med2 = 0;
  36. $med3 = 0;
  37. $med4 = 0;
  38. $med5 = 0;
  39. $med6 = 0;
  40. $med7 = 0;
  41. $med8 = 0;
  42. $med9 = 0;
  43. $med10 = 0;
  44. $med11 = 0;
  45.  
  46. }
  47. elseif($medal13 == 2){
  48. $med1 = 0;
  49. $med2 = 1;
  50. $med3 = 0;
  51. $med4 = 0;
  52. $med5 = 0;
  53. $med6 = 0;
  54. $med7 = 0;
  55. $med8 = 0;
  56. $med9 = 0;
  57. $med10 = 0;
  58. $med11 = 0;
  59. }
  60. elseif($medal13 == 3){
  61. $med1 = 0;
  62. $med2 = 0;
  63. $med3 = 1;
  64. $med4 = 0;
  65. $med5 = 0;
  66. $med6 = 0;
  67. $med7 = 0;
  68. $med8 = 0;
  69. $med9 = 0;
  70. $med10 = 0;
  71. $med11 = 0;
  72. }
  73. elseif($medal13 == 4){
  74. $med1 = 0;
  75. $med2 = 0;
  76. $med3 = 0;
  77. $med4 = 1;
  78. $med5 = 0;
  79. $med6 = 0;
  80. $med7 = 0;
  81. $med8 = 0;
  82. $med9 = 0;
  83. $med10 = 0;
  84. $med11 = 0;
  85. }
  86. elseif($medal13 == 5){
  87. $med1 = 0;
  88. $med2 = 0;
  89. $med3 = 0;
  90. $med4 = 0;
  91. $med5 = 1;
  92. $med6 = 0;
  93. $med7 = 0;
  94. $med8 = 0;
  95. $med9 = 0;
  96. $med10 = 0;
  97. $med11 = 0;
  98. }
  99. elseif($medal13 == 6){
  100. $med1 = 0;
  101. $med2 = 0;
  102. $med3 = 0;
  103. $med4 = 0;
  104. $med5 = 0;
  105. $med6 = 1;
  106. $med7 = 0;
  107. $med8 = 0;
  108. $med9 = 0;
  109. $med10 = 0;
  110. $med11 = 0;
  111. }
  112. elseif($medal13 == 7){
  113. $med1 = 0;
  114. $med2 = 0;
  115. $med3 = 0;
  116. $med4 = 0;
  117. $med5 = 0;
  118. $med6 = 0;
  119. $med7 = 1;
  120. $med8 = 0;
  121. $med9 = 0;
  122. $med10 = 0;
  123. $med11 = 0;
  124. }
  125. elseif($medal13 == 8){
  126. $med1 = 0;
  127. $med2 = 0;
  128. $med3 = 0;
  129. $med4 = 0;
  130. $med5 = 0;
  131. $med6 = 0;
  132. $med7 = 0;
  133. $med8 = 1;
  134. $med9 = 0;
  135. $med10 = 0;
  136. $med11 = 0;
  137. }
  138. elseif($medal13 == 9){
  139. $med1 = 0;
  140. $med2 = 0;
  141. $med3 = 0;
  142. $med4 = 0;
  143. $med5 = 0;
  144. $med6 = 0;
  145. $med7 = 0;
  146. $med8 = 0;
  147. $med9 = 1;
  148. $med10 = 0;
  149. $med11 = 0;
  150. }
  151. elseif($medal13 == 10){
  152. $med1 = 0;
  153. $med2 = 0;
  154. $med3 = 0;
  155. $med4 = 0;
  156. $med5 = 0;
  157. $med6 = 0;
  158. $med7 = 0;
  159. $med8 = 0;
  160. $med9 = 0;
  161. $med10 = 1;
  162. $med11 = 0;
  163. }
  164. elseif($medal13 == 11){
  165. $med1 = 0;
  166. $med2 = 0;
  167. $med3 = 0;
  168. $med4 = 0;
  169. $med5 = 0;
  170. $med6 = 0;
  171. $med7 = 0;
  172. $med8 = 0;
  173. $med9 = 0;
  174. $med10 = 0;
  175. $med11 = 1;
  176. }
  177.  
  178. }else{
  179. mysql_query("UPDATE medale SET '$medal3'='$medal3' WHERE username='$medal_nick'");
  180. }
  181. }
  182.  
  183. }else{
  184. echo ('<p>Nie posiadasz uprawnien aby to przegladac. Zaloguj sie na Administratora!</p>');
  185. }
  186. }else{
  187. echo ("<p>Zaloguj sie!</p>");
  188. }



Lecz nic nie dodaje do bazy =/
Mógłby ktos sprawdzic i poprawic moj kod??
Go to the top of the page
+Quote Post
Wicepsik
post 4.01.2011, 18:25:34
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

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


Temat: Jak poprawnie zadac pytanie dokładniej wykonywanie zapytań do bazy


--------------------
Go to the top of the page
+Quote Post
Adikus123
post 4.01.2011, 18:55:04
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.04.2010

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


Ale chodzi mi o dodawanie rekordow do bazy a nie czytanie ich...
Go to the top of the page
+Quote Post
lord2105
post 4.01.2011, 19:21:07
Post #4





Grupa: Zarejestrowani
Postów: 380
Pomógł: 59
Dołączył: 24.04.2010
Skąd: London

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


sprawdz czy te warunki sa wykonywane:

  1. if ($_SESSION['admin'] == 'ok' && isset($_COOKIE['log'])){
  2. if ($isAdmin == 1 || $isAdmin == 2){
  3.  
  4. if (isset($medal_nick)) {
  5. if($ooName != $medal_nick)
  6. {
  7.  


--------------------
40% rozwiązań znajduje się tutaj.
59,9% tutaj.

Jeśli pomogłem rozwiązać Twój problem wciśnij
Go to the top of the page
+Quote Post
Adikus123
post 4.01.2011, 19:36:17
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.04.2010

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


if ($_SESSION['admin'] == 'ok' && isset($_COOKIE['log'])){ <- sprawdza czy jest sie zalogowanym
if ($isAdmin == 1 || $isAdmin == 2) - sprawdza czy jest sie adminem
{
if (isset($medal_nick)) { - sprawdza czy pole jest zapelnione
if($ooName != $medal_nick) {
- czyta nick z bazy i jesli go nie ma to dodaje nowy rekord:
  1. mysql_query( 'INSERT INTO medale (username, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11) '.
  2. "VALUES ('$medal_nick', '$med1', '$med2', '$med3', '$med4', '$med5', '$med6', '$med7', '$med8', '$med9', '$med10', '$med11')" );
  3.  
  4. if($medal13 == 1){
  5. $med1 = 1;
  6. $med2 = 0;
  7. $med3 = 0;
  8. $med4 = 0;
  9. $med5 = 0;
  10. $med6 = 0;
  11. $med7 = 0;
  12. $med8 = 0;
  13. $med9 = 0;
  14. $med10 = 0;
  15. $med11 = 0;
  16.  
  17. }
  18. elseif($medal13 == 2){
  19. $med1 = 0;
  20. $med2 = 1;
  21. $med3 = 0;
  22. $med4 = 0;
  23. $med5 = 0;
  24. $med6 = 0;
  25. $med7 = 0;
  26. $med8 = 0;
  27. $med9 = 0;
  28. $med10 = 0;
  29. $med11 = 0;
  30. }
  31. elseif($medal13 == 3){
  32. $med1 = 0;
  33. $med2 = 0;
  34. $med3 = 1;
  35. $med4 = 0;
  36. $med5 = 0;
  37. $med6 = 0;
  38. $med7 = 0;
  39. $med8 = 0;
  40. $med9 = 0;
  41. $med10 = 0;
  42. $med11 = 0;
  43. }
  44. elseif($medal13 == 4){
  45. $med1 = 0;
  46. $med2 = 0;
  47. $med3 = 0;
  48. $med4 = 1;
  49. $med5 = 0;
  50. $med6 = 0;
  51. $med7 = 0;
  52. $med8 = 0;
  53. $med9 = 0;
  54. $med10 = 0;
  55. $med11 = 0;
  56. }
  57. elseif($medal13 == 5){
  58. $med1 = 0;
  59. $med2 = 0;
  60. $med3 = 0;
  61. $med4 = 0;
  62. $med5 = 1;
  63. $med6 = 0;
  64. $med7 = 0;
  65. $med8 = 0;
  66. $med9 = 0;
  67. $med10 = 0;
  68. $med11 = 0;
  69. }
  70. elseif($medal13 == 6){
  71. $med1 = 0;
  72. $med2 = 0;
  73. $med3 = 0;
  74. $med4 = 0;
  75. $med5 = 0;
  76. $med6 = 1;
  77. $med7 = 0;
  78. $med8 = 0;
  79. $med9 = 0;
  80. $med10 = 0;
  81. $med11 = 0;
  82. }
  83. elseif($medal13 == 7){
  84. $med1 = 0;
  85. $med2 = 0;
  86. $med3 = 0;
  87. $med4 = 0;
  88. $med5 = 0;
  89. $med6 = 0;
  90. $med7 = 1;
  91. $med8 = 0;
  92. $med9 = 0;
  93. $med10 = 0;
  94. $med11 = 0;
  95. }
  96. elseif($medal13 == 8){
  97. $med1 = 0;
  98. $med2 = 0;
  99. $med3 = 0;
  100. $med4 = 0;
  101. $med5 = 0;
  102. $med6 = 0;
  103. $med7 = 0;
  104. $med8 = 1;
  105. $med9 = 0;
  106. $med10 = 0;
  107. $med11 = 0;
  108. }
  109. elseif($medal13 == 9){
  110. $med1 = 0;
  111. $med2 = 0;
  112. $med3 = 0;
  113. $med4 = 0;
  114. $med5 = 0;
  115. $med6 = 0;
  116. $med7 = 0;
  117. $med8 = 0;
  118. $med9 = 1;
  119. $med10 = 0;
  120. $med11 = 0;
  121. }
  122. elseif($medal13 == 10){
  123. $med1 = 0;
  124. $med2 = 0;
  125. $med3 = 0;
  126. $med4 = 0;
  127. $med5 = 0;
  128. $med6 = 0;
  129. $med7 = 0;
  130. $med8 = 0;
  131. $med9 = 0;
  132. $med10 = 1;
  133. $med11 = 0;
  134. }
  135. elseif($medal13 == 11){
  136. $med1 = 0;
  137. $med2 = 0;
  138. $med3 = 0;
  139. $med4 = 0;
  140. $med5 = 0;
  141. $med6 = 0;
  142. $med7 = 0;
  143. $med8 = 0;
  144. $med9 = 0;
  145. $med10 = 0;
  146. $med11 = 1;
  147. }

Go to the top of the page
+Quote Post
batman
post 4.01.2011, 20:26:50
Post #6





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Skąd Ci się wzięło $medal_nick? Korzystasz z register_globals?


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Adikus123
post 4.01.2011, 21:33:28
Post #7





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.04.2010

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


Tu masz:
echo ('<table><tr><td><p>Username:</p></td> <td><p><input type="text" name="medal_nick" size="15"></p></td></tr>
Go to the top of the page
+Quote Post
batman
post 4.01.2011, 21:38:14
Post #8





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Przed if (isset($medal_nick)) {
wstaw var_dump($medal_nick); i wyślij formularz.



--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Adikus123
post 5.01.2011, 23:56:30
Post #9





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.04.2010

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


Teraz mi pisze tak:

string(6) "Adikus"
Go to the top of the page
+Quote Post
kadlub
post 6.01.2011, 12:58:20
Post #10





Grupa: Zarejestrowani
Postów: 548
Pomógł: 105
Dołączył: 4.06.2010

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


jeśli to jest formularz to gdzie jest
questionmark.gif

i nie wiem czy dobrze rozumuje ale wtedy jeśli dane z formularza będą wysyłane metodą POST to zamiast
$medal_nick powinno być $_POST['medal_nick']

Ten post edytował kadlub 6.01.2011, 13:03:40
Go to the top of the page
+Quote Post
batman
post 6.01.2011, 20:12:36
Post #11





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Cytat(Adikus123 @ 5.01.2011, 23:56:30 ) *
Teraz mi pisze tak:

string(6) "Adikus"

No to debugujemy dalej i między

if (isset($medal_nick)) {

a

if($ooName != $medal_nick)

wstawiamy var_dump($ooName); var_dump($medal_nick); i sprawdzamy co nam się wyświetla.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Adikus123
post 6.01.2011, 23:44:56
Post #12





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.04.2010

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


Teraz wywala
NULL string(6) "Adikus"
Jak dodalem var_dump($medal13);

Wywala mi: NULL string(1) "6" string(6) "Adikus"


Ten post edytował Adikus123 6.01.2011, 23:49:54
Go to the top of the page
+Quote Post
batman
post 7.01.2011, 09:19:28
Post #13





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




W takim razie ostatni krok na drodze do znalezienie przyczyny problemu. Zrób echo wszystkich zapytań, które powinny działać i wykonaj je w phpmyadmin.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
Adikus123
post 7.01.2011, 20:05:06
Post #14





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 23.04.2010

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


pozmienialem troche i wyswietla mi sie tak string(6) "Adikus" 'Adikus', '0', '0', '1', '0', '0', '0', '0', '0', '0', '0', '0', '3', 'Adikus'

jak dla mnie wszystko jest dobrze a do mysql rekordow nie dodaje ;(

Teraz mam tak i dodaje ale warunek if mi nie dziala
  1. if($userbase != $medal_nick)
  2. {
  3. mysql_query( 'INSERT INTO `adikus_strona`.`medale` (`username`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`)'.
  4. "VALUES ('$medal_nick', '$med1', '$med2', '$med3', '$med4', '$med5', '$med6', '$med7', '$med8', '$med9', '$med10', '$med11' )" );
  5. echo "'$medal_nick', '$med1', '$med2', '$med3', '$med4', '$med5', '$med6', '$med7', '$med8', '$med9', '$med10', '$med11', '$medal13', '$medal_nick' ";
  6. }
  7. elseif
  8. {
  9. mysql_query("UPDATE medale SET '$medal13'='1' WHERE username='$medal_nick'");
  10. //header('Location: index.php');
  11. }

nie dziala mi warunek
  1. if($userbase != $medal_nick)


Czy nick jest juz w bazie, czy go nie ma i tak dodaje nowy rekord zamiast zmienic =/


@to juz naprawilem.
Zostało mi to:
mysql_query("UPDATE `adikus_strona`.`medale` SET '$medal13'='1' WHERE `medale`.`username`='$medal_nick'");
Jak to zrobic bo nie mam pomyslu.
Jak zmienie $medal13 na np 1. to zmienia sie kolumna 1. A $medal13 nie czyta. W echo pokazuje ze jest po wyslaniu przypisana mu cyfra,

Prosze o pomoc.

Ten post edytował Adikus123 8.01.2011, 00:03:47
Go to the top of the page
+Quote Post
batman
post 9.01.2011, 10:46:00
Post #15





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Zrób echo całego zapytania, nie samych danych, czyli
  1. echo "UPDATE `adikus_strona`.`medale` SET '$medal13'='1' WHERE `medale`.`username`='$medal_nick'";
a następnie wykonaj je w phpmyadmin.
Domyślam się, że powinno być tak:
  1. mysql_query("UPDATE medale SET " . $medal13 . "='1' WHERE username='" . $medal_nick . "'");


Przy okazji - nie filtrujesz danych, które trafiają do bazy. Poczytaj o mysql_real_escape_string.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
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 - 07:16