دیتابیس در php

saalek110

Well-Known Member
یک تاپیک قبلا باز کرده بودم به نام علاقه مندان php و تصمیم گرفتم قسمت دیتابیس اون را در این تاپیک بحث کنم.
 

saalek110

Well-Known Member
یک تاپیک هم قبلا باز کرده بودم به نام ساخت بازی آنلاین با php و کار با html و جاوا اسکریپت ، در اون تاپیک دیتابیس هم کار شده بود ، ولی می خواهم این تاپیک مختص دیتابیس باشه.
 

saalek110

Well-Known Member
فایل وصل شدن به دیتابیس:
PHP:
<?php

$db_name = "xxxxxxxxxx";
$mysql_username = "xxxxxx";
$mysql_password = "xxxxxxxx";
$server_name = "xxxxxxxx";
$conn = mysqli_connect($server_name, $mysql_username, $mysql_password,$db_name);
if (!$my_cnn)
  {
  die("Connection error: " . mysqli_connect_error());
  }
?>

هر فایلی بخواهد به دیتابیس وصل شود از این فایل استفاده می کند. یعنی اول فایل می گوید به این فایل نیاز دارد. به نوعی این فایل در ابتدای فایلهای محتاج اتصال به دیتابیس اجرا می شود.
اگر هاست گرفتید باید در کنترل پنل به دنبال یافتن این مقادیر باشید. من همه را با xxxxx پر کردم.
در هاست مجانی من دیتابیس هم موجود نبود و من خودم با افزودن یک پسوند به نامی که هاست پیشنهاد می کرد دیتابیس خود را ساختم.در کد بالا db_name نام دیتابیس شماست. یوزر و پسورد در هاست من خودش از قبل تعین شده بود. و بعد ساخت دیتابیس نام سرور هم داده شد. یعنی هر 4 موردی که کد بالا نیاز دارد را درون هاست بجویید. البته در هاست من این طور بود. ممکن است هاست های مختلف تفاوتهایی داشته باشند.
توجه کنید یوزرنیم و پسورد mysql است. دنبال یوزر و پسورد mysql باید بگردید.
در php my admin می توانید به شکل دستی تیبل در دیتابیس خود بسازید. و همچنین به شکل دستی ردیف هایی در تیبل می توانید اضافه کنید.

فایل بالا باید برای شما هم بدون دادن خطا اجرا شود. یعنی Connection error چاپ نشود. اگر خطا داد باید ببینید کدام را غلط وارد کرده اید. می توانید از راهنماهای هاست یا فروم هاست کمک بگیرید یا در فروم مجیدآنلاین بپرسید.

در تاپیک زیر در دو هاست گفته شده چطور این ۴ مورد را بیابید:

 
آخرین ویرایش:

saalek110

Well-Known Member
در فایلهای دیگه اینو می نویسید

PHP:
     require "name_of_connection_file.php";

این طوری یک فایل کانکشن دارید که همه استفاده می کنن.
 

saalek110

Well-Known Member
برای تست اول فایل کانکشن را اجرا کنید ، که نباید خطا بده.
بعد در فایل دیگری اون خط پست قبل را اضافه کنید و فایل دوم را اجرا کنید.
 

saalek110

Well-Known Member
شما باید یک دیتابیس در هاست خود داشته باشد ، اگر نباشه باید بسازید.

db_name در فایل کانکشن اسم همین دیتابیس است.یوزر و پسورد اتصال به دیتابیس را باید در هاست خود بیابید و همچنین نام سرور را.

.............

مرحله بعد ساخت تیبل یا جدول است ، می توانید بروید به php npmy admin کنترل پنل هاست خود و تیبل را بسازید.
وقتی ساخت تیبل را بزنید اول نام جدول و تعداد ستون هایش را می خواهد. البته بعدا می توانید ستون اضافه کنید.
نوع ستون های تیبل را مناسب انتخاب کنید. مثلا متنی داریم و عددی و غیره.


مثلا من varchar برای یوزرنیم و پسورد انتخاب کردم و تعداد کاراکترش را هم ۲۰ دادم
 

saalek110

Well-Known Member
بعد به تیبل ساخته شده می توانید بروید و با زدن insert یک ردیف بهش اضافه کنید. مثلا علی و ۱۲۳۴
 

saalek110

Well-Known Member
با زدن دکمه بروس می توانید کل جدول را ببینید.

اگر اشتباه چیزی وارد شده می توانید همه را پاک کنید و از اول وارد کنید.
 

saalek110

Well-Known Member
با کد هم میشه تیبل ساخت و ردیف اضافه کد ولی اولش برای تست کدهای خودتون باید چیزی در تیبل باشه ، پس اولش دستی وارد می کنید تا کدهایتان تست و اکی بشه ، بعدا می توانید با کد وارد کنید.
 

saalek110

Well-Known Member
حالا رسیدیم به جایی که تیبل در دیتابیس خود دارید و ردیف یا ردیفهایی هم اضافه کردید...
حتما بروس را بزنید تا مطمئن بشید ردیف را اضافه کرده اید.
حالا می رسیم به کدنویسی.
 
آخرین ویرایش:

saalek110

Well-Known Member
حالا من یک تیبل به نام test ساختم با دو ستون aval و dovom
ستون اول متنی ۲۰ کاراکتری و دومی عددی یا همون INT

دو ردیف اضافه می کنم
abc 123
Efg 456
 
آخرین ویرایش:

saalek110

Well-Known Member
حالا قصد دارم با این تیبل کار کنم....

PHP:
<?php

$db_name = "************";
$mysql_username = "***********";
$mysql_password = "***********";
$server_name = "***************";
$my_cnn = mysqli_connect($server_name, $mysql_username, $mysql_password,$db_name);
if (!$my_cnn)
  {
    die("Connection error: " . mysqli_connect_error());
      }
   
                             
   echo"<br><br><br><br><br>----In the nameof God......<br><br>";

        $mysql_qry = "select * FROM test";
             $result = mysqli_query($my_cnn ,$mysql_qry);

    if(mysqli_num_rows($result) > 0) {

 while($row = $result->fetch_assoc()) {

echo "avaliii:" . $row["aval"]." ############# ". "dovomiiii: " . $row["dovom"]. "<br>";
                  }    
                                                                      }

         else {                                  echo"chizi nabod";                                                           }
                                                         
       ?>


فایل کانکشن خوبه جدا باشه ، ولی من محتویات فایل کانکشن را اول فایل گذاشتم تا برای اموزش خوب باشه.
اون ستاره ها اطلاعات هاست من بود که جایش ستاره گذاشتم تا منتشر نشه از لحاظ امنیت هاست من.

بحث اتصال به دیتابیس ، یک خط کد هست که بنام خدا میگه. این خط کمک می کنه بفهمیم فایل اجرا شده یا نه.
بعدش خط کوئری را داریم که سلکت کرده تیبل تست را.
خط بعدی با استفاده از کانکشن و کوئری ، ریزالت یا نتایج را تحویل گرفته.
بعدش دیگه کار با ریزالت result است . که در اینجا ریزالت را چاپ کردیم.

سالک : کد بالا را بر هاست خودم تست کردم.تا مطمئن باشم خطایی وجود ندارد.
 
آخرین ویرایش:

saalek110

Well-Known Member
نتیجه اجرای پست قبل:

----In the nameof God......

avaliii:abc ############# dovomiiii: 123
avaliii:Efg ############# dovomiiii: 456

وقتی هم بروس می زنم در تیبل این طوریه:

Screenshot_۲۰۲۳-۰۳-۳۱_۰۹۱۹۴۷.jpg
 

saalek110

Well-Known Member
PHP:
$user_name = $_POST["username"];
$user_pass = $_POST["password"];


$mysql_qry = "select * from users where username like '$user_name' and password like '$user_pass' ";


$result = mysqli_query($my_cnn ,$mysql_qry);

if(mysqli_num_rows($result) > 0) {
//1111111
}

else {
//22222222
}

در کد بالا ، برخلاف پست قبلی ، چاپ همه جدول نیست و داریم دنبال چیزی می گردیم... در حقیقت لوگین به سایت است....یک فایل فرم بوده و کاربر اسم و پسورد خود را د اون وارد کرده و بعد پاس داده به این فایل ،

در دو خط اول ، در دو متغیر ورودی های فرم را قرار دادیم. و بعد داخل تیبل users دنبال اون اسم و پسورد می گردیم.
حالا یکی ممکنه بگه چرا متغیر را داخل متغیر دیگر ریختی ، خوب همون را در کوئری می ذاشتی ، ولی کوتیشن های متغیر با کوتیشن های کوئری تداخل می کنه و دردسر میشه ، پس بهتره یک اسم بی دردسر داشته باشیم.
.
اگر یک ردیف منطبق بر اون اطلاعات وجود داشته باشه کدهای 111111 اجرا میشه وگرنه کدهای 222222 اجرا میشه.

کدهای بالا کامل نیست ، باید در برنامه پست قبل اینها جایگزین کدهای مشابه بشن....

بجای کدهای 11111 می توان سسیون کاربر را تنظیم کرد تا کاربر لوگین بشه. سسیون و کوکی را من از کدها حذف کردم تا ساده بشه.
 
آخرین ویرایش:

saalek110

Well-Known Member
پس تا اینجا من یک برنامه کامل برای چاپ یک جدول پست زدم و یک مقدار کد راهنما که باید در برنامه اول جایگزین بشه تا تبدیل به برنامه جستجوی جدول بشه.

البته یادتون باشه یک فایل فرم اول اجرا میشه و کاربر نام و پسورد خود را اضافه می کنه و بعد وارد فایل جستجوی جدول میشیم.
 

saalek110

Well-Known Member
HTML:
<form action="file_jostejoogar.php" method="Post">

  name: <input type="text" name="username" ><br><br>

  Password: <input type="text" name="password" ><br><br>

  <input type="submit" value="Submit">

</form>

این هم فایل فرم . که اطلاعات وارد شده به کاربر را پاس میده به فایل جستجو گر file_jostejoogar.php
 

saalek110

Well-Known Member
خوب ، این بود چاپ و جستجوی تیبلهای دیتابیس.

برای یک سایت همین ها ، احتمالا کافیه.

در تاپیک سایت خود را بسازید ، روش دستی ساخت جداول گفته شده. و یک سری توضیحات مرتبط دیگر:



در تاپیک زیر بر روی کوئری ها تمرکز شده:




سسیون و کوکی هم جایش اینجا نیست که بگم.
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
 $sql = "SELECT * FROM users WHERE username='$name' LIMIT 1";
 
 
 
  $sql = "INSERT INTO `users` (`number`,`username`, `password`, `email`) VALUES ('$s','$name','$password','$email')";


برای ثبت نام اول باید ببینیم کاربر قبلا در تیبل نباشه اسمش. چون اگر فردی با نام فرد دیگر ثبت نام کند می تواند جای اون را بگیرد و به اطلاعات اون دسترسی پیدا کند.

اگر کاربر وجود نداشت ، با کوئری insert اضافه میشود.


باقی کدها را من حذف کردم ، خوب اگر اون اسم قبلا وجود داشت باید به کاربر بگید باید یک اسم دیگر انتخاب کنی.
 

جدیدترین ارسال ها

بالا