Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]Zamiana typu pliku na ikonkę
redelek
post 9.09.2008, 08:08:28
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Witam,

Mam taki mały problem. Do bazy mam zapisywany typ pliku np. application/msword podczas wyświetlania wszystkich rekordów chciałbym zamienić ten napis application/msword na ikonkę word.

Tak wygląda moje pobieranie danych
  1. <?php
  2. if(mysql_num_rows($result) == 0)
  3. {
  4.    echo "Baza jest pusta jak dzban&nbsp:( <br>";
  5. }
  6. else
  7. {
  8.   echo '<div id="main">';
  9.   echo '<table border="1" width="950px" cellspacing="0" cellpadding="2"><tr>';
  10.     echo '<td align="center" width="50">LP</td>';
  11.   echo '<td align="center" width="350">Opis</td>';
  12.   echo '<td align="center" width="40">Typ</td>';
  13.   echo '<td align="center" width="50">Pojemność</td>';
  14.   echo '<td align="center" width="110">Data dodania</td>';
  15.   echo '<td align="center" width="20">Pobierz</td>';
  16.   echo '<td align="center" width="10">Link</td></tr>';
  17.    while(list($id, $nazwa_dok, $plik, $link, $typ, $pojemnosc, $data_dodania, $uzytkownik) = mysql_fetch_array($result))
  18.    {
  19.     $cnt++;
  20.        $typ='<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';
  21.        echo '<tr><td align="center">'.$cnt.'</td>';
  22.        echo '<td><center><b>'.$nazwa_dok.'</b></center></td>';
  23.        echo '<td align=\"center\">'.mime_icon($typ).'</td>';
  24.        echo '<td align="center">'.format_size($pojemnosc).'</td>';
  25.        echo '<td align="center">'.$data_dodania.'</td>';
  26.        echo '<td align="center"><a href="'.$plik.'" title="Pobierz"><img src="images/download.png" align="center" border="0" width="16" height="16" /></a></td>';
  27.        echo '<td align="center"><a href="mailto: ?subject=Link do dokumentu '.substr($plik ,6).'&body=Link do pliku '.$link.'"><img src="images/link.png" align="center" border="0" width="16" height="16" /></a></td></tr>';
  28.        
  29.    }
  30. }
  31. ?>


Zrobiłem coś takiego, ale nie zabardzo to chce działać.
  1. <?php
  2. function mime_icon($var)
  3.    {
  4.        switch($var)
  5.        {
  6.  
  7.            
  8.            case "application/msword" <span style="color: #007700":
  9.                return '<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';
  10.            
  11.            default&nbsp:
  12.  
  13.            return "unknown";
  14.        }
  15.    }
  16. ?>

Macie może jakiś pomysł na to ?

Będę bardzo zobowiązany za pomoc

Redelek


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
nospor
post 9.09.2008, 08:12:27
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




mime_icon($typ)

a twoj typ to nie application/msword a
$typ='<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';

No patrz troche co piszesz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
redelek
post 9.09.2008, 09:03:46
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(nospor @ 9.09.2008, 07:12:27 ) *
mime_icon($typ)

a twoj typ to nie application/msword a
$typ='<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';

No patrz troche co piszesz


No od wczoraj patrzę jak sroka w gnat i nie widzę
Typ pobrany z bazy to będzie application/msword to wstawia do funkcji, ale nie znajduje w switch tego wpisu i nie zwraca mi

  1. <?php
  2. return '<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';
  3. ?>


Możesz rozjaśnić mi żarówkę troszkę, bo nadal ciemność widzę smile.gif

Redelek


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
webdice
post 9.09.2008, 09:09:17
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Nie:

Kod
case "application/msword"


tylko:

Kod
case "application/msword":


EDIT: Zmieniłem bbcode, bo forum coś mieszało. ~golaod dokładnie to co Ty.
Go to the top of the page
+Quote Post
golaod
post 9.09.2008, 09:16:18
Post #5





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


A jak dla mnie, to bardzo fajnie, że się wypowiadacie bez sensu. Przecież on nie ma raportowania błędu a z tego co widzę ma źle składnie.
case "coś":(dwukropek - ja go bynajmniej nie widzę).
webdice co Twój przykład miał pokazać ?
Go to the top of the page
+Quote Post
redelek
post 9.09.2008, 09:24:10
Post #6





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(golaod @ 9.09.2008, 08:16:18 ) *
A jak dla mnie, to bardzo fajnie, że się wypowiadacie bez sensu. Przecież on nie ma raportowania błędu a z tego co widzę ma źle składnie.
case "coś":(dwukropek - ja go bynajmniej nie widzę).
webdice co Twój przykład miał pokazać ?


Ale z dwukropkiem też nie działa.
  1. <?php
  2. case "application/msword" //jest&nbsp: ale go wycina BBcode
  3.                 return '<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';
  4. ?>


w switch jest zmienna $var która w pętli będzie zmieniała swoją wartość application/word lub application/vnd.ms-excel

Kurcze może uparłem się na to switch, a to tu nie spełni swojej roli. W bazie jest już zapisany typ pliku a nie cała nazwa:(

Ten post edytował redelek 9.09.2008, 09:25:40


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
golaod
post 9.09.2008, 09:28:49
Post #7





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

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


Masz raportowanie błędów ? Sprawdź w najłatwiejszy możliwy sposób czyli
if('application/msword'==$val)
echo 'good'
else
echo 'not'
Może wartość tej zmiennej jest inna ? Poza tym polecam do switcha wprowadzać dane w ten sposób trim($val) bo nie wiadomo, czy jakieś białe znaki się nie wkradły.
Go to the top of the page
+Quote Post
webdice
post 9.09.2008, 09:29:09
Post #8


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Jak masz w bazie co innego niż w case to się nie dziw że Ci nie działa.
Go to the top of the page
+Quote Post
redelek
post 9.09.2008, 09:40:42
Post #9





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(golaod @ 9.09.2008, 08:28:49 ) *
Masz raportowanie błędów ? Sprawdź w najłatwiejszy możliwy sposób czyli
if('application/msword'==$val)
echo 'good'
else
echo 'not'
Może wartość tej zmiennej jest inna ? Poza tym polecam do switcha wprowadzać dane w ten sposób trim($val) bo nie wiadomo, czy jakieś białe znaki się nie wkradły.


Upsss no i mamy ciekawostkę.
Jak zrobiłem tak jak powiedziałeś to wszędzie dostaję info not not, ale jak wyświetlam to z bazy to wszystko ładnie widać ?
To o co chodzi ?

Redelek


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
webdice
post 9.09.2008, 09:41:36
Post #10


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Napisz jak masz dokładnie zapisane w bazie.
Go to the top of the page
+Quote Post
redelek
post 9.09.2008, 09:53:48
Post #11





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(webdice @ 9.09.2008, 08:41:36 ) *
Napisz jak masz dokładnie zapisane w bazie.


Tabela
  1. CREATE TABLE `db_doc` (
  2. `id` tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `nazwa_dok` varchar(100) collate utf8_polish_ci DEFAULT NULL,
  4. `plik` varchar(255) collate utf8_polish_ci DEFAULT NULL,
  5. `link` varchar(255) collate utf8_polish_ci DEFAULT NULL,
  6. `typ` varchar(50) collate utf8_polish_ci DEFAULT NULL,
  7. `pojemnosc` int(10) UNSIGNED DEFAULT NULL,
  8. `data_dodania` datetime DEFAULT NULL,
  9. `uzytkownik` varchar(8) collate utf8_polish_ci DEFAULT NULL,
  10. PRIMARY KEY (`id`),
  11. UNIQUE KEY `id` (`id`),
  12. KEY `id_2` (`id`)
  13. ) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;


Dane
  1. INSERT INTO `db_doc` (`id`,`nazwa_dok`,`plik`,`link`,`typ`,`pojemnosc`,`data_dodania`,`uzytkownik`) VALUES
  2. (1,'dasdasdas','pliki/lyra-callcenter.txt','http://doc.clickad.pl/pliki/lyra-callcenter.txt','text/plain',80,'2008-09-05 15:22:17','redelek'),
  3. (2,'xcbxbxb','pliki/projekt_ukladu_strony_w_opa...pdf','http://doc.clickad.pl/pliki/projekt_ukladu_strony_w_opa...pdf','application/pdf',374374,'2008-09-05 15:31:49','redelek'),
  4. (3,'ffsfsdfsd','pliki/cisco_faq_pl.pdf','http://doc.clickad.pl/pliki/cisco_faq_pl.pdf','application/pdf',2039745,'2008-09-05 15:32:54','redelek'),
  5. (4,'fsdfsdfsdfsd','pliki/c2400106.pdf','http://doc.clickad.pl/pliki/c2400106.pdf','application/pdf',59080,'2008-09-05 15:36:46','redelek'),
  6. (7,'word','pliki/instalacja_serwera_pocztowego_na_linux.doc','http://doc.clickad.pl/pliki/instalacja_serwera_pocztowego_na_linux.doc','application/msword',20992,'2008-09-08 16:02:41','redelek'),
  7. (8,'excel','pliki/inwentaryzacja_12.2007.xls','http://doc.clickad.pl/pliki/inwentaryzacja_12.2007.xls','application/vnd.ms-excel',220672,'2008-09-08 16:02:41','redelek'),
  8. (9,'jpg','pliki/mapa2.jpg','http://doc.clickad.pl/pliki/mapa2.jpg','image/jpeg',196167,'2008-09-08 16:02:41','redelek'),
  9. (10,'jpg','pliki/copy_(2)_of_clickad_2007.ppt','http://doc.clickad.pl/pliki/copy_(2)_of_clickad_2007.ppt','application/vnd.ms-powerpoint',12055040,'2008-09-08 16:02:41','redelek'),
  10. (11,'zip','pliki/lekcja3smarty.zip','http://doc.clickad.pl/pliki/lekcja3smarty.zip','application/force-download',38549009,'2008-09-08 16:02:41','redelek'),
  11. (12,'rar','pliki/r-studio_4.2.125042.rar','http://doc.clickad.pl/pliki/r-studio_4.2.125042.rar','application/rar',5657988,'2008-09-08 16:02:41','redelek');


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
nospor
post 9.09.2008, 10:03:02
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




kurde, co z wami?
pogrubiam wam linie o ktora chodzi!!!!
Cytat
while(list($id, $nazwa_dok, $plik, $link, $typ, $pojemnosc, $data_dodania, $uzytkownik) = mysql_fetch_array($result))
{
$cnt++;
$typ='<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';
echo '<tr><td align="center">'.$cnt.'</td>';
echo '<td><center><b>'.$nazwa_dok.'</b></center></td>';
echo '<td align=\"center\">'.mime_icon($typ).'</td>';
echo '<td align="center">'.format_size($pojemnosc).'</td>';
echo '<td align="center">'.$data_dodania.'</td>';
echo '<td align="center"><a href="'.$plik.'" title="Pobierz"><img src="images/download.png" align="center" border="0" width="16" height="16" /></a></td>';
echo '<td align="center"><a href="mailto: ?subject=Link do dokumentu '.substr($plik ,6).'&body=Link do pliku '.$link.'"><img src="images/link.png" align="center" border="0" width="16" height="16" /></a></td></tr>';

}


Przeciez pisalem o tym w pierwszym poscie. Jak mozna to przegapic?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
webdice
post 9.09.2008, 10:03:38
Post #13


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Ehh, nie zauważyłem że nie poprawiłem tego co ~nospor Ci napisał.

  1. <?php
  2. while(list($id, $nazwa_dok, $plik, $link, $typ, $pojemnosc, $data_dodania, $uzytkownik) = mysql_fetch_array($result))
  3.   {
  4.    $cnt++;
  5.       $typ='<img src="images/winxp/doc.png" align="center" border="0" width="16" height="16" />';
  6.       echo '<tr><td align="center">'.$cnt.'</td>';
  7.       echo '<td><center><b>'.$nazwa_dok.'</b></center></td>';
  8. ?>


Usuń zmienną typ, bo przekazujesz ją później do funkcji.
Go to the top of the page
+Quote Post
redelek
post 9.09.2008, 10:56:43
Post #14





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


RUSZYŁO exclamation.gif!!!

Dzięki Panowie:)

Jeszcze jedno pytanie gdzie mogę znaleźć listę wszystkich typów plików ?

Pozdrawiam
Redelek


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
nospor
post 9.09.2008, 11:02:30
Post #15





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no nie wiem, moze w google?
http://www.google.com/search?hl=pl&cli...=Szukaj&lr=

A na przyszlosc czytaj ze zrozumieniem co do ciebie piszą. Ale nie martw sie, inni tez sie nie popisali winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
redelek
post 9.09.2008, 11:25:34
Post #16





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(nospor @ 9.09.2008, 10:02:30 ) *
no nie wiem, moze w google?
http://www.google.com/search?hl=pl&cli...=Szukaj&lr=

A na przyszlosc czytaj ze zrozumieniem co do ciebie piszą. Ale nie martw sie, inni tez sie nie popisali winksmiley.jpg


Dzięki


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:00