Reputation: 1841
I have created a form that ask the user to add: first_name, last_name,location,status
After some time i have received 5 inputs. The mysql table is named users and the table data are like below:
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
Also the way i am receiving the inputs its via POST method. So:
$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">
I created a query to select all users from UK that are married:
$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);
In other words:
id first_name location status
== ========== ======== ========
1 Chris UK Married
5 George UK Married
Questions:
1) Does the $row array look like below:
$row= array(
array(1 Chris UK Married),
array(5 George UK Married)
);
2) How do i echo the content of the database after implementing the filtering WHERE location='UK' AND status='Married'?
i need it to be like this:
Hello Chris! You are from UK and you are married!
Hello George! You are from UK and you are married!
I know that i have to use foreach loop (echo arrays) but i have tried it and it doesnt work.One of the things i tried was something i found in php.net:
Unpacking nested arrays with list()
(PHP 5 >= 5.5.0)
PHP 5.5 added the ability to iterate over an array of arrays and unpack the nested array into loop variables by providing a list() as the value.
For example:
<?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";
}
?>
When i use the above i am receiving the error below:
Parse error: syntax error, unexpected T_LIST in C:\wamp\www....
Any suggestions?
As i understand, i somehow have to link the ID with the other data..
Thanks in advance.
Upvotes: 2
Views: 11358
Reputation: 22656
mysqli_fetch_array
returns a single row. You'll need to loop to get all rows. You can get the value from the row and place it in a string like:
while($row = mysqli_fetch_array($results, MYSQLI_BOTH)){
echo "Hi ".$row['first_name'] . " You are from ".$row['location']." and you are ".$row['status']."!";
}
Upvotes: 1
Reputation: 1420
You may use something like this:
$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']);
}
Upvotes: 3
Reputation: 150
For Question 2 : You could add the format in the sql query itself i guess:
"SELECT OUTPUT = "Hello" + name + "! You are from UK and you are married!" FROM users WHERE location='UK' AND status='Married'";
Upvotes: 0