2016-09-23 73 views
0

所以,我想獲得一個列的變量。越來越'數組'或'資源ID#5'

我試過2個methodes

mysql_querymysql_fetch_array

mysql_query我得到Resource id #5

而且

mysql_fetch_array我得到array

有人知道如何解決這個問題嗎?

$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']); 
$userRow=mysql_fetch_array($res); 
+0

沒有人再使用mysql_ *函數。嘗試mysqli_ *函數或PDO來代替 – e4c5

+4

@ e4c5校正,沒有誰喜歡小貓使用'mysql_ *'了,因爲每次使用mysql_ *'小貓被殺害 –

+0

的值是數組中的'。我相信你可以弄清楚如何讀取數組的值。 – Shadow

回答

0

假設您有名稱爲'firstname'的列。然後,你可以用這個

$res=mysql_query("SELECT * FROM users WHERE userId=".$_SESSION['user']); 
$userRow=mysql_fetch_array($res); 
$firstname = $userRow[0]['firstname']; 
echo $firstname; 

去。如果你得到的結果多行,您可以通過循環得到所有行。

0

我的理解是,你想從一個表,其中該列的值等於一個變量調用列名?如果是這樣的......

我能想到的最簡單的方法來解決,這將是一個這樣的通過你看基於列和返回值的值的所有表的搜索。此功能應該有助於完成此任務:

function columnToVariable($conn, $table, $variable){//SET PARAMETERS (CONNECTION STRING, TABLE NAME, VARIABLE SEARCH) 
     $sql = "SHOW COLUMNS FROM ".mysqli_real_escape_string($conn, $table).";"; // SQL STATEMENT 
     $result = $conn->query($sql); // RESULTS OF ALL ROWS 
     $field = array(); // ARRAY WITH COLUMNS 
     if($result->num_rows > 0){ // CHECK IF RESULTS FOUND 
     while($row = $result->fetch_assoc()){ // SET RESULTS TO ARRAY 
      array_push($field, $row['Field']); // APPEND ARRAY WITH FIELD NAME 
     } 
     } 
     foreach($field as $return){ // ITERATE THROUGH FIELD NAMES 
     $sql = "SELECT * FROM ".mysqli_real_escape_string($conn, $table)." WHERE ".mysqli_real_escape_string($conn, $return)." = '".mysqli_real_escape_string($conn, $variable)."';"; // SQL STRING 
     $result = $conn->query($sql); // QUERY RESULTS 
     if($result->num_rows > 0){ // IF FOUND, RETURN VALUE 
      return $return; // RETURN VALUE 
     } 
     } 
    }