2017-10-12 15 views
-1

次のリストを参考にしてください。私はどこでミスをしているのか分かりません。リンク(1994ナイキ)がクリックされるとURLと条件のクエリ文字列

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 

そして、あなたがクリックしたとき、最後のステップは - 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>"); 
     } 
} 
?> 

最後のステップ

<?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>"); 

を使用してコードを修正した今ではそれが必要として動作します。