내 앨범을 표시하기 위해 perl을 기반으로 cgi를 만들려고하고 있습니다. 이제 사진 정렬 기능을 사용하고 있습니다. 나는 mysql에 각 사진의 정보를 저장했다. 모든 사진을 표시하려면 먼저 정보를 가져와야합니다.mysql 데이터베이스에서 정렬 된 데이터를 perl로 가져올 수 없습니다.
다음과 같은 문제가 있습니다. mysql에서 가져온 데이터가 각 사진의 파일 크기로 정렬되기를 기대하지만, fetchrow_array()의 결과는 mysql에 삽입되는 시간에 따른 데이터 정렬입니다.
는 MySQL의 쉘에서, 나는 파일 크기별로 정렬 예상 결과를 제공SELECT * FROM album ORDER BY filesize;
을 테스트했다. 다음은 내 소스 코드의 일부입니다.
#!/usr/bin/perl -w
use strict;
use CGI;
my $sort = 'filesize';
# Connect the database
my $dbh = do 'db.pl';
# Prepare to print out the pictures
my $query;
$query = $dbh->prepare("SELECT * FROM album ORDER BY ?") or die $DBI::errstr;
$query->execute($sort) or die $DBI::errstr;
# Print out all pictures
while(my @data = $query->fetchrow_array()){
# Process fetched data
(my $id, my $user, my $filepath, my $filename, my $filesize, my $uploadtime, my $description, my $tfilepath, my $sessioninfo) = @data;
print '<fieldset>';
# Display thumbnail
print '<a href="', $filepath, '"><img src="', $tfilepath, '" title="', $description, '"></a>';
# Display filename
print '</br>';
print $filename;
print '</fieldset>';
}
# Finish printing out all fetched pictures
$query->finish;
잘못된 명령을 사용하고 있습니까? 또는 정렬 함수를 수행하는 데 잘못된 방법을 사용하고 있습니까? 도움 주셔서 감사합니다!
IFAIK 자리 값만을 사용할 수있다 같이 쓸 수있다. – Toto