【问题标题】:Query string in url and conditionsurl中的查询字符串和条件
【发布时间】:2017-10-12 01:59:08
【问题描述】:

请帮助我完成以下清单。我不知道我在哪里犯了错误。

我的桌子:

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
1995 O2

一旦点击链接(1994 Nike),就会出现:

1994 Nike Book
1994 Nike DVD

最后一步是点击 - 1994 Nike Book:

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

是不是结构不好?

感谢您的 cmets。

【问题讨论】:

  • “它是一个坏结构吗?” - 也许也许不是,但你使用的 api 是。
  • ... 或者这就是问题所在?您的 URL 应该是 &lt;a href=\"index.php?year=$year&amp;distrubtor=$distributor\"&gt;,然后您可以通过 $_GET 访问它们。年份在$_GET['year']
  • 这里使用的codeigniter在哪里?

标签: php url linked-list query-string


【解决方案1】:

感谢您的帮助。

我已经修改了代码使用

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

现在它可以正常工作了。

【讨论】:

    猜你喜欢
    • 2017-06-10
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多