2011-07-10 31 views
1

我有2個文件適用於此問題,myaccount.phptest5.phptest5連接到MySQL數據庫,它應該獲取一個單元格的內容並將其打印出來。從mysql打印單元格使用where和php會話變量

<?php 

mysql_connect("mysql8.000webhost.com", "a5470121_tahahn5", "travis2") or 
    die(mysql_error()); 
mysql_select_db("a5470121_rhs3") or die(mysql_error()); 


$result = mysql_query(
    "SELECT `user_name`,`Classperiod1` FROM users 
    WHERE user_name ='" . $_SESSION['user_name'] . "'" 
) or die(mysql_error()); 


$row = mysql_fetch_array($result); 
echo $row['user_name']; 

?> 

第二個文件myaccount.php應該把打印輸出從PHP文件中的HTML表單

<h3> Your First ClassPeriod is<?php echo $row['Classperiod1']?></h3> 

我測試過這一點,並使用具有特定的用戶名這兩個文件(ex.John,安德魯等),它會打印出課程時期的罰款。當試圖使用WHERESESSION變量出於某種原因停止打印。它甚至不顯示任何錯誤消息。 對代碼中的任何錯誤抱歉,或者這是一個非常愚蠢的問題。我幾乎是一個絕對的初學者PHP和MySQL的關注

+0

這是非常糟糕的做法是使用的用戶名。嘗試使用主鍵 - 用戶標識代替。 – Eric

回答

0

你可能想從你的問題中刪除你的mysql的詳細信息!

您是否使用session_start()函數開始會話? http://php.net/manual/en/function.session-start.php

我還沒有看到你設置$_SESSION['user_name']

你可以嘗試呼應您已經構造,看看它包含了MySQL查詢,這可以幫助找出什麼是錯的,我會猜測會話變量將是空的。

例如:

$sql = "SELECT user_name,Classperiod1 FROM users WHERE user_name ='" . $_SESSION['user_name'] . "'"; 
echo $sql; 
$result = mysql_query($sql) or die(mysql_error()); 
+0

我使用open osurce php登錄腳本http://php-login-script.com/ 我的account.php文件比我在我的問題中顯示的要多 myaccount.php http://pastie.org/2194019 dbc.php(包含在我的賬戶) http://pastie.org/2194027 –

+0

發現答案0​​了Syntex是細我忘 ,在文件的login.php $ _SESSION [ 'USER_NAME'] = $ FULL_NAME 因此將用戶名(不是會話變量)更改爲full_name固定查詢 sql =「SELECT full_name,Classperiod1 FROM users WHERE full_name ='」。 $ _SESSION ['user_name']。 「'」; $ result = mysql_query($ sql)or die(mysql_error()); $ row = mysql_fetch_array($ result); echo $ row ['Classperiod1']; ?> –