PHP - Mysqli_num_rows
I keep getting this error because of my coding and I'm not sure why all I know is it has to do wiht the query itself.
<b>Warning</b>: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in <b>C:\wamp\www\E-Fed Manager (localhost)\processes\template.php</b> on line <b>37</b><br /> $query = "SELECT * FROM `templates` WHERE `templatename` = $templatename"; $result = mysqli_query ( $dbc, $query ); // Run The Query $rows = mysqli_num_rows($result); Similar TutorialsHey guys, here's the script: <?php require("header.php"); $sql = "SELECT entries.*, categories.cat FROM entries, categories WHERE entries.cat_id = categories.id ORDER by dateposted DESC LIMIT 1;"; $result = mysqli_query($db, $sql); $row = mysqli_fetch_assoc($result); echo "<p><h2><a href='viewentry.php?id=".$row['id']."'>'".$row['subject']."</a></h2><br /></p>"; echo "<p>"."<i>In <a href='viewcat.php?id=" . $row['cat_id']."'>'" . $row['cat']."</a> - Posted on " . date("D jS F Y g.iA", strtotime($row['dateposted']))."</i></p>"; echo "<p>"; echo nl2br($row['body']); echo "</p>"; echo "<p>"; $commsql = "SELECT name FROM comments WEHRE blog_id = " .$row['id']."ORDER BY dateposted;"; $commresult = mysqli_query($db, $commsql); $numrows_comm = mysqli_num_rows($commresult); if($numrows_comm == 0){ echo "<p>No comments.</p>"; } else { echo "(<b>".$numrows_com."</b>)comments: "; $i = 1; while($commrow = mysqli_fetch_assoc($commresult)){ echo "<a href='viewentry.php?id=".$row['id']."#comment".$i."'>'".$commrow['name']."</a>"; $i++; } } echo "</p>"; require("footer.php"); ?> The error turns out to be Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\Book\index.php on line 22 why is that? trying to figure this problem out. sucks being a newbie maybe i will gain enough knowledge to be able to help out others in the near future. Code: [Select] <?php session_start(); $DBConnect = @mysqli_connect("localhost", "**********", "**********") Or die("<p>Unable to connect to the database server.</p>" . "<p>Error code " . mysqli_connect_errno() . ": " . mysqli_connect_error()) . "</p>"; $DBName = "skyward_aviation"; @mysqli_select_db($DBConnect, $DBName) Or die("<p>Unable to select the database.</p>" . "<p>Error code " . mysqli_errno($DBConnect) . ": " . mysqli_error($DBConnect)) . "</p>"; $CustomerName = ""; if (isset($_COOKIE['customerName'])) $CustomerName = $_COOKIE['customerName']; $TableName = "mileage"; $Mileage = 0; $SQLstring = "SELECT SUM(mileage) FROM $TableName WHERE flyerID='{$_SESSION['flyerID']}"; $QueryResult = @mysqli_query($DBConnect, $SQLstring); if (mysqli_num_rows($QueryResult) > 0) { $Row = mysqli_fetch_row($QueryResult); $Mileage = number_format($Row[0], 0) ; mysqli_free_result($QueryResult); } mysqli_close($DBConnect); ?> i know its a simple stupid error but cant remember nor figure it out. HERES THE ERROR Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\PHP_Projects\Chapter.10\FrequentFlyerClub.php on line 23 This is the form: Code: [Select] <form id="submit_form" method="post" action=""> <label for="knuffix_category"><h4>Choose a category</h4></label><br /> <?php require_once ($sort_category_func); $switch = 0; sort_category ($switch); ?> <br /><br /> <label for="contribution_description"><h4>Enter your description here</h4></label><br /> <textarea maxlength="150" type="text" name="contribution_description" value=""></textarea><br /> <label for="contribution"><h4>Enter your contribution here</h4></label><br /> <textarea maxlength="300" type="text" name="contribution" value=""></textarea><br /> <input type="submit" name="submit" value="Contribute" /> </form> <?php include($submit_script); ?> And this is the script: Code: [Select] <?php if (isset($_POST['submit'])){ if (isset($user_name)) { // Connect to the database $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); // Grab the score data from the POST //$knuffix_name = strip_tags(trim($_POST['knuffix_name'])); $contribution_name = uniqid(); if (!empty($_POST['contribution_description'])) $contribution_description = $_POST['contribution_description']; // if (!empty($_POST['knuffix_contribution'])) $contribution = $_POST['contribution']; // if (!empty($_POST['cat'])) { $contribution_category = strip_tags(trim($_POST['cat'])); // } // Check if the fields and variables are empty if (!empty($contribution_category) && !empty($contribution)) { // Check if the submission exists twice in the whole database $query_get = "SELECT contribution FROM con WHERE = '{$contribution}'"; $query_run = mysqli_query($dbc, $query_get); $num_rows = mysqli_num_rows($query_run); if ($num_rows == 0) { // Write the data into the database $query = sprintf("INSERT INTO con (user_id, name, contribution, category, contribution_date, description) VALUES ('$user_id', '%s', '%s', '%s', now(), '%s')", mysqli_real_escape_string($dbc, $contribution_name), mysqli_real_escape_string($dbc, $contribution), mysqli_real_escape_string($dbc, $contribution_category), mysqli_real_escape_string($dbc, $contribution_description)); mysqli_query($dbc, $query) or die (mysqli_error($dbc)); mysqli_close($dbc); /* Set a cookie (later) to prevent duplicate submissions */ // redirect the page to prevent duplicate submissions // header ('Location: redirect.php'); echo 'Contributing was successful.'; } else { echo "This contribution already exists in the database. To keep this place clean we do not allow duplicate submissions."; } } else { echo "Please enter all of the information to add your contribution."; } } else { echo "You have to be signed-in to do a contribution."; } } ?> And this is the error message: Code: [Select] Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\php_projects\myproject\controller\contribution\submit_script.php on line 38 As the error message states it is not becoming a result, and I do not see where the problem lies, everything looks right to me. Does somebody else see a mistake in there? My code looks as follows: include('connectvars.php'); /* REGISTER FORM */ // check if submit button has been clicked if (isset($_POST['submit_signup'])) { // process and assign variables after post submit button has been clicked $user_email = strip_tags(trim($_POST['email'])); $firstname = strip_tags(trim($_POST['firstname'])); $lastname = strip_tags(trim($_POST['lastname'])); $nickname = strip_tags(trim($_POST['nickname'])); $password = $_POST['password']; $repassword = $_POST['repassword']; $dob = $_POST['dob']; $find_us_question = strip_tags(trim($_POST['find_us_question'])); // connect to database $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $check_query = "SELECT * FROM users WHERE nickname = '$nickname'"; $check_connect = mysqli_query($dbc, $check_query); $check_count = mysqli_num_rows($check_connect); echo $check_count; die(); It's a register (sign up) page, and it's the beginning of the script, the rest of the script is just checking if all fields are a empty and if the input is in the allowed character length etc. I could it off at die(); because the rest doesn't matter. I want the script to check if the username already exists in the database, so I want mysqli_num_rows to tell me how many rows are already there with the same username, and then I want to continue doing an if statement saying if ($check_count != 0) { echo "Username already exists!" } But the mysqli_num_rows doesn't even print out how many rows there are availible, it gives me an error saying: Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in... The num_rows function worked in the login script the same way, but for some reason it's not working in the register script. Any ideas, what I'm doing wrong? For testing purposes I just want it to print me "1" when I'm entering a username that's already in the database. Hi all, I have received a warning message, which it still puzzles me. I suspect it might be my inner join command, which I have coded it wrongly? Line 37 refers to this line - if (mysqli_num_rows($data) == 1) { Do you guys have any idea? Thanks Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in D:\inetpub\vhosts\123.com\http\viewprofile.php on line 37 Code: [Select] <?php // Connect to the database $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $query = "SELECT tp.name, tp.nric, tp.gender, tp.race_id, r.race_name AS race" . "FROM tutor_profile AS tp " . "INNER JOIN race AS r USING (race_id) " . "WHERE tutor_id = '" . $_GET['tutor_id'] . "'"; $data = mysqli_query($dbc, $query); if (mysqli_num_rows($data) == 1) { // The user row was found so display the user data $row = mysqli_fetch_array($data); echo '<table>'; if (!empty($row['name'])) { echo '<tr><td class="label">Name:</td><td>' . $row['name'] . '</td></tr>'; } if (!empty($row['nric'])) { echo '<tr><td class="label">NRIC:</td><td>' . $row['nric'] . '</td></tr>'; } if (!empty($row['last_name'])) { echo '<tr><td class="label">Last name:</td><td>' . $row['last_name'] . '</td></tr>'; } if (!empty($row['gender'])) { echo '<tr><td class="label">Gender:</td><td>'; if ($row['gender'] == 'M') { echo 'Male'; } if ($row['gender'] == 'F') { echo 'Female'; } echo '</td></tr>'; } if (!empty($row['race'])) { echo '<tr><td class="label">Race:</td><td>' . $row['race'] . '</td></tr>'; } echo '</table>'; //End of Table echo '<p>Would you like to <a href="editprofile.php?tutor_id=' . $_GET['tutor_id'] . '">edit your } // End of check for a single row of user results else { echo '<p class="error">There was a problem accessing your profile.</p>'; } mysqli_close($dbc); ?> I have searched the internet about this and found hundreds have asked the question and not once was it answered in a meaningful way--or maybe I'm just dense. Would somebody please tell me what is the problem he Simple, simple form:
<html>
<form action="send_post.php" method="post">
</body> =========== Simple, simple PHP script:
<?php
if (mysqli_num_rows($result) > 0) { But most importantly, how should it be written so that it returns the desired results? I have checked the query from the CMD line, it returns multiple entries. Really, I have reached FRUSTRATION OVERLOAD! Edited April 12, 2020 by eljaydee
<!DOCTYPE html>
{ |