انجمن سایت کلیدستان



تابع num_rowsزمان کنونی: ۱۳۹۵/۰۹/۱۴، ۰۶:۴۳ ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: legolas_ir
آخرین ارسال: admin
پاسخ 4
بازدید 1468

رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تابع num_rows

تابع num_rows

#1
سللام

کد:
$email_check = mysqli_query($conn,"SELECT email FROM users WHERE email='$regemail'");
$do_email_check = mysqli_num_rows($email_check);

من اینکد رو وارد میکنم و این ارور ر و میگیرم 

کد:
Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\register.php on line 35

این سوالمم لطفا جواب بدید پروژه دارم دیگه مزاحم نمیشم  
hi hitler
پاسخ

تابع num_rows

#2
سلام.
من حدس میزنم مشکل از خط مربوط به دستور mysqli_query باشد. بنابراین باید آن را خطایابی کنید. برای این منظور، کلید زیر را بخوانید و مشابه آن عمل کنید (برای خطایابی دستور mysqli_query در کدها) :

http://www.kelidestan.com/keys/keys.php?key=573

bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط legolas_ir

تابع num_rows

#3
اون خطی که ازش ایراد میگیره اینه 

کد:
$do_email_check = mysqli_num_rows($email_check);

اون تابع mysqli_error رو هم گذاشتم اما هیچ اروری نشون نداد :

کد:
error:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\xampp\htdocs\register.php on line 39
khataye query

کوئری رو عین کتاب مینویسم .دیتابیس رو هم عین دستورات اون درست کردم. 

کد:
$email_check = mysqli_query($conn,"SELECT email FROM users WHERE email='$regemail'");

احتملاش هست این تابع mysqli_num_rows() تغییر کرده باشه؟(چون این اسکریپت یعنی کتابه قدیمیه)

اینم کل اسکریپت.

 
کد پی‌اچ‌پی:
<?php 
$err 
" ";
$regname $_POST["regname"];
$regemail $_POST["regemail"];
$regpass1 $_POST["regpass1"];
$regpass2 $_POST["regpass2"];
if(empty(
$regname)){
die(
"pleas enter your username");
}
if(empty(
$regpass1)){
die(
"plase enter your password");}
if(empty(
$regpass2)){
die(
"plase coniform your password");
}
if(empty(
$regemail)){
die(
"plase enter your email<br />
"
);
}
if(
$regpass1!=$regpass2)
{
die(
"password dont mach<br />");
}
$conn mysqli_connect("localhost","root","","legolas")or die ("ettesal bargharar nashod");
$user_check mysqli_query($conn,"SELECT name FROM users WHERE name = '$regname'");
$do_user_check mysqli_num_rows($user_check);


$email_check mysqli_query($conn,"SELECT email FROM users WHERE email='$regemail'");

$do_email_check mysqli_num_rows($email_check);
if(
$do_user_check>0){
die(
"username is alredy in use<br />");
}
if(
$do_email_check>0){
die(
"email is alredy exist");
}
$sql "insert into users
(name,email,password)values('
$_POST[regname]','$_POST[regemail]','$_POST[regpass1]')";
$resualt mysqli_query($conn,$sql)or die("khataye query");
print 
"<h1> you have registred succesfully</h1>";
print
"<a href = 'index.php'>go to login page</a>";
?>
hi hitler
پاسخ

تابع num_rows

#4
هنگام استفاده از کدهای PHP برای اتصال و اجرای یک سری عملیات بر روی پایگاه داده MySQL ، یکی از مواردی که خیلی با آن برخورد داشته ام، این است که در خطی از کدها، یک مشکل در دستورات کار با پایگاه داده وجود دارد، اما PHP ، یک خط دیگر را به عنوان خطا معرفی می کند. در واقع، در اینگونه موارد، ممکن است کدنویسی مشکلی نداشته باشد (از نظر قواعد کدنویسی)، بلکه ساختار جدول (table) مورد نظر با دستوراتی که برای آن با کدهای PHP نوشته اید، ناسازگار باشد. پس همیشه ابتدا کدنویسی PHP را چک کنید و بعد ببینید ساختار جدول با دستورات sql که با کدهای PHP نوشته اید، سازگار است یا خیر.
شما ابتدا خطی که ذکر شده را چک کنید، اگر مشکلی نداشت، باید دستورات قبل تر را بررسی نمایید.
بنابراین شما قسمت های قبل تر کدها را نیز با همان روشی که لینکش را ذکر کردم، بررسی کنید.
در ضمن، یکی از مواردی که کاربران زیاد اشتباه می کنند، فراموش کردن موارد استفاده از علامت ' می باشد. این علامت فقط باید برای ستون هایی از جدول (table) به کار رود که به صورت متن هستند (برای اعداد نباید به کار رود). این را هم مد نظر داشته باشید. 


 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)