Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Insert w pętli
Forum PHP.pl > Forum > Przedszkole
GoodStuff
Witam mianowicie piszę możliwość tworzenia pokoi i dołączenia do nich . Pisząc i testując to co napisałem napotkałem się na duży problem. Mianowicie przy 2,3 pokojach które zostają stworzone naciskając. Dołącz do pokoju dołącza od razu do 3 na raz a nie do konkretnego. Gdzie to mam określić?
  1. <?
  2. if(user::isLogged()){
  3. $user = user::getData('', '');
  4. if(isset($_POST['wyslij']) && !empty($_POST['nazwa']) && !empty($_POST['ts']))
  5. {
  6.  
  7. $nazwa = $db->real_escape_string(htmlspecialchars($_POST['nazwa']));
  8. $ts = $db->real_escape_string(htmlspecialchars($_POST['ts']));
  9.  
  10.  
  11.  
  12. $db->query("INSERT INTO `pokoje` (`nazwa`, `ts`, id_wlasciciela) VALUES('$nazwa', '$ts', ".$user['id'].")")
  13. //$db->query("INSERT INTO `pokoje_gracze` (`id_gracza`, `id_pokoje`) VALUES(".$user['id'].", )")
  14. or die(mysql_error());
  15. echo "Stworzono pokój";
  16. }
  17.  
  18. echo "<center>
  19. <p>Pokoje</p></center> ";
  20.  
  21.  
  22. echo '<form action="?" method="POST">
  23. Nazwa Pokoju:
  24. <input maxlength="64" type="text" name="nazwa" id="nazwa"><br />
  25. IP TEAMSPEAK:
  26. <input maxlength="64" type="text" name="ts" id="ts">
  27.  
  28. <button type="submit" name="wyslij">Stwórz pokój</button>
  29. </form><br />';
  30.  
  31. //Pobieramy dane z bazy
  32. $query = $db->query("SELECT * FROM `pokoje`");
  33. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_pokoju=".$user['id']." and id_dodanego=".$profile['id'].""));
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40. //Pętla do wyświetlenia wszystkich wpisów
  41. while($shout=mysqli_fetch_array($query)) {
  42. echo '<style type="text/css">
  43. .tg {border-collapse:collapse;border-spacing:0;border-color:#bbb;}
  44. .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#bbb;color:#594F4F;background-color:#E0FFEB;}
  45. .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#bbb;color:#493F3F;background-color:#9DE0AD;}
  46. .tg .tg-efv9{font-family:Arial, Helvetica, sans-serif !important;}
  47. </style>
  48. <table class="tg">
  49. <tr>
  50. <th class="tg-031e" colspan="10">'.$shout['nazwa'].'['.$shout['id'].']</th>
  51. </tr>
  52. <tr>
  53. <td class="tg-031e" colspan="7">';
  54. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_gracza=".$user['id']." and id_pokoje=".$shout['id'].""));
  55. if(($zab['id_gracza'] == $user['id']) && ($zab['id_pokoje'] == $shout['id']))
  56. {
  57. echo' IP TS:'.$shout['ts'].'';
  58. }
  59. else{
  60. echo ' Dołącz do pokoju by zobaczyć ip TS';
  61. }
  62.  
  63. echo'</td>
  64. <td class="tg-031e" colspan="3" rowspan="4">Gracze: '.$zab['id_gracza'].'<br /></td>
  65. </tr>
  66. <tr>
  67. <td class="tg-efv9" colspan="7" rowspan="3">';
  68. //chat
  69. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_gracza=".$user['id']." and id_pokoje=".$shout['id'].""));
  70. if(($zab['id_gracza'] == $user['id']) && ($zab['id_pokoje'] == $shout['id']))
  71. {
  72. if(isset($_POST['chat']) && !empty($_POST['tekst']))
  73. {
  74.  
  75.  
  76. $tekst = $db->real_escape_string(htmlspecialchars($_POST['tekst']));
  77.  
  78.  
  79.  
  80. $db->query("INSERT INTO `pokoje_chat` (`id_gracz`, `id_pokoje`, `tekst`) VALUES(".$user['id'].", ".$shout['id']." , '$tekst')")
  81. or die(mysql_error());
  82.  
  83.  
  84. header('Location: '.$_SERVER['REQUEST_URI']);
  85. }
  86. else {
  87. //Pobieramy dane z bazy
  88. $chat = $db->query("SELECT * FROM `pokoje_chat` Where id_pokoje=".$shout['id']."");
  89.  
  90.  
  91. //Początek struktury tabeli
  92.  
  93.  
  94. //Pętla do wyświetlenia wszystkich wpisów
  95. while($chat1=mysqli_fetch_array($chat)) {
  96. echo '<b>'.$chat1['id_gracz'].':</b> '.$chat1['tekst'].'<br/>';
  97. }
  98.  
  99.  
  100. echo '<form action="?" method="POST">
  101. <textarea rows="4" cols="40" name="tekst" id="tekst">
  102. Napisz coś...
  103. </textarea><br />
  104.  
  105. <button type="submit" name="chat">Napisz</button>
  106. </form>';
  107. }
  108. }
  109. else{
  110. echo 'czat po dołączeniu';
  111. }
  112.  
  113.  
  114.  
  115. echo'</td>
  116. </tr>
  117.  
  118. <tr>
  119. </tr>
  120. <tr>
  121. </tr>
  122. <tr>
  123. <td class="tg-031e" colspan="10" rowspan="3"><form action="?" method="POST">';
  124. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_gracza=".$user['id']." and id_pokoje=".$shout['id'].""));
  125.  
  126. if(($zab['id_gracza'] == $user['id']) && ($zab['id_pokoje'] == $shout['id']))
  127. {
  128. echo'<button type="submit" name="odejdz">Odejdź z pokoju</button>';
  129. }
  130. else{
  131.  
  132. echo'<button type="submit" name="dolacz">Dołącz do pokoju</button></form>';
  133. }
  134. </td>
  135. </tr>
  136. <tr>
  137. </tr>
  138. <tr>
  139. </tr>
  140. </table><br />';
  141. if(isset($_POST['dolacz']))
  142. {
  143.  
  144. $id_pokoje = $shout['id'];
  145. $id_gracza = $user['id'];
  146.  
  147.  
  148.  
  149. $db->query("INSERT INTO `pokoje_gracz` (`id_gracza`, `id_pokoje`) VALUES('$id_gracza', '$id_pokoje')")
  150.  
  151. or die(mysql_error());
  152. header('Location: '.$_SERVER['REQUEST_URI']);
  153. echo "Dołączyłeś do pokoju";
  154. }
  155.  
  156. if(isset($_POST['odejdz']))
  157. {
  158.  
  159. $id_pokoje = $shout['id'];
  160. $id_gracza = $user['id'];
  161.  
  162.  
  163.  
  164. $db->query("DELETE FROM pokoje_gracz Where id_gracza=$id_gracza and id_pokoje=$id_pokoje")
  165.  
  166. or die(mysql_error());
  167. header('Location: '.$_SERVER['REQUEST_URI']);
  168. echo "Odszedłeś z pokoju";
  169. }
  170. }
  171.  
  172.  
  173. }
  174. ?>
Kshyhoo
Proszę poprawić tytuł wątku na zgodny z zasadami działu, tu wszyscy mają jakiś problem...
robertpiaty
Nie chce mi się całego kodu analizować. W lini 41 rozpoczynasz pętlę i wewnątrz tej pętli (chyba - bo wydaje mi się że jej wcześniej nie kończyłeś) w lini 80 robisz insert
GoodStuff
A jak inaczej to zrobić? jak zamknę wcześniej pętle . To niestety przestają inserty działać
thepiotr
Lepiej było by zrobić to dodawanie w polu w którym piszesz jak i inne rzeczy. Wszystko za pomocą komend - wtedy nie byłoby takich problemów biggrin.gif
GoodStuff
Cytat(thepiotr @ 23.02.2015, 15:45:33 ) *
Lepiej było by zrobić to dodawanie w polu w którym piszesz jak i inne rzeczy. Wszystko za pomocą komend - wtedy nie byłoby takich problemów biggrin.gif


Nie bardzo rozumiem?
thepiotr
To patrz:


takie coś ;p
GoodStuff
Tutaj chodzi o to że ten insert musi być w pętli ponieważ w zmiennej $shout jest zapisany id pokoju do którego aktualnie chcemy dołączyć, odjeść, usunąć.

  1. if(isset($_POST['dolacz']))
  2. {
  3.  
  4. $id_pokoje = $shout['id'];
  5. $id_gracza = $user['id'];
  6.  
  7.  
  8.  
  9. $db->query("INSERT INTO `pokoje_gracz` (`id_gracza`, `id_pokoje`) VALUES('$id_gracza', '$id_pokoje')")
  10.  
  11. or die(mysql_error());
  12. header('Location: '.$_SERVER['REQUEST_URI']);
  13. echo "Dołączyłeś do pokoju";
  14. }
  15.  
  16. if(isset($_POST['odejdz']))
  17. {
  18.  
  19. $id_pokoje = $shout['id'];
  20. $id_gracza = $user['id'];
  21.  
  22.  
  23.  
  24. $db->query("DELETE FROM pokoje_gracz Where id_gracza=$id_gracza and id_pokoje=$id_pokoje")
  25.  
  26. or die(mysql_error());
  27. header('Location: '.$_SERVER['REQUEST_URI']);
  28. echo "Odszedłeś z pokoju";
  29. }
  30. }
  31.  
  32.  
  33. }


Aktualnie całość wygląda tak:

  1. <?
  2. if(user::isLogged()){
  3. $user = user::getData('', '');
  4. if(isset($_POST['wyslij']) && !empty($_POST['nazwa']) && !empty($_POST['ts']))
  5. {
  6.  
  7. $nazwa = $db->real_escape_string(htmlspecialchars($_POST['nazwa']));
  8. $ts = $db->real_escape_string(htmlspecialchars($_POST['ts']));
  9. $imie = $user['steamnick'];
  10.  
  11.  
  12.  
  13. $db->query("INSERT INTO `pokoje` (`nazwa`, `ts`, `imie_wlasciciela`, `id_wlasciciela`) VALUES('$nazwa', '$ts', '$imie', '".$user['id']."')")
  14. or die(mysql_error());
  15. echo "Stworzono pokój";
  16. }
  17.  
  18. echo "<center>
  19. <h2><p>Pokoje</p></h2></center> ";
  20.  
  21. $sprawdzenie = mysqli_fetch_array($db->query("SELECT * FROM pokoje Where id_wlasciciela=".$user['id'].""));
  22.  
  23.  
  24. if($sprawdzenie['id_wlasciciela'] == $user['id'])
  25. {
  26. echo "<center><font color='red'>Masz już pokój, usuń poprzedni by stworzyć nowy</font></center>";
  27. }
  28. else
  29. {
  30. echo '<form action="?" method="POST">
  31. Nazwa Pokoju:
  32. <input maxlength="64" type="text" name="nazwa" id="nazwa"><br />
  33. IP TEAMSPEAK:
  34. <input maxlength="64" type="text" name="ts" id="ts">
  35.  
  36. <button type="submit" name="wyslij" class="stworz"></button>
  37. </form><br />';
  38. }
  39. //Pobieramy dane z bazy
  40. $query = $db->query("SELECT * FROM `pokoje`");
  41. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_pokoju=".$user['id']." and id_dodanego=".$profile['id'].""));
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48. //Pętla do wyświetlenia wszystkich wpisów
  49. while($shout=mysqli_fetch_array($query)) {
  50. echo '<style type="text/css">
  51. .tg {border-collapse:collapse;border-spacing:0;border-color:#bbb;}
  52. .tg td{font-family:Arial, sans-serif;font-size:14px;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#bbb;color:#594F4F;background-color:#E0FFEB;}
  53. .tg th{font-family:Arial, sans-serif;font-size:14px;font-weight:normal;padding:10px 5px;border-style:solid;border-width:1px;overflow:hidden;word-break:normal;border-color:#bbb;color:#493F3F;background-color:#9DE0AD;}
  54. .tg .tg-efv9{font-family:Arial, Helvetica, sans-serif !important;}
  55. </style>
  56. <table class="tg">
  57. <tr>';
  58. $wynik =$db->query("SELECT count(id) as ile FROM pokoje_gracz WHERE id_pokoje=".$shout['id']."");
  59. $wiersz=mysqli_fetch_assoc($wynik);
  60. <th class="tg-031e" colspan="10">Nazwa:'.$shout['nazwa'].' ['.$shout['imie_wlasciciela'].'] Graczy '.$wiersz['ile'].'/5</th>
  61. </tr>
  62. <tr>
  63. <td class="tg-031e" colspan="7">';
  64. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_gracza=".$user['id']." and id_pokoje=".$shout['id'].""));
  65. if(($zab['id_gracza'] == $user['id']) && ($zab['id_pokoje'] == $shout['id']))
  66. {
  67. echo' IP TS:'.$shout['ts'].'';
  68. }
  69. else{
  70. echo ' Dołącz do pokoju by zobaczyć ip TS';
  71. }
  72. $gracze = $db->query("SELECT * FROM pokoje_gracz Where id_pokoje=".$shout['id']."");
  73. echo'</td>
  74. <td class="tg-031e" colspan="3" rowspan="4">Gracze:<br />'; while($gracze_pokoje=mysqli_fetch_array($gracze)) { echo'-<a href="profile.php?id='.$gracze_pokoje['id_gracza'].'">'.$gracze_pokoje['nazwa_gracz'].'</a>';
  75. if($shout['id_wlasciciela'] == $user['id'])
  76. {
  77. echo '<form action="?" method="POST"><button type="submit" name="kick" class="kick"></button></form>';
  78. }
  79. echo'<br />';}
  80. echo'</td>
  81. </tr>
  82. <tr>
  83. <td class="tg-efv9" colspan="7" rowspan="3">';
  84. //chat
  85. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_gracza=".$user['id']." and id_pokoje=".$shout['id'].""));
  86. if(($zab['id_gracza'] == $user['id']) && ($zab['id_pokoje'] == $shout['id']))
  87. {
  88. if(isset($_POST['chat']) && !empty($_POST['tekst']))
  89. {
  90.  
  91.  
  92. $tekst = $db->real_escape_string(htmlspecialchars($_POST['tekst']));
  93. $gracz = $user['steamnick'];
  94.  
  95.  
  96. $db->query("INSERT INTO `pokoje_chat` (`id_gracz`, `id_pokoje`, `tekst`, `nazwa_gracz`) VALUES(".$user['id'].", ".$shout['id']." , '$tekst', '$gracz')")
  97. or die(mysql_error());
  98.  
  99.  
  100. header('Location: '.$_SERVER['REQUEST_URI']);
  101. }
  102. else {
  103. //Pobieramy dane z bazy
  104. $chat = $db->query("SELECT * FROM `pokoje_chat` Where id_pokoje=".$shout['id']." LIMIT 5");
  105.  
  106.  
  107. //Początek struktury tabeli
  108.  
  109.  
  110. //Pętla do wyświetlenia wszystkich wpisów
  111. while($chat1=mysqli_fetch_array($chat)) {
  112. echo '<b>'.$chat1['nazwa_gracz'].':</b> '.$chat1['tekst'].'<br/><br/>';
  113. }
  114.  
  115.  
  116. echo '<form action="?" method="POST">
  117. <textarea rows="4" cols="40" name="tekst" id="tekst">
  118.  
  119. </textarea><br />
  120.  
  121. <button type="submit" name="chat" class="napisz"></button>
  122. </form>';
  123. }
  124. }
  125. else{
  126. echo 'Czat widoczny dla graczy w pokoju';
  127. }
  128.  
  129.  
  130.  
  131. echo'</td>
  132. </tr>
  133.  
  134. <tr>
  135. </tr>
  136. <tr>
  137. </tr>
  138. <tr>
  139. <td class="tg-031e" colspan="10" rowspan="3"><form action="?" method="POST">';
  140. $zab = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_gracza=".$user['id']." and id_pokoje=".$shout['id'].""));
  141.  
  142. if(($zab['id_gracza'] == $user['id']) && ($zab['id_pokoje'] == $shout['id']))
  143. {
  144. echo'<button type="submit" name="odejdz" class="wyjdz"></button>';
  145. $pokoj = mysqli_fetch_array($db->query("SELECT * FROM pokoje Where id_wlasciciela=".$user['id'].""));
  146. if($pokoj['id_wlasciciela'] == $user['id'])
  147. {
  148. echo'<button type="submit" name="usunpokoj" class="usun"></button>';
  149. }
  150. }
  151. else{
  152. if($wiersz['ile'] >= '5'){
  153. echo ' <font color="red">Jest już max osób w pokoju</font>';
  154. }
  155. else{
  156. $spr = mysqli_fetch_array($db->query("SELECT * FROM pokoje_gracz Where id_gracza=".$user['id'].""));
  157. if($spr['id_gracza'] == $user['id'])
  158. {
  159. echo '<font color="red">Dołączyłeś już do jednego z pokoi</font>';
  160. }
  161. else{
  162. echo'<button type="submit" name="dolacz" class="dolacz"></button></form>';
  163. }
  164. }
  165. }
  166. </td>
  167. </tr>
  168.  
  169. </table><br />';
  170. if(isset($_POST['dolacz']))
  171. {
  172.  
  173. $id_pokoje = $shout['id'];
  174. $id_gracza = $user['id'];
  175. $nazwa_gracz = $user['steamnick'];
  176.  
  177.  
  178.  
  179. $db->query("INSERT INTO `pokoje_gracz` (`id_gracza`, `id_pokoje`, `nazwa_gracz`) VALUES('$id_gracza', '$id_pokoje', '$nazwa_gracz')")
  180.  
  181. or die(mysql_error());
  182. header('Location: '.$_SERVER['REQUEST_URI']);
  183. echo "Dołączyłeś do pokoju";
  184. }
  185.  
  186. if(isset($_POST['odejdz']))
  187. {
  188.  
  189. $id_pokoje = $shout['id'];
  190. $id_gracza = $user['id'];
  191.  
  192.  
  193.  
  194. $db->query("DELETE FROM pokoje_gracz Where id_gracza=$id_gracza and id_pokoje=$id_pokoje")
  195.  
  196.  
  197. or die(mysql_error());
  198. header('Location: '.$_SERVER['REQUEST_URI']);
  199. echo "Odszedłeś z pokoju";
  200. }
  201.  
  202.  
  203.  
  204. if(isset($_POST['kick']))
  205. {
  206. $gracze = $db->query("SELECT * FROM pokoje_gracz Where id_pokoje=".$shout['id']."");
  207. $gracze1=mysqli_fetch_array($gracze);
  208. $id_pokoje = $shout['id'];
  209. $id_gracza = $gracze1['id_gracza'];
  210.  
  211.  
  212.  
  213. $db->query("DELETE FROM pokoje_gracz Where id_gracza=$id_gracza and id_pokoje=$id_pokoje")
  214. or die(mysql_error());
  215.  
  216.  
  217.  
  218. header('Location: '.$_SERVER['REQUEST_URI']);
  219. }
  220.  
  221. if(isset($_POST['usunpokoj']))
  222. {
  223.  
  224. $id_pokoje = $shout['id'];
  225. $id_gracza = $user['id'];
  226.  
  227.  
  228.  
  229. $zapytanie = "DELETE FROM pokoje Where id=$id_pokoje and id_wlasciciela=$id_gracza";
  230. $idzapytania = $db->query($zapytanie);
  231. $zapytanie1 = "DELETE FROM pokoje_gracz Where id_pokoje=$id_pokoje";
  232. $idzapytania1 = $db->query($zapytanie1);
  233. $zapytanie2 = "DELETE FROM pokoje_chat Where id_pokoje=$id_pokoje";
  234. $idzapytania2 = $db->query($zapytanie2);
  235.  
  236. header('Location: '.$_SERVER['REQUEST_URI']);
  237. echo "Usunąłeś pokój";
  238. }
  239. }
  240.  
  241.  
  242. }
  243. ?>
Neymar11
Uporządkuj kod... Pętla powinna być przy pokazywaniu pokoi profili graczy nie przy insert! Jeżeli będziesz miał więcej graczy to baza w momencie z 1mb ci się zmieni w 111mb tongue.gif
GoodStuff
Już wszystko udało mi się zrobić smile.gif Można zamknąć
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.