Я создал форму, которая просит пользователя добавить: 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'";