如何在url中传递数组参数 - PHP

时间:2016-12-14 19:59:28

标签: php

我正在尝试传递网址中的参数,但是收到此错误: * implode():在*

中传递的参数无效

我知道原因是我将字符串作为参数而不是数组传递,但是如何直接传递数组呢?

我的代码:

$all_prod_cat="SELECT * FROM products GROUP BY product_category";
$run_all_prod_cat = mysqli_query($con,$all_prod_cat);

$sql= "SELECT * FROM products"; 

if(isset($_GET['product_category']) && $_GET['product_category']!="") 
    {
        $risperpag = 16;            
        $limit = $risperpag * $_GET['p'] - $risperpag;

        $prod_cat = $_GET['product_category'];
        $sql.=",categories WHERE product_category IN ('".implode("','",$prod_cat)."') AND product_category = cat_id LIMIT $limit,$risperpag";

        $get_cat_pro_total = "SELECT * FROM products,categories WHERE product_category IN ('".implode("','",$prod_cat)."') AND product_category = cat_id";      


$run_cat_pro_total = mysqli_query($con,$get_cat_pro_total); 
$num_cat_pro_total = mysqli_num_rows($run_cat_pro_total);

$npag = ceil($num_cat_pro_total / $risperpag);

$p = $_GET['p'];    

echo "<ul>";

    if($p!=1)
    {           
        echo '<li class="numPagine"><a href="lista_prodotti.php?sort_price=&product_category='.urlencode($stringa).'&p='.($p-1).'">← Indietro</a></li>';
    }

     for($i=1;$i<=$npag;$i++){

          if($p==$i)
          {

            echo '<li class="numPagine pagina_attuale">'.$i.'</li>';
          }
          else
          {               
            echo '<li class="numPagine"><a href="lista_prodotti.php?sort_price=&product_category='.urlencode($stringa).'&p='.$i.'">'.$i.'</a></li>';
          }

    }               

    if($p!=$npag)
    {           
        echo '<li class="numPagine"><a href="lista_prodotti.php?sort_price=&product_category='.urlencode($stringa).'&p='.($p+1).'">Avanti →</a></li>';                      

    }           

echo "</ul>";           

    }       

问题是当我设置urlencode参数时,我试图序列化,但是我得到了另一个错误。我想我应该反序列化,但我不知道确切的意思。

提前致谢。

1 个答案:

答案 0 :(得分:0)

可以使用http_build_query函数生成带有参数的url。

!msg.IsRead