2013-10-20 134 views
0

我想從MySql表中返回值,似乎能夠得到除我需要的東西以外的所有東西!PHP,從數組返回值

PHP:

<?php 
session_start(); 
include('config.php'); 
$user_check=$_SESSION['login_user']; 

$sql_rec = "select UserID from useradmin where username='$user_check' "; 
$rs_rec = mysql_query($sql_rec); 
$data_rec = mysql_fetch_object($rs_rec); 

$userID = $data_rec->UserID; 

$sql_fn = "select * from Candidates where UserID='$userID' "; 
$rs_fn = mysql_query($sql_fn); 
$row = mysql_fetch_row($rs_fn); 
$data_fn = $row['contactno']; 

print $sql_fn; 
print $data_fn; 
print $row; 

?> 

$ sql_fn是給我正確的結果

$行是給我的 '陣'

但$ data_fn是給我什麼。

基本上我試圖填充一個文本字段這樣的結果:

HTML:

<label for="contactno">Contact Number</label> <br> <input type="test" name="contactno" id="contactno" class="input_field" value="<?php echo $row['contactno'];?>"> 

有人能指出哪裏我已經錯了嗎?

謝謝。

+0

添加這行'var_dump($ row);'告訴我們你得到了什麼。可能你的專欄名稱不是'contactno' – Iazel

回答

0

我認爲你需要這樣的:

$row = mysql_fetch_array($rs_fn, MYSQL_ASSOC); 

並與mysql_num_rows($query) > 0檢查您的查詢,以確保它返回的數據,否則你會從mysql_fetch_*得到錯誤。

順便說一句,mysql函數已被棄用。使用mysqli或PDO或pg。

+0

我做了這個改動,但是'$ data_fn;'似乎還沒有返回,不幸的是?我已經完成了@Joe T的建議,可以看到陣列有我想要的。我只是無法得到我想要的:) – Mcam435

+0

@ Mcam435那麼在這種情況下,如果該索引不存在,或者如果它存在,那麼通常會向您彈出一個錯誤消息,那麼您沒有在該索引中存儲任何內容。 – MahanGM

+0

其實,在上面添加你的代碼後,它現在正在工作,我只是輸入了錯誤。它只是'
「>」現在不起作用(但是我確實已經將結果打印在頁面的頂部)。 – Mcam435

0

print_r($row);打印陣列的內容,那應該會告訴你你有什麼。 (我想MahanGM是正確的,你期待一個關聯數組時,你只得到了一個純數字的)關於使用print_r的

更多信息:http://php.net/manual/en/function.print-r.php

PS:使用mysqli新的發展

0

_fetch_row返回索引數組。如果您按列名訪問,則需要_fetch_assoc

此外,要輸出數組,請使用var_dump

0

$ sql_fn =「select * from Candidates where UserID ='$ userID'」; 您好

您的UserID字段如何存儲,是整數類型或字符串,如果它是一個數字,那麼你不會需要一個單一的引號。 你一定會得到$ sql_fn,因爲它只是一個查詢字符串。 你需要檢查你的返回數組中的內容。 檢查您的表中的contactno是否爲正確的列名稱。只需簡單print_r($ row) 然後你可以看到答案