2017-10-12 1 views
-1

다음 목록과 함께 도와주세요. 내가 실수를 저지르고 있는지 모르겠다.url 및 조건의 쿼리 문자열

내 테이블 :

링크 (1994 나이키)을 클릭
1994 Nike 
1995 O2 

되면 :

year | distributor | item | nameautor 
1994 | Nike | Book | John 
1994 | Nike | Book | Peter 
1994 | Nike | DVD | Jessie 
1994 | Nike | DVD | Marc 
1995 | O2 | Book | Heck 
1995 | O2 | Book | Lars 
etc. 

전체 링크 목록 의 index.php

예 페이지에 표시됩니다 다음과 같이 표시됩니다.

1994 Nike Book 
1994 Nike DVD 
,210

그리고 당신이 클릭 할 때 마지막 단계입니다 - 1994 나이키 도서 :

1994 Nike Book John 
1994 Nike Book Peter 

나는 다음과 같은 코드를 가지고 있고, 나는 그들을 함께 연결하는 방법을 모르겠어요.

1 단계

<?php 
$query="(SELECT DISTINCT year, distributor FROM table)"; 
$back=mysql_query($query, $conn) or die(mysql_error()); 
while (list($year,$distributor) = mysql_fetch_row($back)){ 
    echo ("<a href=\"index.php?$year&$distributor\"><b></b>$year - $distributor</a></br>"); 
    } 
?> 

2 단계

<?php 
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) { 
    $year = $_SERVER['QUERY_STRING']; 
    $distributor = $_SERVER['QUERY_STRING']; 
    $namechoose = str_replace(array('%20', '&'), ' ' , $_SERVER['QUERY_STRING']); 
    $query="(select distinct year, distributor, item FROM table WHERE CONCAT(year, ' ', distributor)='$namechoose')"; 
    $back=mysql_query($query, $conn) or die(mysql_error()); 
    echo ("<h3><center>you choose --- $namechoose ---</center></h3>"); 
    while (list($year,$distributor,$item) = mysql_fetch_row($back)){ 
     echo ("<a href=\"index.php?$year&$distributor&$item\"><b></b>$year - $distributor - $item</a></br>"); 
     } 
} 
?> 

I이 구성을 시도

<?php 
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) { 
    $year = $_SERVER['QUERY_STRING']; 
    $distributor = $_SERVER['QUERY_STRING']; 
    $item = $_SERVER['QUERY_STRING']; 
    $detailedtable = str_replace(array('%20', '&'), ' ' , $_SERVER['QUERY_STRING']); 
    $query="(select distinct year, distributor, item, nameautor FROM table WHERE CONCAT(year, ' ', distributor, ' ', item)='$detailedtable')"; 
     $back=mysql_query($query, $conn) or die(mysql_error()); 
    echo TABLE LISTING; 
} 
?> 

마지막 단계, 하지만 내가 원하는대로 작동하지 않습니다.

<?php 
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) { 
    if (!isset($_GET['item'])) { 
      $year = $_SERVER['QUERY_STRING']; 
      $distributor = $_SERVER['QUERY_STRING']; 
      $namechoose = str_replace(array('%20', '&'), ' ' , $_SERVER['QUERY_STRING']); 
      $query="(select distinct year, distributor, item FROM table WHERE CONCAT(year, ' ', distributor)='$namechoose')"; 
      $back=mysql_query($query, $conn) or die(mysql_error()); 
      echo ("<h3><center>you choose --- $namechoose ---</center></h3>"); 
      while (list($year,$distributor,$item) = mysql_fetch_row($back)){ 
       echo ("<a href=\"index.php?$year&$distributor&$item\"><b></b>$year - $distributor - $item</a></br>"); 
       } 
    } else { 
      $year = $_SERVER['QUERY_STRING']; 
      $distributor = $_SERVER['QUERY_STRING']; 
      $item = $_SERVER['QUERY_STRING']; 
      $detailedtable = str_replace(array('%20', '&'), ' ' , $_SERVER['QUERY_STRING']); 
      $query="(select distinct year, distributor, item, nameautor FROM table WHERE CONCAT(year, ' ', distributor, ' ', item)='$detailedtable')"; 
       $back=mysql_query($query, $conn) or die(mysql_error()); 
      echo TABLE LISTING; 
     } 
    } 
else { 
    $query="(SELECT DISTINCT year, distributor FROM table)"; 
    $back=mysql_query($query, $conn) or die(mysql_error()); 
    while (list($year,$distributor) = mysql_fetch_row($back)){ 
     echo ("<a href=\"index.php?$year&$distributor\"><b></b>$year - $distributor</a></br>"); 
     } 
} 
?> 

나쁜 구조입니까?

의견을 보내 주셔서 감사합니다.

+1

* "나쁜 구조입니까?"* - 어쩌면 아닐 수도 있지만 사용중인 API가 있습니다. –

+0

여기서'codeigniter'는 어디에 사용됩니까? – Bira

답변

0

도움 주셔서 감사합니다.

나는

echo ("<a href=\"index.php?year=$year&distributor=$distributor&item=$item\"><b></b>$year - $distributor - $item</a></br>"); 

를 사용하여 코드를 수정 한 그리고 지금은 정상적으로 작동합니다.