2013-01-11 70 views
0

我的目標是將一個變量設置爲來自mysql查詢的字段名稱。下面將變量設置爲sql查詢的字段名稱

1. $query = "SELECT firstName, lastName FROM users WHERE userName = 'mhopkins321';" 
2. $result = mysql_query($result); 
3. $while($row = mysql_fetch_assoc($result)){ 
4.   $column1 = name_of_column($row['firstName']); 
5. } 
6. echo $column1 

     //Would return the string 

     firstName 

顯然線4一些僞代碼是真正的僞部分

+3

也許我錯了......但不會column1是「名字」?爲什麼當你靜態地將它輸入到數組時,爲什麼要動態抓取它。你只想得到表格的所有列名稱嗎? (因爲你使用的是mysql ... http://php.net/manual/en/function.mysql-list-fields.php) –

+0

是的,它對我來說很難解釋。我需要能夠有兩個變量,一個用於行的值,另一個用於字段名稱;或者是一個具有這兩個數組的單個變量。 '$ firstName = ['firstName','michael']; – mhopkins321

+0

要麼,要麼我需要設置變量的名稱作爲一個字符串在一個不同的變量 – mhopkins321

回答

1

這是你在追求什麼?

$query = "SELECT firstName, lastName FROM users WHERE userName = 'mhopkins321';" 
$result = mysql_query($result); 

$all_results = array(); 
$while($row = mysql_fetch_assoc($result)) { 
    $formatted_row = array(); 
    foreach ($row as $column => $value) { 
     $formatted_row[] = array($column, $value); 
    } 
    $all_results[] = $formatted_row; 
} 

或者只是使用$column$value如何你喜歡的foreach循環中。

或者你想專門的第一列,可以用reset($row); $first_key = key($row);訪問?

1

要命名與列名的變量?

$$row['firstName'] = $row['firstName']; 

另一種方法是這樣的:

$query = "SELECT firstName, lastName FROM users WHERE userName = 'mhopkins321'"; 
    $result = mysql_query($result); 
    $row = mysql_fetch_assoc($result); 

    foreach($r as $key=>$value){ 
     $$key = $value; 
    } 

現在,你可以通過他們的列名呼應值了。

+0

不命名變量,但設置變量值 – mhopkins321

1

這聽起來多餘的,但你總是可以使用array_search:

while($row = mysql_fetch_assoc($result)){ 
    $value = $row['firstName']; 
    $key = array_search($value, $row); 
} 

查看更多關於array_search

+0

我收到此錯誤Warning:array_search()期望參數2是數組,資源在/ home/queryTest.php中給出在線8' – mhopkins321

+0

編輯我的答案。結果不是我們應該搜索的數組;而'$ row'是我們需要的。 – Kyle

相關問題