2011-04-01 2 views
1

나는 데이터베이스 테이블의 모든 필드를 잡고 배열에 넣는 함수를 작성하고 싶습니다. 이미 데이터베이스 필드를 얻는 것은 다음과 같이 작동php : (newbie) 데이터베이스 필드 정의를 배열로

$sq = "select column_name,data_type from information_schema.columns 
where table_name='users'"; 

난 그냥 제대로 보관하는 방법을 모르겠어요.

예 : 이 데이터베이스 구조 : 이런 식으로 쿼리를 위해 PHP는이 데이터를 저장하는 가장 좋은 방법은 무엇

fieldname type  length 
-------------------------------- 
id   int  11 
username  varchar 50 
pass   varchar 50 
lastlogin date 

: 당신은 내가 필드에서 직접 데이터에 액세스하고 싶습니다 볼 수

$field = myFields["username"]; 
echo $field->id."/".$field->type."/".field->length; 

이름

+0

질문을 혼동. 게시 한 * 데이터베이스 구조 *가 실제로 열 정의입니까? 예 : id, username, pass 및 lastlogin이라는 네 개의 열이 있거나 사용자, 유형 및 길이라는 세 개의 열이 있습니까? – Nick

답변

2

먼저 데이터베이스에 연결해야합니다. 그런 다음을 수행하십시오

$r = mysql_query('SELECT COLUMN_NAME AS fieldname, 
          DATA_TYPE AS type, 
          CHARACTER_MAXIMUM_LENGTH AS length 
        FROM information_schema.columns 
        WHERE table_name = "users" AND column_name = "username"'); 

if ($r) 
{ 
    $field = mysql_fetch_object($r); 

    // $field->type, $field->length, etc. 
} 
+1

귀하의 대답은 첫 번째 행에 대해서만 발생합니까? – Nick

+0

나는 나의 질문을 업데이트했다 - 나는 데이터베이스 필드와 데이터베이스에 대해 이야기하고있다. information_schema - thx – Fuxi

+0

@Fuxi 아하. 나는 내 대답을 업데이트했고, 당신이 찾고있는 것을해야한다. :) –

1
$sql = "YOUR QUERY HERE"; 
$res = mysql_query($sql); 

while ($rowobj = mysql_fetch_object($res)) { 
    // do what you want to do with $rowobj 
    echo $rowobj->column_name1 . "<br />\n"; 
    echo $rowobj->column_name2 . "<br />\n"; 
    // ...rest of code... 
    } 

는 $의 SQL 변수에 검색어를 넣고 당신이 당신의 쿼리에서 선택한 열이 while 루프에서 column_nameX를 교체하십시오.

1
$query = mysql_query("SELECT * FROM table"); 

$result = array(); 
while($row = mysql_fetch_array($query)) 
{ 
    $username = $row['username']; 

    unset($row['username']); 

    $result[$username] = (object)$row; 
} 

그럼 당신은 사용하여 액세스 할 수 있습니다

$result['username']->id