Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Losowe dodawanie rekordów do bazy z pliku.
krzysoolloo
post
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 28.12.2007

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


Witam wszystkich!
Chcę napisać skrypt który dodaje do MySQL-a rekordy zapisane w pliku. Linijki w pliku wyglądają np tak:

INSERT INTO `Taabela123` VALUES (1, 'tekst1', 'admin');
INSERT INTO `Taabela123` VALUES (1, 'tekst2', 'admin');
INSERT INTO `Taabela123` VALUES (1, 'tekst3', 'admin');


I tutaj mam pytanie jak wczytać np losowe 100 linijek, dodać je do bazy i usunąć z pliku, aby uniknąć ponownego dodania?

Dziękuję za podpowiedzi,
Krzysiek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
seth-kk
post
Post #2





Grupa: Zarejestrowani
Postów: 444
Pomógł: 79
Dołączył: 26.05.2009

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


tak na oko:
  1. <?php
  2. $nazwa_pliku = "plik.sql";
  3. $lines = file("$nazwa_pliku");
  4.  
  5. $linijeczki = min(count($lines), 100); //na wypadek gdyby bylo mniej linii
  6.  
  7. for($i = 0; $i < $linijeczki; $i++)
  8. {
  9.   $liczba = mt_rand(0, $linijeczki-$i); //tablica robi sie krotsza po kazdym wywolaniu
  10.   mysql_query("$lines[$liczba]");
  11.  
  12.   array_splice($lines, $liczba, 1);
  13. }
  14. $lines = implode("\n", $lines); //implode zwraca wynik a nie odwoluje sie przez referencje
  15. file_put_contents($nazwa_pliku, $lines); //nie ma wiekszego sensu zapisywac zmiany wewnatrz petli lepiej postawic locka na plik
  16.  
  17. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 21:57