Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MySQL i kilka tablic
Forum PHP.pl > Forum > Bazy danych > MySQL
kpjeziorak
Witam, napisałem sobie bardzo prowizoryczny (ale dla mnie idealny) skrypt tabeli piłkarskiej. Otóż mam tabelę DB_tabele [id_tabele, id_kluby, mecze, punkty, z, r, p, br_plus, br_minus, id_lista_sezonow], gdzie id_kluby to id poszczególnych klubów z innej tabeli, zaś id_lista_sezonow to id sezonu do ktorego dany rekord sie odnosi. Oto jego kod:
  1. <? 
  2.     include("polacz.php"); 
  3.     $akcja = $_GET['akcja']; 
  4.     echo "<html><head>"; 
  5.     echo "<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />";
  6.     echo "<title>Jeziorak-Iława.pl :: Dodawanie tabeli do bazy</title>";
  7.     echo "<LINK REL="stylesheet" HREF="style.css" TYPE="text/css"></head>"; 
  8.     echo "<a href="{$_SERVER['PHP_SELF']}">Dodaj nową tabelę</a><br />"; 
  9.  
  10.     ##################################################################
  11.     # Formularz do wygenerowania pól 
  12.     ################################################################## 
  13.     if ($akcja == "" | !isset($akcja)) 
  14.     { 
  15. ?>
  16.     <br />Ile drużyn będzie liczyła tabela?<br />
  17.     <form name="dodawanie" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>?akcja=gen">
  18.     <table width="500" border="1">
  19.     <tr>
  20.     <td><b>Ilość drużyn w tabeli:</b></td>
  21.     <td><input type="text" name="ile"></td>
  22.      <td><input type="submit" name="submit" value="Generuj"></td>
  23.     </tr>
  24.     </table>
  25.     </form>
  26. <?
  27.     } 
  28.  
  29.     ################################################################## 
  30.     # Generowanie wybranej ilości pól 
  31.     ################################################################## 
  32.     if ($akcja == 'gen') { 
  33.     if ( isset($_POST['submit']) ) 
  34.     { 
  35.     // ROZPOOCZCIE FORMA POZA PTLĄ
  36. ?>
  37.     <form name="tabela" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>?akcja=dodaj_tabele">
  38.     <table>
  39.         <tr>
  40.             <td><b>L.p.</b></td>
  41.             <td><b>Drużyna</b></td>
  42.             <td><b>M</b></td>
  43.             <td><b>P</b></td>
  44.             <td><b>Z</b></td>
  45.             <td><b>R</b></td>
  46.             <td><b>P</b></td>
  47.             <td><b>+</b></td>
  48.             <td><b>-</b></td>
  49.         </tr>
  50. <?
  51.     for ($x = 1; $x <= $_POST['ile']; $x++) 
  52.     { 
  53.     // NAZWA POLA JAKO TABLICA xxx[] 
  54.          echo "<tr>";
  55.              echo "<td>$x.</td>";
  56.              echo "<td>";
  57.                          $pokaz_kluby = mysql_query("SELECT id_kluby, nazwa_klubu FROM DB_kluby ORDER BY nazwa_klubu ASC", $link) or die(mysql_error());
  58.                            echo "<select name="id_kluby[]">";
  59.                          while($klub = mysql_fetch_array($pokaz_kluby))
  60.                          {
  61.                          $id_kluby = $klub[id_kluby];
  62.                          $nazwa_klubu = $klub[nazwa_klubu];
  63.                          echo "<option value="$id_kluby">$nazwa_klubu</option>n";
  64.                            }
  65.                            echo "</td>";
  66.             echo "<td><input type='text' size='3' name='mecze[]'></td>";
  67.             echo "<td><input type='text' size='3' name='punkty[]'></td>";
  68.             echo "<td><input type='text' size='3' name='z[]'></td>";
  69.             echo "<td><input type='text' size='3' name='r[]'></td>";
  70.             echo "<td><input type='text' size='3' name='p[]'></td>";
  71.             echo "<td><input type='text' size='3' name='br_plus[]'></td>";
  72.             echo "<td><input type='text' size='3' name='br_minus[]'></td>";
  73.             echo "<td>";
  74.                     $pokaz_liste_sezonow = mysql_query("SELECT nl.nazwa_ligi, ns.nazwa_sezonu, ls.id_lista_sezonow FROM DB_nazwa_li
    gi AS nl, DB_nazwa_sezonu AS ns, DB_lista_sezonow AS ls WHERE nl.id_nazwa_ligi = 
    ls.id_nazwa_ligi AND ns.id_nazwa_sezonu = ls.id_nazwa_sezonu ORDER BY ns.nazwa_se
    zonu ASC"
    , $link) or die(mysql_error());
  75.                     echo "<select name="id_lista_sezonow[]">";
  76.                     while($lista_sezonow = mysql_fetch_array($pokaz_liste_sezonow))
  77.                     {
  78.                     $id_sezonu = $lista_sezonow[id_lista_sezonow];
  79.                     $sezon = $lista_sezonow[nazwa_sezonu];
  80.                     $liga = $lista_sezonow[nazwa_ligi];
  81.                     
  82.                     echo "<option value="$id_sezonu">$sezon - $liga</option>n";
  83.                     }
  84.                     echo "</td>";
  85.          echo "</tr>";
  86.     } 
  87.     } 
  88.     echo "<tr><td colspan="9"><input type="submit" name="submit" value="Dodaj tabele"></td></tr>"; 
  89.     }
  90.     echo "</table></form>"; 
  91.  
  92.     ##################################################################
  93.     # Dodawanie wybranej ilości danych 
  94.     ################################################################## 
  95.     if ($akcja == 'dodaj_tabele') {
  96.     
  97.     $id_kluby=$_POST['id_kluby'];
  98.     $mecze=$_POST['mecze'];
  99.     $punkty=$_POST['punkty'];
  100.     $z=$_POST['z'];
  101.     $r=$_POST['r'];
  102.     $p=$_POST['p'];
  103.     $br_plus=$_POST['br_plus'];
  104.     $br_minus=$_POST['br_minus'];
  105.     $id_lista_sezonow=$_POST['id_lista_sezonow'];
  106.     
  107.     // DODANIE DANYCH Z TABLIC 
  108.     foreach($id_kluby as $k) 
  109.     foreach($mecze as $m) 
  110.     foreach($punkty as $p) 
  111.     foreach($z as $zw) 
  112.     foreach($r as $rm) 
  113.     foreach($p as $po) 
  114.     foreach($br_plus as $brp) 
  115.     foreach($br_minus as $brm) 
  116.     foreach($id_lista_sezonow as $idls)
  117.     { 
  118.         if(!empty($k)) { 
  119.             $zapytanie = mysql_query("INSERT INTO DB_tabele (id_kluby, mecze, punkty, z, r, p, br_plus, br_minus, id_lista_sezonow) VALUES('$k', '$m', '$p', '$zw', '$rm', '$po', '$brp', '$brm', '$idls')"); 
  120.             if (!$zapytanie) 
  121.                 { 
  122.                 echo "<P>Nie można dodać tabeli!</P>"; 
  123.                 } 
  124.             else 
  125.                 { 
  126.                 print "<strong>Tabela została dodana!<br>"; 
  127.                 } 
  128.             } 
  129.         } 
  130.         mysql_close($link); 
  131.         } 
  132.     echo "</html>";
  133. ?>

Teraz gdy mam wygenerowane jedno pole INPUT z tablicą[] to robie tak i jest okej:
  1. <?
  2.     ##################################################################
  3.     # Dodawanie wybranej ilości danych 
  4.     ################################################################## 
  5.     if ($akcja == 'dodaj_tabele') 
  6.         {
  7.         $id_kluby=$_POST['id_kluby'];
  8.     
  9.         // DODANIE DANYCH Z TABLIC 
  10.         foreach($id_kluby as $k) 
  11.             { 
  12.             if(!empty($k)) 
  13.                 { 
  14.             $zapytanie = mysql_query("INSERT INTO DB_tabele (id_kluby) VALUES('$k')"); 
  15.             if (!$zapytanie) 
  16.                 { 
  17.                 echo "<P>Nie można dodać tabeli!</P>"; 
  18.                 } 
  19.                  else 
  20.                 { 
  21.                 print "<strong>Tabela została dodana!<br>"; 
  22.                 } 
  23.             } 
  24.             }
  25.       }
  26. ?>

Ale gdy (jak widać w kodzie 1.) mam kilka tablic, nie wiem jak je wrzucić do zapytania SQL. Wiem, że taka postać jest jaknajbardziej niepoprawna:
  1. <?
  2. $id_kluby=$_POST['id_kluby'];
  3.     $mecze=$_POST['mecze'];
  4.     $punkty=$_POST['punkty'];
  5.     $z=$_POST['z'];
  6.     $r=$_POST['r'];
  7.     $p=$_POST['p'];
  8.     $br_plus=$_POST['br_plus'];
  9.     $br_minus=$_POST['br_minus'];
  10.     $id_lista_sezonow=$_POST['id_lista_sezonow'];
  11.     
  12.     // DODANIE DANYCH Z TABLIC 
  13.     foreach($id_kluby as $k) 
  14.     foreach($mecze as $m) 
  15.     foreach($punkty as $p) 
  16.     foreach($z as $zw) 
  17.     foreach($r as $rm) 
  18.     foreach($p as $po) 
  19.     foreach($br_plus as $brp) 
  20.     foreach($br_minus as $brm) 
  21.     foreach($id_lista_sezonow as $idls)
  22.     { 
  23.         if(!empty($k)) { 
  24.             $zapytanie = mysql_query("INSERT INTO DB_tabele (id_kluby, mecze, punkty, z, r, p, br_plus, br_minus, id_lista_sezonow) VALUES('$k', '$m', '$p', '$zw', '$rm', '$po', '$brp', '$brm', '$idls')");
  25. ?>


Jak to rozwiązać?

[edit] - poprawiłem nazwę tabeli bo była niepoprawna.
nospor
skoro sam w tytule piszesz ze to mysql to czemu sam od razu tego nie wrzucisz na wlasciwe forum? Przenosze
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.