2015-04-12 37 views
0

我有一個數據庫表,由填寫表單填寫。PHP的訪問數據數組與數據庫

該表由ID,usr_ID,名稱等等組成。 我正在製作wordpress中的自定義表格列表,以及..我不是最好的在foreach。

我怎麼會去有關循環通,只顯示每個名稱和usr_id一次當

例如:

row 1: 
id = 1, usr_id = 5, name = Alexander 
row 2; 
id = 2, usr_id = 4, name = james 
row 3; 
id = 3, usr_id = 5, name = Alexander 
row 4 
id = 4, usr_id = 4, name = james 

如何將我做一個foreach語句,將打印出:

usr_id = 5, name = Alexander 
usr_id = 4, name = james 

的目的是爲了讓每個名稱都可點擊,然後只爲特定的usr_id做一個foreach語句,點擊它查看每個人提交的內容用戶

+0

你的查詢是做什麼的?它是數組輸出還是對象輸出? –

+0

數組輸出:) – Ghostetr

+0

使'distinct'查詢而不是獲取所有行 – charlietfl

回答

1

如何將我做一個foreach語句,將打印出:

,你可以用這個陣列輸出:

foreach ($query as $v) { 
    echo "usr_id = ".$v['usr_id']." , name = ".$v['name']; 
} 

你可以過一個陣列輸出做到這一點:

foreach ($query as $key => $list){ 
    echo $list['someindex']; 
} 

但我不知道你是否想那樣...

有關完整文檔有關foreach,請閱讀this ... :)

0

假如你有$array包含您的數據。如果$array是一個關聯數組:

foreach($array as $a) 
{ 
    echo "usr_id = " . $a['usr_id'] . "- name = ". $a['name']; 
} 

如果$array是索引數組:

foreach($array as $a) 
{ 
    echo "usr_id = " . $a[1] . "- name = ".$a[2]; 
} 
0
$dbhost = 'localhost'; $dbuser = 'DB USER'; $dbpass = 'DB USER PASSWORD'; $dbname = 'DB NAME'; 
    $db = new PDO('mysql:host='.$dbhost.'; dbname='.$dbname, $dbuser, $dbpass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 

    foreach($db->query('SELECT id, usr_id, name FROM THE-TABLE WHERE id>=1') as $row) { 
     $id = $row['id']; 
     $usr_id = $row['usr_id']; 
     $name = $row['name']; 

     // DO WHATEVER HERE 

    } 

,或者您表示該表有許多列...使用通配符

$dbhost = 'localhost'; $dbuser = 'DB USER'; $dbpass = 'DB USER PASSWORD'; $dbname = 'DB NAME'; 
     $db = new PDO('mysql:host='.$dbhost.'; dbname='.$dbname, $dbuser, $dbpass, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)); 

     foreach($db->query('SELECT * FROM THE-TABLE WHERE id>=1') as $row) { 
      $id = $row['id']; 
      $usr_id = $row['usr_id']; 
      $name = $row['name']; 

      # the rest of the columns 

      // DO WHATEVER HERE 

     } 
+0

我認爲我一直對我的問題有點不清楚,Alexander帶usr_id 5可能使用了20次提交表單,而james和usr_id 4可能使用過它90次我將如何去只打印每個人1次的目的是使每個名稱可點擊,然後列出所有1人已提交 – Ghostetr

0

只是爲了簡化事物的使用

$name_arr=array(); 
foreach ($query as $v) 
{ 
if(in_array($v['name'],$name_arr)==false) 
    { 
    $name_arr[]=$v['name']; 
    echo "usr_id = ".$v['usr_id']." , name = ".$v['name']; 
    } 
} 

這種方式每個名字只有一個