数组未显示,注意:数组到字符串的转换

时间:2014-03-18 17:21:49

标签: php sql arrays

我正在尝试显示数组的内容。我有一个SELECT查询,它使用WHERE语句从数据库中传输两行;

<?php
session_start();
include 'connection.php';
$inspectit = array();
$update1 = $_POST['inspect'];
$query1 = "SELECT title, reason FROM daysoff WHERE DATE(start) = '$update1' AND gighold     = 1";
$day = mysql_query($query1); 
while($requesting = mysql_fetch_array($day)) {                           
$inspectit[] = $requesting;
}
$_SESSION['inspect'] = $inspectit; 
header('Location: '. $_SERVER['HTTP_REFERER']) ;
?>

我将会话变量放入一个新变量$inspect,在另一个页面上定义。然后我尝试使用;

显示数组
<?php
session_start();
$inspect = $_SESSION['inspect'];
if($inspect == true) {
echo " </br>Name: </br><a> ". implode($inspect) ."</a></br></br>";
unset ($_SESSION['inspect']);
} 
?>

如果i var_dump($inspect)存在所有预期数据,但它看起来像是一个包含另一个数组的数组。如果我执行如上所示的代码,则会给出数组到字符串转换的通知。我哪里错了?

5 个答案:

答案 0 :(得分:0)

<?php
    session_start();
    $inspect = $_SESSION['inspect'];
    if($inspect) {
        echo " </br>Name: </br><a> ". implode($inspect) ."</a></br></br>";
        unset ($_SESSION['inspect']);
    } 
?>

答案 1 :(得分:0)

您正在将一个查询结果数组添加到数组中。试着改变:

从:

while($requesting = mysql_fetch_array($day)) {    
    $inspectit[] = $requesting;                     
}

为:

$inspectit = mysql_fetch_array($day);

答案 2 :(得分:0)

$_SESSION['inspect']是一个数组,所以你可以使用像

这样的检查
$inspect = $_SESSION['inspect'];
if(count($inspect)>0) {

而不是

if($inspect == true) {

答案 3 :(得分:0)

<?php
  session_start();
  $inspect = $_SESSION['inspect'];
  if($inspect) {
    echo " </br>Name: </br><a> ". implode("-",$inspect) ."</a></br></br>";
    unset ($_SESSION['inspect']);
  } 
 ?>

或者您也可以使用empty()功能

 <?php
  session_start();
  $inspect = $_SESSION['inspect'];
  if(!empty($inspect)) {
    echo " </br>Name: </br><a> ". implode("-",$inspect) ."</a></br></br>";
    unset ($_SESSION['inspect']);
  } 
 ?>

答案 4 :(得分:0)

使用$inspectit = array();将$ inspectit设置为数组,然后尝试将字符串(或非数组)$_SESSION['inspect']设置为等于该数组。您可以将多个$_SESSION变量迭代到$inspectit的每次迭代,如下所示:

$n=0;
while($requesting = mysql_fetch_array($day)) {                           
 $_SESSION['inspect'+$n] = $requesting;
 $n++;
}
$_SESSION['inpect_count']=$n;

因此,您将了解使用$_SESSION['inpect_count']

设置的变量数量