Here is a PHP code, that can be used to count data from SQL. This code displays the data in a table, I want to convert these table values (or arrays) into individual php strings. How can I do that ? I tried many methods, main issue is my lack of proper knowledge in PHP. I hope someone will help !
<?php $hostname="your_hostname"; $username="your_username"; $password="your_password"; $db = "your_dbname"; $dbh = new PDO("mysql:host=$hostname;dbname=$db", $username, $password); foreach($dbh->query('SELECT country,COUNT(*) FROM author GROUP BY country') as $row) { echo "<tr>"; echo "<td>" . $row['country'] . "</td>"; echo "<td>" . $row['COUNT(*)'] . "</td>"; echo "</tr>"; } ?>
and the result is
+-----------+----------+ | country | COUNT(*) | +-----------+----------+ | Australia | 2 | | Brazil | 1 | | Canada | 2 | | Germany | 1 | | India | 1 | | UK | 4 | | USA | 4 | +-----------+----------+
I want to use php string to use it anywhere else in the script/page.
For example if I use $Australia
or $value[0]
, the string value should be “2
“, how can I achieve that ?
Advertisement
Answer
With your current approach you can create a new array in your foreach
, then use that array elsewhere.
foreach($dbh->query('SELECT country,COUNT(*) FROM author GROUP BY country') as $row) { $countries[$row['country']] = $row['COUNT(*)'];
elsewhere you’d use $countries['Australia']
. You could use strtolower
as well so keys are easier to match up.
Another approach though may be using fetchall
.
$sth = $dbh->query('SELECT country,COUNT(*) FROM author GROUP BY country'); $result = $sth->fetchAll(); foreach($result as $row){ //same iteration as before }
with this approach you won’t necessarily know the key
s. If you want the country with most/least views though this could be easier.