2012-02-22 5 views
2

안녕하세요, 저는이 코드를 올바르게 작성하고 싶습니다. 구문에 대해서는 잘 모르겠습니다.PHP를 사용하여 테이블 데이터를 이미지와 일치 시키십시오.

여기 상황이 있습니다. 나는 디렉토리를 스캔하고 그 내용을 img 태그와 축소판으로 표시합니다. 또한 각 이미지를 테이블에 저장된 설명 및 제목과 일치 시키려고합니다.

디렉토리에있는 각 파일의 이름이 사용자 생성 값으로 작성되었으며, 동일한 테이블에 '이름'으로 저장되어 있습니다 ('ID', '이름', '제목', '설명'). 각 제목과 설명을 파일 이름과 일치시키고 img 태그와 링크의 적절한 위치에 배치하려고합니다. 나는 그것이 작동하는지조차 확실하지 않다 ... 그건 내 생각의 과정, 어쨌든

<?php 
$connect = mysql_connect ("localhost","root","") or die("couldn't connect :("); 
mysql_select_db("cynthieimages") or die("couln't find db :("); 

*here I want to pull the data from the table into an $data[] 

$handle = opendir(dirname(realpath(__FILE__)).'/images/fullscreen/graphicdesign/logos'); 
while($file = readdir($handle)) 
    { 
    if($file !== '.' && $file !== '..') 
     { 

     *Right in here I need to define $title by exploding $file and geting the first part of the name* 
     *Here i want to define $description from $data[] where it shares a row name as $title* 

echo '<a href="images/fullscreen/graphicdesign/logos/'.$file.'" rel="prettyPhoto[pp_gal]" title="'.$description.'"><img src="images/thumbnails/websitethumbs/graphicdesign/logos/th_'.$file.'" width="60" height="60" alt="'.$title.'" /></a>'; 

     } 
    } 
?> 

: 여기

는 코드입니다. 제발, PHP의 주인, 내 원조에 와서)

답변

0

사용자의 입력이있는 DB를 찾으려면 (파일 시스템의 파일 이름도 사용자 입력 임) 위험하고 보안 문제가 발생하기 쉽습니다. mysql을 사용하는 경우 mysql_real_escape_string을 올바르게 사용하고 다른 DB에서는 동일한 기술을 사용하십시오.

그러나 모든 것이 더 나은 것은, Eugen Rieck의 대답에 충실합니다. 귀하의 DB에 모든 메타 데이터를 저장하고 DB에서 모든 것을 꺼내 파일에 원시 이미지 만 저장하십시오.

+0

나는 이해하지 못한다. 내가 파일에 저장 한 유일한 것은 이미지 다. 그것은 단지 이름 메타 데이터의 이름을 따서 명명됩니다. – Jeremythuff

+0

$ result = mysql_query ('select ... from images where dir = "/ images/fullscreen/graphicdesign/logos ($ file = readdir ($ handle)) { " '); while (list (...) = mysql_fetch_row ($ result)) {...} –

+0

gotcha, 고마워. – Jeremythuff

1

나는 당신이 디자인을 재고 할 것을 제안한다. DB에서 사용자 생성 텍스트를 포함하여 파일 자체와 다른 모든 것을 저장하고, DB에 ID를 생성하게한다. ID 바로 뒤에 파일의 이름을 지정하십시오.

디렉토리를 탐색하는 것은 DB에서 일부 필드를 가져 오는 것보다 훨씬 더 비쌉니다.

+0

파일을 블랍으로 저장해야한다는 의미입니까? – Jeremythuff

+0

아니요 : 모든 내용을 DB 행에 ** ** 저장 ** : 사용자 생성 문자열 및 파일 자체에 대한 경로를 포함한 모든 메타 데이터. –

+0

좋아, 고마워. – Jeremythuff

관련 문제