Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zapisanie wyniku do kilku oddzielnych plikow
Forum PHP.pl > Forum > PHP
morino
Witam mam takie pytanko mam skrypt losujący kilka liczb i mam 2 problemy:
- chcę aby każdą z tych wylosowanych liczb zapisac do oddzielnego pliku
- nie wiem jak stworzyć tablice tak aby cyfry od 1 do 9 wyświetlano wyświetlano jako 01 - 09

proszę o pomoc

oto skrypt:

  1. <?php ob_start()?>
  2.  
  3. <?php
  4.  
  5. $cfg['list'] = array_flip(range(1, 500));
  6.  
  7. $tmp['random'] = array_rand($cfg['list'], 15);
  8.  
  9. sort($tmp['random']);
  10.  
  11. echo implode(' ', $tmp['random']);
  12. ?>
  13.  
  14. <?php
  15. $zawartosc = ob_get_contents();
  16.  
  17. $plik = fopen('wynik.htm', 'w');
  18. fwrite($plik, $zawartosc);
  19. fclose($plik);
  20.  
  21.  
  22. ?>
kefirek


  1. $cfg['list'] = array_flip(range(1, 500));
  2.  
  3. $tmp['random'] = array_rand($cfg['list'], 15);
  4.  
  5.  
  6. function change_num(&$element)
  7. {
  8. $element = sprintf("%02d", $element);
  9. }
  10.  
  11. array_walk($tmp['random'], 'change_num');
  12.  
  13. sort($tmp['random']);
  14.  
  15.  
  16. echo implode(' ', $tmp['random']);
  17.  
  18.  
  19. $i = 1;
  20. while ($i < count($tmp['random'])) {
  21. file_put_contents($i.'.txt', $tmp['random'][$i]);
  22. $i++;
  23. }
morino
dzieki bardzo dziala super tylko lekka modyfikacja w linii 19:
  1. $i = 1;

powinno byc :
  1. $i = 0;


poniewaz losuje 1 liczbe mniej niz powinno

ps: tak sie zastanawiam czy mozna te liczby zapisac do bazy danych bo na stronie <iframe> nie odswieza mi ramek za kazdym razem tylko wylosowane stare liczby i musze recznie odswiezyc, czy to zda egzamin? jesli tak to prosze o pomoc bo nie wiem jak dziala baza i jak sie do tego wogole zabrac
jackraymund
mysql_query() wysyłasz tym zapytanie
mysql_connect(DB_HOST, DB_USER, DB_PASS) logowanie
mysql_select_db(DB_DB,$connect) - wchodzenie do konkretnej bazy
mysql_fetch_array($handle_mysql_query) - zwraca wartości zwrócone przez baze
mysql_num_rows($handle) - zwraca ilość wyników ile zwrócił mysql query
mysql_error() - jeżeli wystąpił błąd to pokazą ci się szczegółowe informacje na temat błędu
np.
$temp = mysql_query("SELECT wejsc FROM `licz` WHERE id = '$go'") or die(mysql_error());

to są podstawowe funkcje które powinny ci wystarczyć
morino
dobrze o tym czytalem ale chyba musze znac mysql zeby te zapytania wyslac a nie znam mysqla poza tym php tez nie za bardzo:)
jackraymund
wiem ci że jedynie z szukaniem, ale ja go ogarnąłem w 10 minut. Wchodzisz do bazy wykonujesz jakieś zapytanie i ci pokazuje kod zapytania.
np.
  1. zapytanie SQL:
  2. SELECT *
  3. FROM `aha`
  4. WHERE `proxy` !=1

  1. INSERT INTO `links_michal`.`aha` (
  2. `id` ,
  3. `REMOTE_ADDR` ,
  4. `HOST` ,
  5. `proxy` ,
  6. `SERVER_PROTOCOL` ,
  7. `HTTP_ACCEPT_ENCODING` ,
  8. `HTTP_ACCEPT_LANGUAGE` ,
  9. `HTTP_CONNECTION`
  10. )
  11. VALUES (
  12. NULL , '2', '3', '4', '5', '6', '7', '8'
  13. );

  1. SELECT *
  2. FROM `aha`
  3. WHERE `proxy` >=0
morino
witam ponownie. odswiezam bo w koncu znalazlem czas na poczytanie i kombinacje napisalem cos takiego:
  1. <?php
  2. // nawiazujemy polaczenie
  3. $connection = @mysql_connect('localhost', 'user', 'pass')
  4. // w przypadku niepowodznie wyświetlamy komunikat
  5. OR die('Brak polaczenia z serwerem MySQL.<br />Blad: '.mysql_error());
  6. // połączenie nawiązane ;-)
  7. echo "Udalo sie polaczyc z serwerem!<br />";
  8. // nawiązujemy połączenie z bazą danych
  9. $db = @mysql_select_db('nazwa_bazy', $connection)
  10. // w przypadku niepowodzenia wyświetlamy komunikat
  11. OR die('Nie mogę polaczyc sie z baza danych<br />Błąd: '.mysql_error());
  12. // połączenie nawiązane ;-)
  13. echo "Udalo sie polaczyc z baza!<br />";
  14.  
  15. // Tworzenie i wysyałanie zapytania do bazy MySQL
  16. // tutaj sie zacialem!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !!!!!!
  17. $w1 = 0wynik.txt
  18. $zapytanie = "INSERT INTO wyniki VALUES ('','".$w1."')";
  19. echo $zapytanie;
  20. $idzapytania = mysql_query($zapytanie);
  21.  
  22.  
  23.  
  24.  
  25. // zamykamy połączenie
  26. mysql_close($connection);
  27.  
  28. ?>


chodzi mi o to aby wepchnac (wynik skryptu) zawartosc pliku 0wynik.txt do tabeli ale wszystko od "// tutaj sie zacialem!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" mi sie krzaczy. pomocy
artuross
  1. @ $file = fopen("0wynik.txt", "r");
  2.  
  3. if ($file)
  4. {
  5. while ( ($wynik = fgets($file, 1024)) !== false ) // kolejna linijka, maks 1023 bajty(albo bity, ale chyba bajty ;))
  6. {
  7. $zapytanie = $zapytanie."INSERT INTO wyniki VALUES ('','".wynik."')"; // tutaj laczy kolejne zapytania, a nizej wysyla jako jedno
  8. }
  9.  
  10. if (!feof($file)) // jezeli jest plik bez konca
  11. {
  12. echo "Błąd!";
  13. }
  14. }
  15.  
  16. fclose($file);
  17.  
  18. mysql_query($zapytanie);
morino
mam taka linijkę:
  1. $zapytanie = mysql_query("LOAD DATA LOCAL INFILE '/var/www/1wynik' INTO TABLE wyniki");
  2. echo "1wynik w bazie<br />";
  3. mysql_query($zapytanie);


chcę teraz zaktualizowac ta tabele tym samym plikiem ale z inna zawartoscia.
szperalem w google i znalazlem UPDATE ale wszyskie przyklady sa manualne (recznie sie wprowadza wartosc)
a ja chce aby stara wartosc byla skasowana i zastepowala ja nowa z tego samego pliku.
Pomocy

ok ma juz. Uzylem po prostu funkcji DELATE przed wykonaniem $zapytanie
Teraz wroce troche wczesniej czyli do tworzenia tabeli bazy:
Utworzyłem tabele 'liczby'
  1. 'CREATE TABLE wyniki (liczby int(2) NOT NULL AUTO_INCREMENT, PRIMARY KEY(liczby))'


moje pytanie jest takie: czy pierwsza kolumna musi miec nazwe 'id' czy moze zostac tak jak wyżej?
dlaczego nie moge zmienic typu zawartosci pierwszej kolumny na CHAR (zalezy mi na nim poniewaz w przypatku INT gdy zawartosc pliku to cyfra 02, w tabeli zapisuje mi ja jako 2). W przypadku kazdej nastepnej kolumny jest to mozliwe.
artuross
Gdy będzie CHAR to nie może być auto_increment, jeśli chcesz wyświetlać wyniki z 0 na początku to po prostu napisz odpowiednią funkcję
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.