Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Scalanie pól
Forum PHP.pl > Forum > PHP
br4tp1t
Witam, mam taki problem, że z pewnego programu jest wywolywana funkcja ktora za pomocą phpa zapisuje pliki w MYSQL. Wszystko byloby oki gdyby nie fakt ze przechodzą pliki o max wielkosci 64KB, większe już nie, nie mam jak ingerowac w php.ini ponieważ sam skrypt php i baza mysql jest na zew serwerze do którego nie mam dostępu na takim poziomie. I chciałbym zrobić scalanie, tzn program podzieli plik na części po 64KB to się zapisze w tabeli tymczasowej i na tym etapie jest oki kazda część ma identyczna sygnature, id oraz która to jest c zęść i z ilu. Problem polega na tym ze musze poźniej te części scalic zapisać juz jako jeden plik w nowej bazie starą usunąć, a podczas scalania trzeba sprawdzić czy napewno wszystkie części dotarły i czy zgadza się sygnatura.
Proszę o wskazówki. Narazie wygląda to tak (jest to oczywiście tylko część skryptu)
  1. <?php
  2.  
  3. function temp_zapisz ($tabela, $sygnatura, $last, $current, $dane, $nazwa)
  4. {
  5.  $qq = &#092;"SELECT * FROM test_temp WHERE id='$current' LIMIT 1\";
  6.  $result= mysql_query ($qq);
  7.  $il_rek = mysql_num_rows ($result);
  8.  if ($il_rek > 0) {
  9. $row = mysql_fetch_array($result);
  10. $pid = $row[&#092;"id\"];
  11.  }
  12.  else {$pid = $current; }
  13.  
  14.  echo&#092;" temp PID=$pid \";
  15.  
  16.  if ($il_rek > 0) {
  17.  $qq = &#092;"UPDATE test_temp SET sygnatura='$sygnatura', last='$last', dane='$dane',
  18. nazwa='$nazwa' WHERE id='$pid' LIMIT 1&#092;";
  19.  }
  20.  else {
  21.  $qq = &#092;"INSERT INTO test_temp SET sygnatura=$sygnatura \";
  22.  }
  23. //  echo\" qq $qq \";
  24.  $result = mysql_query($qq) or die (&#092;"blad rr\");
  25.  
  26.  $danetemp=&#092;"\";
  27.  if ($last = $current ) {
  28.  temp_scalaj ($tabela, $last, $danetemp);
  29.  echo &#092;"n\".\"scalone: $danetemp \".\"n\".\"KONIEC SCALANIA\";
  30.  }
  31.  echo &#092;"n\".\"BEZ SCALANIA\";
  32. }
  33. ?>
scanner
Zamykam do czasu otrzymania informacji który punkt Regulaminu naruszyłeś i jak chesz to naprawic.
br4tp1t
oki, może scalanie narazie zostawie, jak zrobić żeby sprawdzał mi sygnature wszystkich części na podstawie ostatniej. Czyli jest wysyłanych 10 częsci, po otrzymaniu ostatniej należałoby sprawdzić id(tej ostatniej) czyli np. 10 i wtedy porowna kazda sygnature z ostatnia np. sygnatura=sygnatura_ostatnia. Wiem, że to pewnie prosta pętla ale jakoś nie potrafie wymyśleć nic sensownego sad.gif
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.