2012-11-27 5 views
2

특정 테이블에서 모든 열 이름과 값을 가져오고 싶습니다. 이 테이블의 필드는 고정되어 있지 않으므로 사용자가 필드 하나를 추가하고 제거 할 수도 있습니다. 내가하고 싶은 일은 모든 컬럼 이름을 검색하고 그 값을 얻는 것입니다. 지금까지 필자는 열 이름을 검색하고 그 중 하나의 값을 가져왔다. 나는 왜 내가이 결과를 얻었는지 알지만, 나는 그것을 고치는 법을 모른다.for 루프 PHP에서 열 이름과 값 가져 오기

//I edited this sql, normally the table value and id are variable 
$sql = "SELECT * FROM ".$_POST['moduleName']." WHERE modItemID= ".$_POST['modItemID']; 
$query = mysql_query($sql); 
$columns = mysql_num_fields($query); 
for($i = 1; $i < $columns; $i++) { 

//read field name 
    $fieldName = mysql_field_name($query,$i); 
    while($row = mysql_fetch_assoc($query,$i)){ 
    echo $fieldName."=".$row[$fieldName]; 
    } 

} 

결과 : 나암 = Ketting는

+0

제대로 쿼리를 작성 (열 이름) 주 데이터베이스에서 모든 데이터를 얻을 수 –

+1

inb4' – NappingRabbit

+0

당신이 놓친 오타가 그 것이다 MySQL은, 사용 PDO 또는 mysqli'을 사용하지 말아' "' ? –

답변

4

mysql_fetch_assoc 연관 배열을 반환한다. foreach 루프를 사용하여 배열의 각 항목에 대한 key => 값을 얻을 수 있습니다. 문제에 대한

$sql = "SELECT * FROM products WHERE modItemID= 14"; 
$query = mysql_query($sql); 
$columns = mysql_num_fields($query); 
for($i = 1; $i < $columns; $i++) { 

//read field name 
    $fieldName = mysql_field_name($query,$i); 
    while($row = mysql_fetch_assoc($query,$i)){ 
    foreach($row as $column=>$value) { 
     echo "$column = $value\n"; 
    } 
    echo $fieldName."=".$row[$fieldName]; 
    } 

} 
+0

고맙습니다! 작동하도록하기 위해 무엇을 사용해야하는지 모르겠습니다. – Tamara

+0

위의 코드는 사용자가 원하는 것을 제공하지만 사용자가 추가/삭제하는 가변 개수의 열을 가지고 있지만 꽤 나쁜 아이디어 같아. 각 사용자에 대해 여러 행을 포함 할 수있는 테이블을 갖는 것이 더 좋으며 필요에 따라 해당 행을 추가/삭제할 수 있습니다. – Kickstart

3

사실 정말 쉬운 솔루션과 같이, foreach는 루프를 사용하는 것입니다 :

while($row = mysql_fetch_assoc($query)) 
{ 
    foreach($row as $key => $value) 
    { 
     echo "$key=$value"; 
    } 
} 
0

그냥 데이터베이스 이름, 사용자 이름, 암호 및 테이블 이름을 넣습니다.

당신은

<?php 

function qry($q){ 

    global $qry; 
    try { 
    $host = "?"; 
    $dbname = "?"; 
    $username = "?"; 
    $password = "?"; 
    $dbcon = new PDO("mysql:host=$host; 
    dbname=$dbname","$username","$password"); 
} 
catch (Exception $e) { 

    echo "ERROR ".$e->getMEssage(); 

} 

    $qry = $dbcon->query($q); 
    $qry->setFetchMode(PDO:: FETCH_OBJ); 

    return $qry; 

} 


echo "<table>"; 

/*Get Colums Names in table row */ 
$columns = array(); 

$qry1= qry("SHOW COLUMNS FROM Your_table_name"); 

while (@$column = $qry1->fetch()->Field) { 
    echo "<td>".$column."</td>"; 
    $columns[] = $column; 

} 

echo "<tr>"; 

/* Fetch all data into a html table * 

$qry2 = qry("SELECT * FROM Your_table_name"); 

while ($details = $qry2->fetch()) { 

    echo "<tr>"; 
    foreach ($columns as $c_name) { 
    echo "<td>".$details->$c_name."</td>"; 

} 

} 

echo "</table>"; 

?> 
관련 문제