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:
<?
include("polacz.php");
$akcja = $_GET['akcja'];
echo "<meta http-equiv="Content
-type
" content="text
/html
; charset
=iso
-8859-2" />"; echo "<title>Jeziorak-Iława.pl :: Dodawanie tabeli do bazy</title>"; echo "<LINK REL="stylesheet
" HREF="style
.css
" TYPE="text
/css
"></head>"; echo "<a href="{$_SERVER['PHP_SELF']}">Dodaj nową tabelę</a><br />";
##################################################################
# Formularz do wygenerowania pól
##################################################################
if ($akcja == "" | !isset($akcja)) {
?>
<br />Ile drużyn będzie liczyła tabela?<br />
<form name="dodawanie" method="post" action="
<? echo $_SERVER['PHP_SELF']; ?>?akcja=gen">
<table width="500" border="1">
<tr>
<td><b>Ilość drużyn w tabeli:</b></td>
<td><input type="text" name="ile"></td>
<td><input type="submit" name="submit" value="Generuj"></td>
</tr>
</table>
</form>
<?
}
##################################################################
# Generowanie wybranej ilości pól
##################################################################
if ($akcja == 'gen') {
if ( isset($_POST['submit']) ) {
// ROZPOOCZCIE FORMA POZA PTLĄ
?>
<form name="tabela" method="post" action="
<?php echo $_SERVER['PHP_SELF']; ?>?akcja=dodaj_tabele">
<table>
<tr>
<td><b>L.p.</b></td>
<td><b>Drużyna</b></td>
<td><b>M</b></td>
<td><b>P</b></td>
<td><b>Z</b></td>
<td><b>R</b></td>
<td><b>P</b></td>
<td><b>+</b></td>
<td><b>-</b></td>
</tr>
<?
for ($x = 1; $x <= $_POST['ile']; $x++)
{
// NAZWA POLA JAKO TABLICA xxx[]
$pokaz_kluby = mysql_query("SELECT id_kluby, nazwa_klubu FROM DB_kluby ORDER BY nazwa_klubu ASC", $link) or
die(mysql_error()); echo "<select name="id_kluby
[]">"; {
$id_kluby = $klub[id_kluby];
$nazwa_klubu = $klub[nazwa_klubu];
echo "<option value="$id_kluby">$nazwa_klubu</option>n"; }
echo "<td><input type='text' size='3' name='mecze[]'></td>"; echo "<td><input type='text' size='3' name='punkty[]'></td>"; echo "<td><input type='text' size='3' name='z[]'></td>"; echo "<td><input type='text' size='3' name='r[]'></td>"; echo "<td><input type='text' size='3' name='p[]'></td>"; echo "<td><input type='text' size='3' name='br_plus[]'></td>"; echo "<td><input type='text' size='3' name='br_minus[]'></td>"; $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()); echo "<select name="id_lista_sezonow
[]">"; {
$id_sezonu = $lista_sezonow[id_lista_sezonow];
$sezon = $lista_sezonow[nazwa_sezonu];
$liga = $lista_sezonow[nazwa_ligi];
echo "<option value="$id_sezonu">$sezon - $liga</option>n"; }
}
}
echo "<tr><td colspan="9"><input type="submit
" name="submit
" value="Dodaj tabele
"></td></tr>"; }
##################################################################
# Dodawanie wybranej ilości danych
##################################################################
if ($akcja == 'dodaj_tabele') {
$id_kluby=$_POST['id_kluby'];
$mecze=$_POST['mecze'];
$punkty=$_POST['punkty'];
$z=$_POST['z'];
$r=$_POST['r'];
$p=$_POST['p'];
$br_plus=$_POST['br_plus'];
$br_minus=$_POST['br_minus'];
$id_lista_sezonow=$_POST['id_lista_sezonow'];
// DODANIE DANYCH Z TABLIC
foreach($id_kluby as $k)
foreach($mecze as $m)
foreach($punkty as $p)
foreach($z as $zw)
foreach($r as $rm)
foreach($p as $po)
foreach($br_plus as $brp)
foreach($br_minus as $brm)
foreach($id_lista_sezonow as $idls)
{
$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')"); if (!$zapytanie)
{
echo "<P>Nie można dodać tabeli!</P>"; }
else
{
print "<strong>Tabela została dodana!<br>"; }
}
}
}
?>
Teraz gdy mam wygenerowane jedno pole INPUT z tablicą[] to robie tak i jest okej:
<?
##################################################################
# Dodawanie wybranej ilości danych
##################################################################
if ($akcja == 'dodaj_tabele')
{
$id_kluby=$_POST['id_kluby'];
// DODANIE DANYCH Z TABLIC
foreach($id_kluby as $k)
{
{
$zapytanie = mysql_query("INSERT INTO DB_tabele (id_kluby) VALUES('$k')"); if (!$zapytanie)
{
echo "<P>Nie można dodać tabeli!</P>"; }
else
{
print "<strong>Tabela została dodana!<br>"; }
}
}
}
?>
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:
<?
$id_kluby=$_POST['id_kluby'];
$mecze=$_POST['mecze'];
$punkty=$_POST['punkty'];
$z=$_POST['z'];
$r=$_POST['r'];
$p=$_POST['p'];
$br_plus=$_POST['br_plus'];
$br_minus=$_POST['br_minus'];
$id_lista_sezonow=$_POST['id_lista_sezonow'];
// DODANIE DANYCH Z TABLIC
foreach($id_kluby as $k)
foreach($mecze as $m)
foreach($punkty as $p)
foreach($z as $zw)
foreach($r as $rm)
foreach($p as $po)
foreach($br_plus as $brp)
foreach($br_minus as $brm)
foreach($id_lista_sezonow as $idls)
{
$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')"); ?>
Jak to rozwiązać?
[edit] - poprawiłem nazwę tabeli bo była niepoprawna.
Ten post edytował kpjeziorak 30.12.2005, 12:57:48