How compare the result from count(*) with INT in php [duplicate] - php

This question already has answers here:
SELECT COUNT(*) AS count - How to use this count
(5 answers)
Closed 1 year ago.
I want to compare the result for count(*) with INT. This is my code;
$sql_check = "SELECT COUNT(*) FROM hd";
$result_check = mysqli_query($link, $sql_check) or die ("ERR");
$row = mysql_fetch_assoc($result_check);
if($row == 1)
{...}
It seem like there is no error. I tried to run it but it skip my if statement. If I tried to
echo $row
It show error
NOTICE: Array to string conversion
If I used code
$sql_check = "SELECT COUNT(*) FROM hd";
$result_check = mysqli_query($link, $sql_check) or die ("ERR");
$row = int($result_check);
if($row == 1)
{...}
It show error
NOTICE: Object of class msqli_result could not converted to int
I have tried to used the answers from previous questions that have been asked before this (same question) but it doesn't work. Can you help me? Please I really need to know where my false.
Thankyou for helping.
Some other questions (that have been asked) and I have tried it but it seem does not work for me:
1. Object of class mysqli_result could not be converted to int and all entries return true
2. mysqli_result could not be converted to int in
3. Object of class mysqli_result could not be converted to int - Can't find my Error
4. Convert SQL query object into integer

you can try this, not sure if it solves the problem!
$sql_check = "SELECT COUNT(*) FROM hd as 'res'";
$result_check = mysqli_query($link, $sql_check) or die ("ERR");
$row = mysql_fetch_assoc($result_check);
if($row['res'] == 1)
{...}
OR YOU CAN TRY THIS
$sql_check = "SELECT COUNT(*) FROM hd as 'res'";
$result_check = mysqli_query($link, $sql_check) or die ("ERR");
$row = mysql_fetch_assoc($result_check);
if((int)$row['res'] == 1)
{...}

Related

Error in echo when use max() in mysql query [duplicate]

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'];
}

How to access the integer returned from SQL Count [duplicate]

This question already has answers here:
number of rows in a table
(3 answers)
Closed 6 years ago.
Going to make this quick.
So I am doing something that should be relatively simple but none of the answers I have found online (Yes, I have read through and implemented them ALL) have yielded the right result.
Basically, all I am trying to do is count how many times a specific field shows up in a column in one of my databases. Sounds easy, right?
Well, this is where it gets a bit sketchy for me. The query I am trying to use to attain this information is this:
$sql2 = "SELECT user_id COUNT(*) FROM ch_documents_list WHERE user_id = $users_id ";
From here, I want to take the result as an int and echo it into a specific part of the site (not important as to where exactly).
The only way I can get information out of the result is to run a print_r($result) Where $result is set to the response of the query.
NOTE The information printed looks like this:
mysqli_result Object ( [current_field] => 0 [field_count] => 5 [lengths] => [num_rows] => 1 [type] => 0 )
Which, as many of you can figure out, is useless. What changes do I need to make in order to get this right?
Thanks everyone!
Pasting more of my code below
Query As Of Now
$dbname_classes = "classes";
$conn2 = new mysqli($servername, $username, $password, $dbname_classes);
$sql2 = "SELECT user_id, COUNT(*) AS total FROM ch_documents_list WHERE user_id = $users_id";
$result2 = $conn->query($sql);
$row = mysqli_fetch_assoc($result2);
Then below in the html
<div class='overview-stat'><?php echo $row['total']; ?></div>
Which leads to this:
Notice: Undefined index: total
May this be helpful.
$sql2 = "SELECT COUNT(*) as total FROM ch_documents_list WHERE user_id = $users_id";
$result = mysqli_query($con,$sql2); // $con is Boolean returned from mysqli_connect()
$row = mysqli_fetch_array($result);
echo $row["total"];
Try this code
$query = "SELECT * FROM ch_documents_list WHERE user_id = $users_id ";
$result = mysqli_query($con,$query );
$rows = mysqli_num_rows($result);
print_r($rows);
May not the propper way, but works fine for me since years:
$sql2 = "SELECT user_id COUNT(*) AS total FROM ch_documents_list WHERE user_id = $users_id";
$result = mysqli_fetch_assoc($sql2)
You can then access it with
$result['total']
Using the SQL AS Keyword
Rewrite your query like this below query:
$sql2 = "SELECT user_id, COUNT(*) AS total FROM ch_documents_list WHERE user_id = $users_id";
After that just index your result array using the total key and boom you got your int counts
Like: $result['total']
return int two query example:
1. $sql2 = "SELECT COUNT(user_id) as id FROM ch_documents_list WHERE user_id = $users_id";
**You should return count
mysql_num_rows
**
$conn = mysqli_connect("localhost", "username", "password", "databasename");
$result = mysqli_query($conn, "SELECT user_id FROM ch_documents_list WHERE user_id = $users_id");
$num_rows = mysqli_num_rows($result);
echo "$num_rows Rows\n";
this is mysqli function support

MySQL - COUNT(*) cannot be converted into a string [duplicate]

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;

Error: mysqli_fetch_object() expects parameter 1 to be mysqli_result [duplicate]

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 8 months ago.
I don't know what the problem is with this line or how to fix it, before was okay and now I'm getting this error:
mysqli_fetch_object() expects parameter 1 to be mysqli_result
Here is my PHP code:
<?php
}
if($_GET['action']=="user_info")
{
$userid = $_GET['user_id'];
$query = "SELECT * FROM user WHERE user_id ='{$userid}'";
$result = mysqli_query($link, $query);
$user = mysqli_fetch_object($result);
$queryt = "SELECT * FROM user_title WHERE id='".$user->title."'";
$resultt = mysqli_query($link, $queryt);
$rowt = mysqli_fetch_object($resultt);
$title = $rowt->name;
$sorgu = "select * from pub_author where user_id='$userid'";
$publications = mysqli_query($link, $sorgu);
while($a = mysqli_fetch_object($publications))
{
$ids .= $a->pub_id . ',';
}
$ids = rtrim($ids,",");
$sorgu2 = "select count(id) as total , year from publication where id IN ($ids)
GROUP BY YEAR(`year`) order by `year` ";
$publications2 = mysqli_query($link, $sorgu2);
while($a2 = mysqli_fetch_object($publications2))
{
$mount = explode('-', $a2->year);
$accyaz[$mount[0]] = $a2->total;
}
}
?>
As far as your exact error is concerned one of your query is failing, the following steps might help. Ofcourse you question looks duplicate but here are some of the things that addresses your question
Your first query should be like this, with no curly braces, ofcourse untill you have explicitly ids wrapped in curly braces in your table.
SELECT * FROM user WHERE user_id ='$userid'
Secondly you are executing multiple queries so you might wanna consider error checking if your query executes properly or not(because of syntax error columns mismatch table name mismatch many more possibilities): do error checking like this as for while($a...) part
if ($result=mysqli_query($link, $sorgu);)
{
while($a=mysqli_fetch_object($result))
{
$ids .= $a->pub_id . ',';
}
$sorgu2 = "select count(id) as total , year from publication where id IN ($ids) GROUP BY YEAR(`year`) order by `year` ";
//... Your further code
}
else
{
echo "Something went wrong while executing query :: $sorgu";
}
Third i see your are getting pub_id make a comma seperated list of it so that you can give it as a parameter in your last query which is a long shot, why not use sub query for you IN clause like this:
SELECT
COUNT(id) as total, year
FROM publication
where id
IN (
SELECT pub_id FROM pub_author WHERE user_id='$userid'
)
GROUP BY `year`
order by `year`;
The error you are stating translates to this: The query fails somehow, instead of running the mysqli_query($link, $sorgu); line echo $sorgu, go to phpmyadmin and test your query, if it is bad, fix it in phpmyadmin until it works and set it up in the code correctly

Mysqli num rows and mysqli fetch array issue [duplicate]

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)

Categories