Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pomoc z auto ID
Forum PHP.pl > Forum > PHP
wlamywacz
Witam

Aktualnie pisze skrypt w którym uploaduje plik na serwer i jego nazwa wraz z kategorią zostaje wrzucony do bazy i każdy plik musi mieć unikalne ID gdyż jest ono wykorzystywane do puźniejszej identyfikacji plik która odbywać się może tylko za pomocą liczby więc dałem auto. No ale problem polega na tym aby wyselekcjonować te pliki które zostały dodane nieznająć ich ID myślałem nad tym aby dodać pliki do dwóch tabeli i sprawdzić za pomocą tego oto dziwnego skryptu:
  1. <?php
  2. $zapytanie = "SELECT * FROM generator ORDER BY id" or die(mysql_error());
  3. $wykonaj = mysql_query($zapytanie) or die(mysql_error());
  4. while($wiersz = mysql_fetch_array($wykonaj))
  5. {
  6. $ha = $wiersz['nazwa'];
  7. $zapytanie2 = "SELECT * FROM test WHERE nazwa="$ha"" or die(mysql_error());
  8. $wykonaj2 = mysql_query($zapytanie2) or die(mysql_error());
  9. while($wiersz2 = mysql_fetch_array($wykonaj2))
  10. {
  11. echo $wiersz2['id'],"=Tapeta=",$url,$katal,$wiersz['kategoria'],"/",$wiersz['nazwa'],"<br>";
  12. }
  13. }
  14. ?>


No i taka oto prowizorka działa do czasu aż w bazie znajdą się 2 identyczne obrazki wtedy zaczyna szaleć i pokazuje kilkakrotnie losowe wartości prosze o pomoc jak rozwiązać ten problem.
wlamywacz
No dobrze ta fukcja oddaj ostatnie ID jakie zostało nadane ale jak to wykorzystać ? BO nie mam kompletnie pomysłu pozatym może być wrzucany 1 plik jak i 20 plików więc prosze o wytłumaczenie jak by to miało działać.
erix
Np. masz coś takiego:
  1. <?php
  2. $pliki = array(/*tablica z plikami, czy jakkolwiek je dodajesz*/);
  3. $plikiID = array();
  4.  
  5. foreach($pliki as $plik){
  6. mysql_query(/*INSERT INTO itepe*/);
  7. $plikiID[] = mysql_insert_id();
  8. }
  9. ?>
wlamywacz
Możesz mi dopisać to do mojego pliku i opisać jak to dokładnie działa bo nie moge zrozumieć :/
  1. <?php
  2. if ( isSet( $_FILES['pliczek'] ) === true ) 
  3. { 
  4. $files = is_array( $_FILES['pliczek'] ) === true ? $_FILES['pliczek'] : array( $_FILES['pliczek'] ); 
  5. $debug = ''; 
  6. $allow = array( 'image/x-png', 'image/gif', 'image/jpeg' ); 
  7.  
  8. for ( $i = 0, $j = sizeOf( $files['name'] ); $i < $j; $i++ ) 
  9. { 
  10. if ( empty( $files['name'][ $i ] ) === true ) 
  11. { 
  12. continue; 
  13. } 
  14.  
  15. if ( in_array( $files['type'][ $i ], $allow ) === true ) 
  16. { 
  17. if ( move_uploaded_file( $files['tmp_name'][ $i ], "$docelowy" . $files['name'][ $i ] ) === true ) 
  18. { 
  19.  
  20. $debug .= '<br /> + ' . $files['name'][ $i ]; 
  21. } 
  22. else 
  23. { 
  24. $debug .= '<br /> - ' . $files['name'][ $i ]; 
  25. } 
  26. } 
  27. else 
  28. { 
  29. $debug .= '<br /> - ' . $files['name'][ $i ] . ' invalid type'; 
  30. } 
  31. } 
  32.  
  33. print $debug; 
  34. }
  35. ?>
erix
Chyba to nie to :/
Tu niczego od SQL nie ma...

A z Twoim pierwszym kodem jakiegoś większego powiązania nie widzę... (nigdzie nie ma wstawiania do bazy)
wlamywacz
Bo usunołem kod odnoszący się do Mysql był tam tylko wpis w którym dodawało: auto ID, nazwa.jpg, kategoria i to tyle
1010
to po tym dodawaniu musisz wykonać funkcje mysql_insert_id();
thornag
Cytat
No ale problem polega na tym aby wyselekcjonować te pliki które zostały dodane nieznająć ich ID myślałem nad tym aby dodać pliki do dwóch tabeli i sprawdzić za pomocą tego oto dziwnego skryptu:

Czyli idzie o pliki ktore wlasnie zostaly zuploadowane ? Jesli tak to powinienes wiedziec ile ich jest, wiec mozna tak, do tabeli dodac pole time i wrzucac tam timestamp f. time() a pozniej
  1. SELECT * FROM obrazki ORDER BY time DESC LIMIT ilosc_zuploadowanych_obrazow
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.