簡體   English   中英

如何在php中的另一個頁面中打印會話數組變量值

[英]how to print the session array variable values in another page in php

這是打印所有主題名稱的程序,它是student table.i的字段名稱。將所有主題名稱存儲到一個數組中,我必須在另一個頁面中打印該數組值。所以我將該數組存儲到會話變量中但是在下一頁打印該數組時,它只打印為“數組”。

<?php

session_start();
$con=mysql_connect("localhost","root","");  
mysql_select_db("cse",$con);

$sql="select * from studenttable where username='saravanan'";

$calname=array();
$i=0;
mysql_query($sql);
while($rs=mysql_fetch_field($result))
{
         $colname[$i]=$rs->name;
         $i++;


}
$_SESSION['subject']=$calname;
?>


in the next page i print the session variable using 


<?php
session_start();
echo $_SESSION['subject'];
?>

but i am getting "Array"only as output.
how to print the all value of array what i stored into it already?

當然,你只是將Array作為輸出..你試圖將數組轉換為字符串而沒有適用的函數。

如果要以字符串形式打印整個數組,請嘗試print_r($array);

此外,您當然可以使用字符串將數組連接在一起,使用implode() ..最后但並非最不重要的是,如果您需要它們,請務必使用它們的鍵來訪問數組的各個部分:

echo $_SESSION['subject']['somekeyhere'];

但是,從您的代碼$calname ,您實際上還有一些錯別字會阻止您獲取所需的數據: $calname與您在while循環中使用的$colname變量...將其$calname為空數組你的課程。

更新1:

打印整個數組的另一種方法..或者更確切地說,回顯每個單獨的值:

foreach ($array as $key => $value) {
    echo $value . "<br />";
}

無關:

我不建議使用mysql_*函數來編寫新代碼。 它們不再維護,社區已開始棄用過程 看到紅色的盒子 相反,您應該了解准備好的語句並使用PDOMySQLi 如果您無法確定哪個, 本文將對您有所幫助。 如果你選擇PDO, 這是一個很好的教程 另請參閱為什么我不應該在PHP中使用mysql函數?

使用PDO的上述代碼示例(也修復了拼寫錯誤):

try {
    $dbh = new PDO("mysql:host=localhost;dbname=cse", "root", "");
    $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
    echo "Error!  Could not connect to database: " . $e->getMessage() . "<br/>";
    die();
}

$stmt = $dbh->prepare("select * from studenttable where username=:username");
$stmt->bindValue(":username","saravanan");
$stmt->execute();

$calname = array();
$i = 0;
while ($rs = $stmt->fetch()) {
     $calname[$i]=$rs['name'];
     $i++;
}
$_SESSION['subject']=$calname;

嘗試使用<pre>標記添加以更清晰的視圖獲取$ _SESSION。

    echo '<pre>';
    print_r($_SESSION);
    echo '</pre>';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM