웹페이지 작성시 질문입니다. 질문만 해서 죄송합니다~ (html, CGI, mysql)

xoahrdl의 이미지

제가 지금 select 박스에서 선택되어진 값을 받아서 query 문으로 돌려서
웹페이지에 다시 출력하는.. 이른바 filtering(선택된 조건에 해당하는 것만 화면에 출력)을 하려고 하고 있습니다.
제가 코딩 일부분입니다. 이곳중에 문제가 있을거 같아 끊어 왔습니다.(너무 길어서 죄송합니다)

$table_head .= "<FORM action='MTGM_list' method='POST' name='filter'><td align='
center' rowspan=2 bgcolor='#DDDDDD'><input type='submit' name='submit' value='fi
lter'></td></tr>";
$table_head .= "<tr><td align='center'><select name='year'>";
 
##### 이것은 테이블에 연도가 따로 필드로 되어있지 않고 `date` 필드가 0000-00-00 형식으로
##### 되어있어서 `date` 필드의 왼쪽 4개를 가져오는 내용입니다.
$query= "SELECT DISTINCT Left(`date`,4) AS Year_Date FROM `WAH_meeting`";
$result=$dbh->prepare($query);
$result->execute;
while (my $row=$result->fetchrow_hashref())
{
        $table_head .= "<option value= '$row->{'Year_Date'}'selected >$row->{'Ye
ar_Date'}</option>";
 
}
$table_head .= "</select></td></tr>";
$table_body = " "; $i=0;
 
 
#####여기가 제가 생각하는 문제 될것 같은 유력한 부분#####
$query="SELECT * FROM `WAH_meeting` where LEFT (`date`,4) = 'year' order by `date`
DESC";
 
$result=$dbh->prepare($query);
$result->execute;
while (my $row=$result->fetchrow_hashref())
{
.


이부분의 코딩 의도는 select 를 통해서 선택된 값(select name='year')에 해당하는 데이터를 테이블에서 가져오는 것입니다. 요 위의 쿼리문이 조건을 준것인데요. 'year'가 아닌 2006같은 정수를 대신 넣으면 잘 출력이 되는 걸로 봐서 저 쿼리문만 잘 작성하면 될것 같은 생각이 듭니다.
제가 생각한 문제는 select name = 'year' 란 놈을 변수로 바꿔서 $year 이런식으로 쿼리문의 where 에 넣어주면 될것같은데 어떻게 해야하는지 잘 모른다는 것입니다.
솔직히 지금 제가 생각한 것이 아닌 다른 곳에서 문제가 될 수도 있다고 생각하고 있습니다.

끝까지 읽어주셔서 감사합니다. 조언부탁드립니다.

ps : 에구 이거 해결하고 나믄 select하고 checkbox에서 선택된 것을 중복 조건으로 filtering 해야 하는데 이것두 하려면 큰일 났네요.. ㅠㅠ

serialx의 이미지

POST Request/PHP 에서 라면

$year = mysql_quote_string($_POST['year']);
$query="SELECT * FROM `WAH_meeting` where LEFT (`date`,4) = '{$year}' order by `date`
DESC";

정도면 될것 같네요..

구조를 질문에 제시하지 않고 단순히 몇개의 잘라붙인 코드만 주시면 올바른 답변을 해드리기엔 너무 제한적입니다.

--
Captue the one shot in your life!

xoahrdl의 이미지

perl CGI로 짰다고 해야되나 봅니다.
serialx님이 해주신대로 했는데 에러가 뜨진 않는데 화면이 백지네요..ㅠㅠ
아무튼 답변 너무 감사드립니다 (_ _ );

aero의 이미지

Perl CGI로 HTML을 동적으로 생성하시는것 같은데 논리적으로 생각해보면 year를 선택하는 select box를 만들어주는 tag랑 그 select box에서 선택된 year값을 이용해서 쿼리를 날리는 구문이랑 같은 소스안에 들어있다면 html 페이지가 보여주는 시점에 이미 밑에 year를 이용해서 select하는 구문도 끝나버린 시점인데 어떻게 사용자가 선택한 year값을 가져가서 select를 날릴 수 있나요? 아래 select문을 실행하는 부분은 별도 CGI로 만들어서 year값을 선택한 페이지에서 그쪽으로 year값을 넘겨주는 식으로 만들어야 되지 않나요?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.