Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodani kilku wierszy do tabeli naraz
Forum PHP.pl > Forum > Bazy danych > MySQL
usiek00
Chcę dodać kilka wierszy do tabeli jednoczesnie i mam pewien problem ponieważ wiersze jako tako dodaje ale dodaje dwa razy ten sam wiersz questionmark.gif

Ktos wie o co chodzi questionmark.gif

  1. <?php
  2.  
  3. @ $db = mysql_pconnect(&#092;"localhost\", \"root\", \"krasnal\");
  4.  
  5. if (!$db)
  6. {
  7.  echo &#092;"Błąd: : Połączenie z bazą danych nie powiodło się.\";
  8.  exit;
  9. }
  10.  
  11. mysql_select_db(&#092;"sezon\");
  12.  
  13. $zapytanie = &#092;"insert into terminarz04 values ('\".$nr_kolejki.\"', '\".$gospodarz.\"', '\".$br_gosp.\"', '\".$br_gosc.\"', '\".$goscie.\"', '\".$data.\"') \";
  14. $wynik = mysql_query($zapytanie);
  15. if ($wynik)
  16. echo mysql_affected_rows().&#092;" Pierwszy wiersz zostal dopisany.\"; 
  17. else
  18. echo &#092;"Blad z zapisem pierwszego wiersza !!!\";
  19.  
  20.  
  21. insert into terminarz04 values ('\".$nr_kolejki2.\"', '\".$gospodarz2.\"', '\".$br_gosp2.\"', '\".$br_gosc2.\"', '\".$goscie2.\"', '\".$data2.\"'); 
  22. $zapytanie2 = &#092;"insert into terminarz04 values ('\".$nr_kolejki2.\"', '\".$gospodarz2.\"', '\".$br_gosp2.\"', '\".$br_gosc2.\"', '\".$goscie2.\"', '\".$data2.\"')\";  
  23. $wynik2 = mysql_query($zapytanie2);
  24. if ($wynik2)
  25. echo mysql_affected_rows().&#092;"<br> Drugi wiersz zostal dopisany.\"; 
  26. else
  27. echo &#092;"Blad z zapisem drugiego wiersza !!!\";
  28. ?>



zmienne takie jak nr_kolejki, i nr_kolejki2 sa pobierane z formularza przez <form action="nazwa_pliku.php" method="post">
crash
Było już wiele razy... Używaj tablicy _POST:
  1. <?php
  2. $nr_kolejki = $_POST['nr_kolejki'];
  3. ?>

A poza tym Twój kod po: echo "Blad z zapisem pierwszego wiersza exclamation.gif!"; jako¶ dziwnie wygl±da...
Majdan
Wiersz 22 mi się nie podoba.

A może zmienne $nr_kolejki i $nr_kolejki2, $gospodarz i $gospodarz2 s± takie same?

Co Ci wy¶wietla?
sf
Jest taka metoda _post ? Nie słyszałem, ale może jest...

  1. <?php
  2. // czy takie zapisy nie sa bardziej przejrzyste?
  3. // to co ty masz to mozna nazwac, za przeproszeniem, burdelem tongue.gif
  4. $sql = sprintf(&#092;"INSERT INTO tabela(pole1, pole2, pole3) VALUES('%s', '%s', '%d')\", $aaa, $bbb, $liczba);
  5.  
  6. $sql = sprintf(&#092;"INSERT INTO tabela SET pole1='%s', pole2='%s', pole3=%d\", $aaa, $bbb, $liczba);
  7.  
  8. $sql = &#092;"INSERT INTO tabela(pole1, pole2, pole3) VALUES('$aaa', '$bbb', '$liczba')\";
  9.  
  10. ?>


Nie potrzebujesz robic $zapytanie i $zapytanie2, wystarczy jedna nazwa, poprzednia poprostu bedzie nadpisywana przy kolejnym zapisie do tej zmiennej.

Jak znalezc blad? Np. tak :
  1. <?php
  2. echo $zapytanie.'<br />';
  3. // ...
  4. echo $zapytanie; // echo $zapytanie2; jak nadal zostawisz tak jak jest
  5.  
  6. ?>


Zobacz jak wyglada tresc tych zapytan, przy okazjli wydaje mi sie, ze lepiej sprawdzac czy wystapil blad przez mysql_error niz tak jak ty robisz.
crash
Cytat(usiek00)
method="_post"

method="post"
usiek00
Znalazlem blad. Byla to tak glupia sprawa ze dajcie na luz smile.gif.

  1. <?php
  2.  
  3. $nr_kolejki = doubleval($nr_kolejki);
  4. $gospodarz = addslashes($gospodarz);
  5. $br_gosp = doubleval($br_gosp);
  6. $br_gosc = doubleval($br_gosc);
  7. $goscie = addslashes($goscie);
  8.  
  9. $nr_kolejki2 = doubleval($nr_kolejki);
  10. $gospodarz2 = addslashes($gospodarz);
  11. $br_gosp2 = doubleval($br_gosp);
  12. $br_gosc2 = doubleval($br_gosc);
  13. $goscie2 = addslashes($goscie);
  14. ?>


jak ktos zobaczy to sie zorientuje ze do nr_kolejki2 przypisywalem nr_kolejki dlaetego bylo to cale zamieszanie .
Synaps
Można to zrobić szybciej i optymalniej:
  1. <?php
  2.  
  3. .
  4. .
  5. .
  6. .
  7. $query = &#092;"INSERT INTO terminarz04 VALUES ('\".$nr_kolejki.\"', '\".$gospodarz.\"', '\".$br_gosp.\"', '\".$br_gosc.\"', '\".$goscie.\"', '\".$data.\"'),('\".$nr_kolejki2.\"', '\".$gospodarz2.\"', '\".$br_gosp2.\"', '\".$br_gosc2.\"', '\".$goscie2.\"', '\".$data2.\"')\";
  8.  
  9. if ( mysql_query($query) )
  10.  echo &#092;"Dodano wyniki do tabeli \";
  11. else
  12.  echo &#092;"Dodawanie wyników nie powiodło się!\";
  13. .
  14. .
  15. .
  16.  
  17. ?>
Ziel
ja dopisywalem przeszło 20 wierszy do różnych tabeli i po prostu wypisalem je po kolei

mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......

itd.

i działało bez problemu
Synaps
Cytat(Ziel @ 2005-01-26 23:12:12)
ja dopisywalem przeszło 20 wierszy do różnych tabeli i po prostu wypisalem je po kolei

mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......
mysl_query ("INSERT INTO ......

itd.

i działało bez problemu

Ale po co skoro MySQL udostepnia taka skladnie :

  1. INSERT
  2. INTO <span style="font-style: italic;">tabela
  3. ( pole1, pole2, pole3) VALUES ( a1, a2, a3 ),( b1, b2, b3), .....
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.