Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] upload i zapis nazwy pliku do bazy
Forum PHP.pl > Forum > Przedszkole
atomp3
Witam

Mam tablice $plik (laduje 4 pliki)


w petli sprawdzam kazdy plik i laduje na serwer. Wczesniej jednak chcialbym wrzucic do tabeli:

id plik0 plik1 plik2 plik3

I teraz jak to zrobic potrzebuje

- sprawdzic pliki
- zaladowac do bazy
- pobrac ostatnie id
- nadac nazwe po ostatnim id
- zrobic upload.

Problem polega na tym jak wrzucic do bazy w jednym wierszu poniewaz zrobi sie loop 4 razy.

Nie moge wrzucic przed petla poniewaz pliki musza byc sprawdzone nie wiem jak to ugyzc
Tyfus
Jesli chodzi o ostanie id to mozesz to zrobic tak:

<?php
mysql_connect('localhost', 'uzytkownik', 'haslo') or
die('Nie można się połączyć');
mysql_select_db('baza');

mysql_query("INSERT INTO mytable (product) values ('Tyfus')");
printf ("Ostatnio dodany rekord ma id %d\n", mysql_insert_id());
?>
atomp3
Cytat(Tyfus @ 11.11.2008, 12:56:52 ) *
Jesli chodzi o ostanie id to mozesz to zrobic tak:

<?php
mysql_connect('localhost', 'uzytkownik', 'haslo') or
die('Nie można się połączyć');
mysql_select_db('baza');

mysql_query("INSERT INTO mytable (product) values ('Tyfus')");
printf ("Ostatnio dodany rekord ma id %d\n", mysql_insert_id());
?>


ale nie w tym problem bo ostatnie ID pobieram. Chodzi o to zeby zapisac nazwy w jednym wierszu. Tymaczasem petla wykona sie 4 razy sprawdzajac kazdy plik i uploadujac go.
Tyfus
$jakasnazwa=" ";

{
w tej petli sprawdzasz pliki
if ($plik==poprawny)
{
$jakasnazwa=$jakasnazwa. $plik
}
}
tutaj wrzucasz sobie te nazwe razem z id
echo $jakasnazwa


o to chodzi ?
atomp3
Cytat(Tyfus @ 11.11.2008, 13:21:33 ) *
$jakasnazwa=" ";

{
w tej petli sprawdzasz pliki
if ($plik==poprawny)
{
$jakasnazwa=$jakasnazwa. $plik
}
}
tutaj wrzucasz sobie te nazwe razem z id
echo $jakasnazwa
o to chodzi ?


tak to wyglada:

  1. <?php
  2. function carUploadPhoto()
  3.   {
  4.  
  5.       global $mainframe, $option;
  6.      
  7.       $db =& JFactory::getDBO();
  8.      
  9.       //Handle image class
  10.       $image = new atompImage();
  11.  
  12.       //path to upload Dir
  13.       $uploadPath = JPATH_COMPONENT.DS.'uploads/offers/';
  14.  
  15.      
  16.           if (JRequest::get( 'post' ))
  17.           {
  18.           //Files array
  19.           $file = JRequest::getVar('image', null, 'files', 'array');
  20.          
  21.           //how many arrays
  22.           $sizeofarray = count($file);
  23.          
  24.           //loop arrays
  25.           for ($i = 0; $i < $sizeofarray; $i++)
  26.           {
  27.          
  28.           //create a new arrays suitable for upload
  29.           $newarray[$i] = array('name' => $file['name'][$i], 'type' => $file['type'][$i], 'tmp_name' => $file['tmp_name'][$i], 'error' => $file['error]'][$i], 'size' => $file['size'][$i]);
  30.          
  31.               //if arrays not empty process
  32.               if (!empty($newarray[$i]['name']))
  33.               {
  34.               //SET ALL CLASS METHODS
  35.               $image->setFiles($newarray[$i]);
  36.               $image->setImagePath($uploadPath);
  37.               $image->setMaxImageSize('100000');
  38.               $image->setAllowed(array('image/pjpeg','image/gif','image/jpeg','image/JPG','image/jpg'));
  39.              
  40.               if (!$image->check()) {
  41.                  
  42.                   $this->msg .= $image->getMessage();
  43.                   break;
  44.              
  45.               } else {
  46.                  
  47.                   $newarray[$i]['name'] = preg_replace("/[^a-zA-Z0-9.]/", "", strtolower($newarray[$i]['name']));
  48.                  
  49.                   //FILE IMAGE NAME
  50.                   $data['image'.$i] = $newarray[$i]['name'];
  51.          
  52.                   $row_img =& JTable::getInstance('car_ogloszenia_img', 'Table');
  53.  
  54.                   if (!$row_img->bind( $data )) { return JError::raiseWarning( 500, $row_img->getError() ); }
  55.                   if (!$row_img->store()) { JError::raiseError(500, $row_img->getError()); }
  56.          
  57.                   //GET INSERTED ID FOR NEW INSERTION
  58.                   $database =& JFactory::getDBO();
  59.                   $this->insertedID = $database->insertid();
  60.      
  61.                   //SET IMAGE NAME AND UPLOAD
  62.                   $image->setImageName($this->insertedID .'-'. $newarray[$i]['name'] );
  63.                  
  64.                   if ($image->upload()) {
  65.  
  66.                       $image->setThumbWidth('120');
  67.                       //CREATE THUMBNAILS
  68.                       $image->createThumb();
  69.                       $image->createLightBox();
  70.                      
  71.                   }
  72.                  
  73.                   $this->msg .= $image->getMessage();
  74.                   }
  75.              
  76.               } //EOF if empty
  77.          
  78.           } //EOF for
  79.      
  80.       } //EOF post
  81.      
  82.   }
  83. ?>
Tyfus
hmm to moze cos innego zapoponuje ale nie wiem czy to tez bedzie dobre rozwiazanie

masz id "poczatkowe" (100) oraz "koncowe" (104) wystarczy pozniej zmienic nazwe pliku/wpisu do bazy na podstawie tego zakresu
czyli od 100 do 104 na nazwe 104 smile.gif
atomp3
Cytat(Tyfus @ 11.11.2008, 13:40:50 ) *
hmm to moze cos innego zapoponuje ale nie wiem czy to tez bedzie dobre rozwiazanie

masz id "poczatkowe" (100) oraz "koncowe" (104) wystarczy pozniej zmienic nazwe pliku/wpisu do bazy na podstawie tego zakresu
czyli od 100 do 104 na nazwe 104 smile.gif



wymyslilem zeby moze dawac nazwe pliku nie po id a po nazwie z time wtedy upload a potem dodac do bazy to chyba najprosciej i nazwy plikow sie nie powinny dublowac

Jakies inne pomysly?
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.