Reiven
6.09.2009, 11:30:18
Witam mam problem.. nie mam pojęcia jak zrobić żeby skrypt dodał mi kilka rekordów na raz...
mam taki o to skrypt:
function dodaj_roz_k()
{
$zaloguj_admin = $_SESSION["login2_admin"];
if (!$_SESSION["haslo2_admin"])
{
echo "<h1><img src='img/001_58.png'> BŁĄD</h1> Nie jesteś administratorem!!!"; echo ' <br><br><a href="java script:history.back();">Cofnij</a>'; }else
{
$idp = $_GET['id'];
$page = $_GET['page'];
echo ' <br><form name="zaloguj" action="admin.php?adm=dodaj_roz_k_ile" method="post" style="margin: 0;">'; echo 'Ile rozmiarów na raz?: <select name="ile">'; for( $x = 1; $x <= 20; $x++ ) {
echo $x." <option>$x</option> <br />";
}
echo '<input type="hidden" name="idp" value="'.$idp.'"/>'; echo '<input type="hidden" name="page" value="'.$page.'"/>'; #echo'<input type=hidden name="id_z" value="'.$id.'" size=13>';
echo '<INPUT TYPE="SUBMIT" VALUE="Ok">';
}}
function dodaj_roz_k_ile()
{
echo '<br><table><tr><td><form action="admin.php?adm=dodaj_roz_k_ok" method="POST"></td><td></td></tr>';
for( $x = 1; $x <= $ile; $x++ ) {
echo '<td>Rozmiar ('.$x.'): </td> <td><input type="text" name="roz"/></td></tr>'; }
<td></td> <td><input type="hidden" name="idp" value="'.$idp.'"/></td></tr>
<td></td> <td><input type="hidden" name="page" value="'.$page.'"/></td></tr>
<td></td> <td><input type="hidden" name="ile" value="'.$ile.'"/></td></tr>
<td><td>
<input type="submit" value="Dodaj rozmiar" /></td></tr>
</form></table>
<br>
';
}
function dodaj_roz_k_ok()
{
$zaloguj_admin = $_SESSION["login2_admin"];
if (!$_SESSION["haslo2_admin"])
{
echo "<h1><img src='img/001_58.png'> BŁĄD</h1> Nie jesteś administratorem!!!"; echo ' <br><br><a href="java script:history.back();">Cofnij</a>'; }else
{
$query2 = "INSERT INTO rozmiar VALUES ('', '$roz', '$idp')";
#header("Location: admin.php?adm=kolekcja_d_p");
header("Location: admin.php?adm=kolekcja_d_p&page=$page"); }
}
nugae
6.09.2009, 12:01:04
trochę chaotyczny ten kod...
Kod
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
?
http://dev.mysql.com/doc/refman/5.1/en/insert.html
Reiven
6.09.2009, 12:26:30
hmm no dobra, tylko że jak np wybiorę za pomocą formularza 20pól to muszę zrobić
INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9)...(18,19,20);
a co jak wybiorę np 3 pola? to mi doda też 17pustych?
Cezar708
6.09.2009, 12:33:28
~Reiven pamiętaj, że to Ty budujesz zapytanie, więc sam możesz stwierdzić co ma być wrzucane a co nie,
na przykład taki poniżej pseudo-kod:
$sql = "INSERT INTO tbl_name (a,b,c) VALUES ";
$hasValues = false;
for( $wszystkiePola as $pole ) {
if($hasValues) {
$sql .= ", ";
}
$sql .= "($pole, $pole, $pole)";
$hasValues = true;
}
}
if($hasValues) {
exec_query($sql);
}
Pozdrawiam
Reiven
6.09.2009, 12:46:43
przy tym:
for($wszystkiePola as $pole) {
wywala bład:
Parse error: syntax error, unexpected T_AS, expecting ';' in D:\Server\httpd-users\eltom\module\administracja.php on line 3975
zaczynam się już gubić w tym co robie :/
Cezar708
6.09.2009, 12:58:18
oj to był
pseudo-kod przedstawia tylko ideę, teraz musisz do swoich potrzeb do dostosować

pozdrawiam
A od kiedy pętla FOR domyślnie przyjmuje jako parametr tablicę? Pomyliłeś to z FOREACH
Cezar708
6.09.2009, 13:02:38
~thek przeczytaj co napisałem w poście 3 minuty temu... może będziesz miał odpowiedź...
Reiven
6.09.2009, 14:03:00
Fatal error: Call to undefined function exec_query()
wszystko byłoby ok gdyby nie to że generuje mi to takie zapytanie:
INSERT INTO kolor (id,kolor,czyj) VALUES ('', niebieski, niebieski), ('',88, 88)
zamiast:
INSERT INTO kolor (id,kolor,czyj) VALUES ('', niebieski, 88), ('', zielony, 88)
a po za tym jak dam np 9pól to daje takie zapytanie:
INSERT INTO kolor (id,kolor,czyj) VALUES ('', niebieski, niebieski), ('',88, 88)
przy czym zamieszcza tam ostatnie pole..