Эхо определенные строки из базы данных mysql

Я создал форму, которая просит пользователя добавить: first_name, last_name, location, status

Через некоторое время я получил 5 входов. Таблица mysql называется пользователями, а данные таблицы выглядят следующим образом:

id first_name location status == ========== ======== ======== 1 Chris UK Married 2 Anton Spain Single 3 Jacob UK Single 4 Mike Greece Married 5 George UK Married 

Также, как я получаю входные данные через метод POST. Так:

 $firstname=$_POST['FIRST_NAME']; // First Name: <input type="text" name="FIRST_NAME"> $location=$_POST['LOCATION']; // Location: <input type="text" name="LOCATION"> $status=$_POST['STATUS']; // Status: <input type="text" name="STATUS"> 

Я создал запрос для выбора всех пользователей из Великобритании, которые состоят в браке:

 $query = "SELECT * FROM users WHERE location='UK' AND status='Married'"; $result = mysqli_query($dbc,$query); //$dbc is the connection to my database $row = mysqli_fetch_array($results, MYSQLI_BOTH); 

Другими словами:

 id first_name location status == ========== ======== ======== 1 Chris UK Married 5 George UK Married 

Вопросов:

1) Является ли массив строк $ row ниже:

 $row= array( array(1 Chris UK Married), array(5 George UK Married) ); 

2) Как выполнить эхо-адрес содержимого базы данных после внедрения фильтрации. Где WHERE location = 'UK' AND status = 'Married'?

мне нужно, чтобы это было так:

 Hello Chris! You are from UK and you are married! Hello George! You are from UK and you are married! 

Я знаю, что мне нужно использовать foreach loop (эхо-массивы), но я пробовал его, и он не работает. Одна из вещей, которые я пробовал, – это то, что я нашел в php.net:

Распаковка вложенных массивов со списком ()

(PHP 5> = 5.5.0)

PHP 5.5 добавил возможность итерации по массиву массивов и распаковку вложенного массива в переменные цикла путем предоставления списка () в качестве значения.

Например:

 <?php $array = [ [1, 2], [3, 4], ]; foreach ($array as list($a, $b)) { // $a contains the first element of the nested array, // and $b contains the second element. echo "A: $a; B: $b\n"; } ?> 

Когда я использую выше, я получаю ошибку ниже:

 Parse error: syntax error, unexpected T_LIST in C:\wamp\www.... 

Какие-либо предложения?

Как я понимаю, мне как-то нужно связать ID с другими данными.

Заранее спасибо.

Вы можете использовать что-то вроде этого:

 $query = "SELECT * FROM users WHERE location='UK' AND status='Married'"; $result = mysqli_query($dbc,$query); while($row = mysqli_fetch_array($result, MYSQLI_BOTH)){ printf("Hello %s! You are from %s and you are %s!\n", $row['first_name'], $row['location'],$row['status']); } 

mysqli_fetch_array возвращает одну строку. Вам понадобится цикл, чтобы получить все строки. Вы можете получить значение из строки и поместить его в строку, например:

 while($row = mysqli_fetch_array($results, MYSQLI_BOTH)){ echo "Hi ".$row['first_name'] . " You are from ".$row['location']." and you are ".$row['status']."!"; } 

Для Вопроса 2: Вы могли бы добавить формат в sql-запросе, я думаю:

 "SELECT OUTPUT = "Hello" + name + "! You are from UK and you are married!" FROM users WHERE location='UK' AND status='Married'";