This question already has answers here:
Object of class mysqli_result could not be converted to string
(5 answers)
Closed 1 year ago.
I'm having some issues with my SQL Query. I am trying to run an sql query that saves the output into a variable and then print the variable in a different section of code:
Query:
$sql = "select Count(distinct `Customer Name`) as columnNameCount from allservers";
$result = mysqli_query($DBcon, $sql);
Display variable:
<h3 align="center"><?php echo $resultarr;?></h3>
Error message:
Catchable fatal error: Object of class mysqli_result could not be converted to string
<?php
$sql = "select Count(distinct `Customer Name`) as columnNameCount from allservers";
$result = mysqli_query($DBcon, $sql);
$row = mysqli_fetch_row($result);
?>
<h3 align="center"><?php echo $row[0];?></h3>
Remember: Mysqli_query() return an Object Resourse to your variable $result! Not a String!
You can't directly use it as $result variable!
If you have multiple results, you can loop:
while ($row = $result->fetch_assoc())
echo $row['some_row'];
else you have to fetch as row and display according to index:
$row = $result->fetch_row();
echo $row[0]; // $row[index]
Read The Documentaion
Related
This question already has answers here:
SELECT COUNT(*) AS count - How to use this count
(5 answers)
Closed 1 year ago.
I'm trying to get the sum of a column from my database. When I try this code I get the error Undefined index: sum(col_1). How can I do this? I'm a real beginner so keep it a bit simple.
$sql = "SELECT * FROM table_1";
$run = mysqli_query($conn, $sql);
while($rows = mysqli_fetch_assoc($run)){
$col_ans[1] = $rows['sum(col_1)'];
echo $col_ans[1];
}
You can easily find sum of a column this way.
$sql = "SELECT sum(col_1) as col_1_sum FROM table_1";
$run = mysqli_query($conn, $sql);
while($rows = mysqli_fetch_assoc($run)){
echo $rows['col_1_sum'];
}
Your problem is that you didn't use the SUM() function inside your query, so you won't get any sum from the query
You can also try the following:
$query = "SELECT productName, SUM(productQty) AS 'Products Ordered'
FROM ctrlaproducttab
GROUP BY productName
";
$result = mysqli_query($con,$query);
while($row = mysqli_fetch_assoc($result))
{
$productName = $row['productName'];
$itemsOrdered = $row['Products Ordered'];
}
Notice that we're giving an alias name Products Ordered to the result of expression SUM(productQty), and now we can use this alias name as an index in the associative array returned by mysqli_fetch_assoc()
This question already has answers here:
Object of class mysqli_result could not be converted to string
(5 answers)
Closed 1 year ago.
i have to find max value from database. for this purpose i have used max() with where clause but when i echo the result then i get this error.
Catchable fatal error: Object of class mysqli_result could not be converted to string in
i have searched alot and tried this,, this and this and some of others but found nothing helpfull...
my code is :
include('connection.php');
$qry = "SELECT MAX(week) FROM reservation WHERE status= 1" ;
$result = mysqli_query($connection,$qry2);
echo $result ;
on the same page other query is working fine but this one is not..
what i want :
basically i want to get the maximum week number where status is = 1
Hope this helps you
$result = mysqli_query("SELECT MAX(week) AS max_week reservation WHERE status= 1");
$row = mysqli_fetch_array($result);
echo $row["max_week"];
Here is corrected code:
include('connection.php');
$qry = "SELECT MAX(week) as max_week FROM reservation WHERE status= 1" ;
$result = mysqli_query($connection,$qry);
while($row = mysqli_fetch_array($result)) {
echo $row['max_week'];
}
This question already has answers here:
SELECT COUNT(*) AS count - How to use this count
(5 answers)
Closed 1 year ago.
I'm currently receiving this error message:
"Catchable fatal error: Object of class mysqli_result could not be
converted to string in ".
I'm trying to count the number of rows in a table. I know you can also use mysqli_num_rows but I thought I could just use SELECT COUNT ( * ) FROM table but it doesn't seem to be working. How can I get the Count(*) to work?
My code:
$query = "SELECT COUNT(*) FROM category";
$select_all_categories = mysqli_query($connection, $query);
echo "<div class='huge'> $select_all_categories </div>"
This won't work because mysqli_query returns an object filled with data, data that needs to be fetched by either mysqli_fetch_array or mysqli_fetch_assoc.
If you desire to get the count, you would need to do this instead:
$query = "SELECT COUNT(*) as count FROM category";
$select_all_categories = mysqli_query($connection, $query);
$data = mysqli_fetch_assoc($select_all_categories);
echo "<div class='huge'> " . $data['count']. " </div>"
$select_all_categories is an object, it is not a simple string. Therefor, you cannot use echo with it.
You will need to get the actual results before you can even get to the point of being a viable string.
In your case, for a simple count:
$query = "SELECT COUNT(*) AS 'count' FROM category";
$select_all_categories = mysqli_query($connection, $query);
$rows = $select_all_categories->fetch_assoc();
$string = $rows[0]['count'];
echo "<div class='huge'> $string </div>"
Notice that I gave the column the alias of count in the MySQL Query.
Your query (including COUNT(*)) is fine, it is not generating the error here. The error you're getting is a PHP Error - the script itself has issues. PHP is telling you that you can't echo an object. You can only echo strings, though PHP will convert most data types to strings for you (like integers for example) if you try to echo them.
$select_all_categories variable it's a object, you can read about it in documentation. You can use with that methods fetch_all, fetch_assoc, fetch_row, etc.
In your case I recommend use fetch_row, example:
<?php
$connection = new mysqli('127.0.0.1', 'root', 'www', 'ccc');
$select_all_categories = $connection->query('SELECT COUNT(*) FROM `category`');
var_dump($select_all_categories->fetch_row()); // fetch_row() will return "1" for my database
This question already has answers here:
SELECT COUNT(*) AS count - How to use this count
(5 answers)
Closed 8 years ago.
Here is the full error.
Catchable fatal error: Object of class mysqli_result could not be converted to string in
.../test/submit.php on line 11.
Here are the lines of code it is referring to.
$classId = $mysqli->query("SELECT COUNT(id) FROM class");
$classId += 1;
echo $classId;
I'm not sure if the statement isn't a returning an int, because when I'm in phpMyAdmin and do the same SQL statement, I get an int returned.
Thanks.
You need to fetch the object first. Something like the following should suffice:
$result = $mysqli->query("SELECT COUNT(id) as `count` FROM class");
$row = $result->fetch_object();
$classId = $row->count;
$classId += 1;
echo $classId;
This question already has an answer here:
What to do with mysqli problems? Errors like mysqli_fetch_array(): Argument #1 must be of type mysqli_result and such
(1 answer)
Closed 2 years ago.
I try to google it but, i really dont understand what is the problem with this query. Here is code
include_once("includes/db_connection.php");
//Upit za prikaz pitanja!
$listaPitanja = "";
$sql = "SELECT id, username, question FROM useroptions ORDER BY DESC";
$user_query = mysqli_query($db_connection, $sql);
$pitanjaCount = mysqli_num_rows($user_query); //line 8
if ($pitanjaCount > 0) {
while ($row = mysqli_fetch_array($sql)) { //line 10
$id = $row['id'];
$question = $row['question'];
$username = $row['username'];
$listaPitanja .= '<div id="brojOdgovora">'.$id.'</div>
<div id="tekstPitanja"><h3>'.$question.'</h3></div>
<div id="userPitanja"><h6>'.$username.'</h6></div>';
}
} else {
$listaPitanja = "There is no inserted questions!";
}
This query gives me nothing. Just this error mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in something on line 8, and if i delete ORDER BY DESC there is some error on line 10?
Sorry if it repeated, but i have no idea to solve this!! Thank you!
Your SQL statement has no ORDER column:
$sql = "SELECT id, username, question FROM useroptions ORDER BY DESC";
Change it with the correct column name:
$sql = "SELECT id, username, question FROM useroptions ORDER BY column_name DESC";
Probably, mysqli_query is returning false instead of mysqli_result object.
To add segarci,
$row = mysqli_fetch_array($sql)
should be
$row = mysqli_fetch_array($user_query)