Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL] masowe dodawanie rekordów
!*!
post
Post #1





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Chce przetestować baze i dodać za jednym zamachem np. 10 000 rekordów, tylko nie wiem zabardzo jak. Dodanie pojedynczych rekordów byłoby czasochłonne... Może mnie ktoś nakierować w temacie takiego masowego dodawania? Odświerzanie na sesji?
Go to the top of the page
+Quote Post
batman
post
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




No bez przesady. for, while i inne pętle, w których wykonuje się zapytanie.
Go to the top of the page
+Quote Post
-ryju-
post
Post #3





Goście







Na pewno pętla... ale jeśli chodzi o dane jakie chcesz wklepać to już twoja inwencja... jeżeli mogą być z czapy to:

  1. <?php
  2. $i = 1;
  3. while ($i <= 10000) {
  4.  
  5. $rand=rand(0,10000);
  6. $dana1="dana1".$rand;
  7. $dana2="dana2".$rand;
  8. $dana3="dana3".$rand;
  9.  
  10. $sql=mysql_query("INSERT INTO tbl VALUES $dana1, $dana2, $dana3;");
  11. }
  12. ?>
Go to the top of the page
+Quote Post
MMX3
post
Post #4





Grupa: Zarejestrowani
Postów: 155
Pomógł: 9
Dołączył: 26.01.2004
Skąd: Poznań

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


poczytaj manual.

1. połączenie z bazą danych

Jak wstawiasz wiele to możesz zrobić tak:
  1. INSERT INTO tabela(kolumna0,kolumna1) VALUES('wart. kol0', 'wart kol1'), ('wart. kol0', 'wart kol1'), ('wart. kol0', 'wart kol1')...

dopisując w pętli kolejne rekordy po przecinku. np.
  1. <?php
  2. $query .= ",('wart. kol0', 'wart kol1')";
  3. ?>

Potem odpalasz
  1. <?php
  2. $result = mysql_query($query);
  3. if($result){
  4.  echo("ok");
  5. else
  6.  echo("blad: ".mysql_error());
  7. ?>

finał
Go to the top of the page
+Quote Post
-ryju-
post
Post #5





Goście







Jeżeli masz jakiś plik tekstowy z dużą ilością danych, to:

sprawdź to

(LOAD DATA INFILE...)
Go to the top of the page
+Quote Post
bordovy
post
Post #6





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 11.11.2015

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


Witajcie.
Ja z kolei nie mogę rozgryźć takiej rzeczy:
Chcę "masowo" / "hurtowo" dodać kilkadziesiąt rekordów. Normalnie bym nie pisał, bo to żadna filozofia, ale - musi być jakieś "ALE" (IMG:style_emoticons/default/wink.gif)

kolumny w tabeli:
id
category
date
title1
title2
text1
text2
text3
text4
text5
text6
photo
author
opened
status
comments
numer1
numer2
author_bad


Chcę wprowadzić dokładnie 75 rekordów zaczynając od 200001 do 200075. Z tym, że nie wszystkie dane uzupełniać.
A dokładnie:
id - wiadomo: rosnąco od 200001
category: wszystkie o wartości 1 (jeden)
date: tutaj bez sekund, ale każdy rekord starszy od poprzedniego o minutę, czyli np. jeśli rekord 200001 były "wstawiony" 2016-03-20 18:25:00, to następny 2016-03-20 18:26:00
title1: wszystkie o wartości "Opowiadania"
title2: (nie uzupełnione; puste)
text1-text6: (nie uzupełnione; puste)
photo: (nie uzupełnione; puste)
author: admin (oczywiście (IMG:style_emoticons/default/wink.gif) )
opened: wszystkie o wartości 1 (jeden)
status: wszystkie o wartości 9
comments: wszystkie o wartości 0 (zero)
numer1, numer2: wszystkie o wartości 0 (zero)
author_bad: (nie uzupełnione; puste)

Jak sobie z tym poradzić... i czy w ogóle da radę?

Z góry dziękuję za wszelkie wskazówki.

Pozdrawiam!
Go to the top of the page
+Quote Post
tomsi
post
Post #7





Grupa: Zarejestrowani
Postów: 379
Pomógł: 45
Dołączył: 30.06.2007

Ostrzeżenie: (10%)
X----


Jak masz stałe wartości, np. 1, 9 czy jakiś tekst: Opowiadania czy admin, jak piszesz to do zapytania, które dodaje do bazy musisz je wpisać na sztywno. Tak samo z pustymi rekordami, musisz je wpisać. A zmienne wartości to wiadomo, trzeba w zapytanie wpisać zmienną z wartością zmieniającą się wraz z pętlą.
Oczywiście jeżeli nie piszesz nazw kolumn w zapytaniu to musisz to wszystko w zapytaniu pisać w odpowiedniej kolejności.
Go to the top of the page
+Quote Post
roobik
post
Post #8





Grupa: Zarejestrowani
Postów: 410
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław

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


Ja mam podobne pytanie, jak bordovy.
Mam kilka pól w tabeli
id, kategoria, data, tytul, obiekt, ile

Chcę dodać powiedzmy 50 rekordów od id=200 do id=249 w taki sposób, żeby dodać tylko tytul (we wszystkich dodanych rekordach ten sam tytuł, np "Pokolenie"). Reszty nie trzeba.
Jak powinno wyglądać zapytanie do bazy w takim przypadku?

Z góry bardzo dziękuję za odpowiedź
Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 21:21