2016-09-23 7 views
0

したがって、私は変数に列を取得したいと思います。 '配列'または 'リソースID#5'を取得

は私が Resource id #5を得る mysql_queryで2 methodes

mysql_query

mysql_fetch_array

を試してみました。 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 
     } 
     } 
    } 
関連する問題