2015-04-12 2 views
0

У меня есть таблица db, которая заполняется формой отправки.массив данных доступа php с foreach

таблица состоит из 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 

как бы я сделать Еогеасп заявление, что бы распечатать:

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

Цель состоит в том, чтобы сделать каждое имя кликабельным, а затем сделать заявление foreach только для конкретного пользователя usr_id, чтобы просмотреть, что было представлено каждым человеком Пользователь

+0

, что ваш запрос, чтобы сделать это? это вывод массива или выход объекта? –

+0

array output :) – Ghostetr

+0

сделать запрос 'distinct' вместо того, чтобы получать все строки – charlietfl

ответ

1

как бы я сделать Еогеасп заявление, что бы распечатать:

вы можете использовать для вывода массива:

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

Я думаю, что я немного не разбирался в моем вопросе, Александр с 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']; 
    } 
} 

таким образом, каждое имя приходит только один

Смежные вопросы