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)
Related
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)
{...}
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 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.
<?php
$con = mysqli_connect('localhost','root','','db') or die('Error connecting to MySQL server.');
if(isset($_POST['rollNo'])){
$rollNo = $_POST['rollNo'];
$query = "Select * from table where ROLL_NUMBER LIKE '$rollNo'";
$select = mysqli_query($con, $query);
printf(mysqli_query($con));
while ($row = mysqli_fetch_array($select)) {
echo $row['FIRST_NAME'];
}
}
?>
It is showing the error that
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given.
Use below code segment
while($row = mysqli_fetch_assoc($result))
{
echo $row['FIRST_NAME'];
}
This question already has answers here:
mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows etc... expects parameter 1 to be resource
(31 answers)
Closed 7 years ago.
I wan't to create a validation, check the database if the DATE, TIME and COTTAGE is already reserved/available. If any in one of the 3 is unavailable, it will save to the database.
Here is the code I made:
<?php
require_once("config.php");
require_once("includes/inputs.php");
//fetching the data of the cottage
$sql = "SELECT * FROM cottage WHERE id='$cottage'";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);
$name_cottage = $row["name"];
//fetching the data of the time
$sql = "SELECT * FROM rate WHERE id='$daytime'";
$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result);
$daytime_name = $row["name"];
//validating whether the date, time and cottage is already available in the cottage
$validate = "SELECT * FROM reserve WHERE date = '$date' AND daytime = '$daytime' AND cottage = '$cottage'";
$qry = mysqli_query($link, $validate);
$getrow = mysqli_num_rows($qry);
if( $getrow > 0 ){
echo " $date, $daytime_name and $name_cottage has already been taken!";
return false;
}
else{
$sql = "INSERT into reserve (name, address, contact, email, date, time, ahc, chc, cottage, promo, total) values ('$name','$address','$contact', '$email', '$date', '$daytime', '$ahc', '$chc', '$cottage', '$promo', '$calc')";
$result = mysqli_query($link,$sql);
echo " $date, $daytime_name and $name_cottage is successfully reserved!";
return true;
}
?>
But i am having an error of:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\reservation\formup.php on line 22
and line 22 is
$getrow = mysqli_num_rows($qry);
but when i use this multiple select query:
$validate = "SELECT * FROM reserve WHERE date = '$date'";
$validate = "SELECT * FROM reserve WHERE daytime = '$daytime'";
$validate = "SELECT * FROM reserve WHERE cottage = '$cottage'";
it will save to the database but when the cottage have the same cottage on the database it won't save...
please help me to fix this....
By the documentation of msyql query:
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.
Link
So as i understand it the query is successful or not succesful true / false is returned else a mysqli_result object. So i think your query have no return value. Tried running the sql query on the db and have you check that the expected values are returned?
mysqli_num_rows() returns true on success and false on failure; for select, show etc. mysqli_query return result object.
I may need to see the full codes to get better idea whats wrong there but try this:
$qry = mysqli_query($link, "SELECT * FROM reserve WHERE date = '$date' AND daytime = '$daytime' AND cottage = '$cottage'");
$getrow = mysqli_num_rows($qry);
if( !$getrow == 0 ){
echo ".....taken";
}
else{
$sql = mysqli_query($link, "insert.....");
echo "...reserved";
}
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