کد ش:
<?php
$databaseHost = 'localhost'; //your db host
$databaseName = 'cublux'; //your db name
$databaseUsername = 'root'; //your db username
$databasePassword = '';// db password
$mysqli = mysqli_connect($databaseHost, $databaseUsername, $databasePassword, $databaseName);
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql="select count('1') from users";
$result=mysqli_query($mysqli,$sql);
$row=mysqli_fetch_array($result);
echo "<h3>$row[0]</h3>";
mysqli_close($mysqli);
?>
بهترین روش استفاده از دستور count بصورت مستقیم روی دیتابیس هست. اگر از php خام استفاده میکنید باید کوئری SQL بنویسید. مثلا اینجوری:
select count(*) from users;
میشه در ادامه اش انواع شرط هم اضافه کرد...
سلام
یک راهش همینه که دوستان هم اشاره کردند راه بعدی اینه که یک تیبل برای نگهداری مقادیر و پارامترهای مورد توجه ایجاد کنید توی این جدول یک ستون به عنوان فاکتور مورد نظر و یک ستون هم به عنوان مقدار عددی اون در نظر بگیرید حالا هر بار که کاربری ثبت نام میکنه توی این جدول یک عدد بالاتر از عدد قبلی ثبت کنید. این طور میتونید از اجرای کوئری سراسری رو تیبل های دیگه پرهیز کنید. انتخاب روش به عهده شماست که تشخیص بدید کدوم روش در اون پروژه بهتره.
همونطور ک دوستان فرمودن میتونید مستقیما با count از دیتابیس بگیرید یا تو ی جدول مقدارشو نگه دارید
بعد هر ثبتنام دوباره از تعداد یوزرتان ی تعداد بگیرید تو جدول جداگانتون اپدیت کنید.
@mhyeganeh
دستور count راه حله اما
select count(*) from users;
حرکت جالبی نیست ...
select count(id) from users;
برای پرفورمنس بهتر مناسبه ...
@afsharmahmoodian
ممنون از بیان نکتتون. این قضیه در خصوص دستور select کاملا صحیح هست. اما تا جایی که من میدونم در خصوص count چندان صدق نمیکنه و فرق میکنه. البته یک بحث کاملا تخصصی هست و صحبت های زیادی هم روش شده که اگر علاقه داشتید میتونید مطالعه کنید. مثلا اینجا و اینجا.
اما در کل ظاهرا تفاوت چندانی ندارند و به همین خاطر و به دلیل یک سری ریزه کاری ها و نکات حاشیه ای دیگه، بهترین راهکار همون count(*) هست نه count(id) :
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟