Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php+mysql] update bazy, problem, pobieranie i aktualizacja danych
kony
post 27.09.2007, 21:18:01
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 24.03.2004
Skąd: Warszawa

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


Sprawa dosyć prostawa chyba:
Pobieram dane z bazy w pętli while

  1. <?php
  2. echo <<<KONIEC
  3. <form action="index.php?p=tabela" method="post">
  4. <input type="hidden" name="opcja" value="wynik" />
  5. KONIEC;
  6.  if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  7. if (mysql_select_db($mysql_baza)) {
  8. $wynik = mysql_query("SELECT * FROM $mysql_tabela WHERE dzien='$data'");
  9. while($dane = mysql_fetch_object($wynik)){
  10. $poj = mysql_fetch_object(mysql_query("SELECT * FROM $mysql_tabela WHERE dzien='$data' AND login='bla'"));
  11.  
  12. // tutaj if-y przeliczaja mi dane pobrane z bazy do inputów
  13.  
  14. echo <<<KONIEC
  15. <br>
  16. <table border="0" width="100%" cellspacing="1" cellpadding="3">
  17. <tr bgcolor="#000000">
  18. <td width="100%" align="center" colspan="11"><b>$dane->login</b><input type="hidden" name="loginek" value="$dane->login"></td>
  19. </tr>
  20. <tr bgcolor="#000000">
  21. <td width="5%" align="center"><b>dz.</b></td>
  22. <td width="10%" align="center"><b>kraj</b></td>
  23. <td width="50%" align="center"><b>mecz</b></td>
  24. <td width="10%" align="center"><b>godz.</b></td>
  25. <td width="9%" align="center"><font size="1"><b>twój wynik</b></font></td>
  26. <td width="9%" align="center"><font size="1"><b>wynik meczu</b></font></td>
  27. <td width="7%" align="center"><font size="1"><b>pkt</b></font></td>
  28. </tr>
  29. <tr bgcolor="#000000">
  30. <td width="5%" align="center">$dane->dzien<input type="hidden" name="dzien" value="$dane->dzien"></td>
  31. <td width="10%" align="center" /><img src="$dane->k1"></td>
  32. <td width="50%" align="center" />$dane->m1</td>
  33. <td width="10%" align="center" />$dane->g1</td>
  34. <td width="9%" align="center" />$dane->w1 : $dane->w2</td>
  35. <td width="9%" align="center" />$poj->w1 : $poj->w2</td>
  36. <td width="7%" align="center" />$b1</td>
  37. </tr>
  38. <tr bgcolor="#000000">
  39. <td width="5%" align="center">$dane->dzien</td>
  40. <td width="10%" align="center" /><img src="$dane->k2"></td>
  41. <td width="50%" align="center" />$dane->m2</td>
  42. <td width="10%" align="center" />$dane->g2</td>
  43. <td width="9%" align="center" />$dane->w3 : $dane->w4</td>
  44. <td width="9%" align="center" />$poj->w3 : $poj->w4</td>
  45. <td width="7%" align="center" />$b2</td>
  46. </tr>
  47. <tr bgcolor="#000000">
  48. <td width="5%" align="center">$dane->dzien</td>
  49. <td width="10%" align="center" /><img src="$dane->k3"></td>
  50. <td width="50%" align="center" />$dane->m3</td>
  51. <td width="10%" align="center" />$dane->g3</td>
  52. <td width="9%" align="center" />$dane->w5 : $dane->w6</td>
  53. <td width="9%" align="center" />$poj->w5 : $poj->w6</td>
  54. <td width="7%" align="center" />$b3</td>
  55. </tr>
  56. <tr bgcolor="#000000">
  57. <td width="5%" align="center">$dane->dzien</td>
  58. <td width="10%" align="center" /><img src="$dane->k4"></td>
  59. <td width="50%" align="center" />$dane->m4</td>
  60. <td width="10%" align="center" />$dane->g4</td>
  61. <td width="9%" align="center" />$dane->w7 : $dane->w8</td>
  62. <td width="9%" align="center" />$poj->w7 : $poj->w8</td>
  63. <td width="7%" align="center" />$b4</td>
  64. </tr>
  65. <tr bgcolor="#000000">
  66. <td width="5%" align="center">$dane->dzien</td>
  67. <td width="10%" align="center" /><img src="$dane->k5"></td>
  68. <td width="50%" align="center" />$dane->m5</td>
  69. <td width="10%" align="center" />$dane->g5</td>
  70. <td width="9%" align="center" />$dane->w9 : $dane->w10</td>
  71. <td width="9%" align="center" />$poj->w9 : $poj->w10</td>
  72. <td width="7%" align="center" />$b5</td>
  73. </tr>
  74. <tr bgcolor="#000000">
  75. <td width="5%" align="center">$dane->dzien</td>
  76. <td width="10%" align="center" /><img src="$dane->k6"></td>
  77. <td width="50%" align="center" />$dane->m6</td>
  78. <td width="10%" align="center" />$dane->g6</td>
  79. <td width="9%" align="center" />$dane->w11 : $dane->w12</td>
  80. <td width="9%" align="center" />$poj->w11 : $poj->w12</td>
  81. <td width="7%" align="center" />$b6</td>
  82. </tr>
  83. <tr bgcolor="#000000">
  84. <td width="5%" align="center">$dane->dzien</td>
  85. <td width="10%" align="center" /><img src="$dane->k7"></td>
  86. <td width="50%" align="center" />$dane->m7</td>
  87. <td width="10%" align="center" />$dane->g7</td>
  88. <td width="9%" align="center" />$dane->w13 : $dane->w14</td>
  89. <td width="9%" align="center" />$poj->w13 : $poj->w14</td>
  90. <td width="7%" align="center" />$b7</td
  91. </tr>
  92. <tr bgcolor="#000000">
  93. <td width="5%" align="center">$dane->dzien</td>
  94. <td width="10%" align="center" /><img src="$dane->k8"></td>
  95. <td width="50%" align="center" />$dane->m8</td>
  96. <td width="10%" align="center" />$dane->g8</td>
  97. <td width="9%" align="center" />$dane->w15 : $dane->w16</td>
  98. <td width="9%" align="center" />$poj->w15 : $poj->w16</td>
  99. <td width="7%" align="center" />$b8</td
  100. </tr>
  101. <tr bgcolor="#000000">
  102. <td width="100%" align="center" colspan="11">
  103. [tr: <b>$f</b>]-<input type="hidden" name="v5" value="$f" size="2">
  104. [tr1: <b>$g</b>]-<input type="hidden" name="v1" value="$g" size="2">
  105. [nt: <b>$h</b>]-<input type="hidden" name="v0" value="$h" size="2">
  106. [pkt: <b>$pkt1</b>]-<input type="hidden" name="pkt" value="$pkt1" size="2"></td>
  107. </tr>
  108. </table>
  109. KONIEC;
  110. }
  111. } else echo "Nie można połączyć się z bazą";
  112. mysql_close($baza);
  113. } else echo "Nie można połączyć się z serwerem MySQL";
  114. }
  115. echo <<<KONIEC
  116. <input type="submit" value=" DODAJ!" />
  117. </form>
  118. KONIEC;
  119. ?>


Wszystko pięknie się pobiera i wyświetla.
Teraz po naciśnięciu DODAJ chciałbym aby dane z tej pętli uaktualniły mi opowiednie pola w bazie.
I do tego używam następującego kodu:

  1. <?php
  2. if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) {
  3. if (mysql_select_db($mysql_baza)) {
  4. $wynik = mysql_query("UPDATE $mysql_tabela SET v5='$v5', v1='$v1', v0='$v0', pkt='$pkt' WHERE dzien='$data' and login='$loginek'");
  5.  } else echo "Nie można połączyć się z bazą";
  6. mysql_close($baza);
  7. } else echo "Nie można połączyć się z serwerem MySQL";
  8. if ($wynik) {
  9. echo "Wyniki dodane";
  10. }else{
  11. echo "<font color=\"red\">Wyniki nie dodane</font>";
  12. }
  13. ?>


No i baza się updatuje tyle tylko, że pobieram z bazy powiedzmy 20 (ale za jakiś czas może być ich i 500+) pozycji (powiela je pętla while), a update nastepuje tylko w jednej (z tego co zauważyłem ostatniej pobranej pozycji), a chciałbym naraz updatować wszystkie....

Wyczytałem coś o pętli foreach ale ni kuta nie wiem jak ją tutaj zastosować.
Jest jakiś sposób aby skrypt wykonał w tym przypadku update dla wszystkich pozycji w tabeli na raz?
Problemu większego by nie było gdyby nie to, że pola do aktualizacji są różne dla każdego loginu... tzn (żeby dokładnie zobrazować) - dla każdego pola loginek pola v5, v1, v0, pkt mogą mieć różną wartość.
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.08.2025 - 00:49