دستورات sql , کوئری ها در mysql در php

saalek110

Well-Known Member
دستورات sql , کوئری ها در mysql در php


در تاپیک سایت خود را بسازید:


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


در لینک زیر میشه دستور select را تمرین کرد:
 
آخرین ویرایش:

saalek110

Well-Known Member
ساختن فایل کانکشن:

در صفحه ۳ تاپیک سایت ساختن ، ساخت فایل کانکشن را گفتیم.
PHP:
<?php
$db_name = "epiz_9999999_name";
$mysql_username = "epiz_999909";
$mysql_password ="pppppppppp";
$server_name = "sql313.epizy.com";
$ccoonn = mysqli_connect($server_name, $mysql_username, $mysql_password,$db_name);
if (!$ccoonn)
  {
  die("Connection error: " . mysqli_connect_error());
  }
 
?>
و گفتیم که لوازم لازم این فایل را از کجا پیدا کنید. که چند موردش را از mysql databases که در کنترل پنل لینکش هست پیدا کردیم ، که اسم هاست و اسم دیتابیس و اسم یوزر بود و می مونه پسورد که در صفحه اول هاست هست.
 

saalek110

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

در تاپیک سایت سازی ، شما ساختن جدول در دیتابیس خود را در phpmyadmin یاد گرفتید. دیگه اینجا این آموزش ها را نمیگیم. فقط با دستورات sql کار می کنیم. همچنین می توانید در phpmyadmin یک ستون به جدکل خود بیافزایید...

یا خیلی کارهای دیگر ، مثل تغییر نام جدول ، خالی کردن جدول ، دیلت کردن جدول.
و اینسرت(افزودن) کردن یک ردیف به جدول.

کلا کارهای دستی روی جداول در phpmyadmin ممکن است و ما برایش کوئری نگفتیم و گفتیم بروید دستی انجام بدهید. در این تاپیک هم جیزی تغییر نکرده ، می گیم بروید اون کارها را دستی انجام بدهید. و اگر در صفحات بعدی این تاپیک کوئری برای ایجاد جدول و افزودن ستون من می گذارم ، برای کارهای خودم است و برای شما نیست.

کوئری هایی که شما نیاز داشتید ، خواندن جدول و افزودن یا حذف سطری به جدول بود ، یا آپدیت یک ردیف جدول.
پس شما کوئری افزودن ستون یا خلق جدول نداشتید ، چون نیاز نداشتید. شما جداول را دستی خلق کردید و با کوئری ها اونها را خوندید و درشون نوشتید.
 

saalek110

Well-Known Member
خواندن جدول و اینسرت:

یکی از مهم ترین کارها خوندن جدکل بود که با select انجام دادیم.
و دیگری insert یک ردیف به جدول بود.

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

در تاپیک سایت خود را بسازید، بعد گفتن فرم رفتیم سراغ کوئری ها....
و در صفحه ۵ تاپیک سایت سازی این کد را داریم:
PHP:
    $sql = "INSERT INTO `name_email` (`number`,`name`, `email`) VALUES ('2','$name','$email')";
 
     $result = mysqli_query($ccoonn ,$sql);
کوئری insert است ، به جدول name_email... این جدول را من برای تمرین در دیتابیس ساختم و ستونهای number و name و email داشت....عدد ثابت ۲ به ستون number اضافه شده ولی در ستونهای بعدی متغیرهای name و email اضافه شده.که از فرم دریافت شده. با این کد:
PHP:
$name=$_POST["name"];
$email=$_POST["email"];

و فرم هم این بوده:
HTML:
<form id="myform" action="<?php echo $_SERVER["PHP_SELF"]; ?>"  method = "POST">

Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>


 <input type="submit" name='action_2' value="Submit">
</form>

قصد ندارم اون آموزش را کامل اینجا تکرار کنم ، فقط به شکل روایت اینجا تکه هایی را میگم. برای خوندن آموزش کامل همون تاپیک را بخوانید...در این تاپیک روی کوئری ها تمرکز داریم.
 

saalek110

Well-Known Member
در کد بالا به ستون number عدد دادم ، چون یک ستون معمولی بود. ...ولی در بقیه تاپیک من تصمیم گرفتم که ستون number یک ستون خود افزایش یابنده باشد و جلویش تیک A.I را زدیم و دیگه نمیشد بهش مقدار بدهیم و در کوئری های بعدی برای ستون number همیشه NULL نوشتیم، یعنی هیچی نریزیم داخلش.
 

saalek110

Well-Known Member
تابع امنیت:

بعدش اومدیم یک تابع امنیت تعریف کردیم:
PHP:
function test_input($data) {
                    $data = trim($data);
 $data = stripslashes($data);
     $data = htmlspecialchars($data);
 return $data;
}
و گذاشتیمش انتهای کدهای php .
و این جوری ازش استفاده کردیم:
PHP:
$name=test_input($_POST["name"]);
 

saalek110

Well-Known Member
خواندن جدول:
بعد کوئری خواندن جدول را گفتیم:
PHP:
$sql = "SELECT * FROM name_email";
ستاره یعنی همه ستون ها ، name_email هم اسم جدول است...
این ساده ترین کوئری خوندن جدکل است. چون همه جدکل را می خونه.

برای نمایش و چاپ هم کد ریز را نوشتیم:
PHP:
    require "ccoonn.php";
 
    mysqli_set_charset($ccoonn, "utf8");

$sql = "SELECT * FROM name_email";
  $result = mysqli_query($ccoonn ,$sql);
 echo"<center>";     
    echo"<table border=1>";   
   while($info = mysqli_fetch_array( $result ))
 {
 echo"<tr>";
  $name=$info['name'];
$email=$info['email'];
    echo"<td>";   echo $name;  echo"</td>";
   echo"<td>";   echo $email;  echo"</td>";                                                                                                                                                        echo"</tr>";
              }
     echo"</table>";
      echo"</center>";

اول فایل کانکشن را صدا زدیم ، چون بهش نیازه..
بعد utf8 را معیار ارتباط قرار دادیم تا حروف فارسی در جدول خوانا باشد.
بعد کوئری در متغیر $sql ریخته شده ،
در خط بعدی تابع mysqli_query کوئری را توسط متغیر کانکشن که از فایل کانکشن داره اجرا می کنه.
در خطوط بعدی تابع mysqli_fetch اطلاعات را از متغیر $result استخراج می کنه و ما با جدول html اونها را مرتب چاپ می کنیم.
 

saalek110

Well-Known Member
کد کامل فرم و insert به جدول:
کد زیر هم کد کانل فرم و کوئری insert به جدول است:
PHP:
<html>
<body>

<?php
    require "ccoonn.php";
 
  


 if( !isset($_POST['action_2']))
 {
?>
<form id="myform" action="<?php echo $_SERVER["PHP_SELF"]; ?>"  method = "POST">

Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>


 <input type="submit" name='action_2' value="Submit">
</form>
<?php
}



 if(isset($_POST['action_2']))
{
        $name=test_input($_POST["name"]);
        $email=test_input($_POST["email"]);

echo "name= ".$name;
echo"<br>";
echo "email= ".$email;

    mysqli_set_charset($ccoonn, "utf8");

    $sql = "INSERT INTO `name_email` (`number`,`name`, `email`) VALUES ('2','$name','$email')";
 
     $result = mysqli_query($ccoonn ,$sql);
 
echo"<br><br>ghesmate sabt dar database";

}


function test_input($data) {
                    $data = trim($data);
                     $data = stripslashes($data);
                          $data = htmlspecialchars($data);
                           return $data;
                           }
فایل کانکشن برای هر کار با دیتابیسی لازم است ، پس خط اول require شده.
در کد بالا جوری تنظیم شده که بعد زدن دکمه فرم ، دیه خود فرم نمایش داده نشود.
همچنین تابع امنیتی انتهای کد اومده ،
باقی چیزها را هم که در پست های قبلی گفتیم.
 

saalek110

Well-Known Member
دریافت نزولی یا صعودی:
PHP:
$sql = "SELECT * FROM $the_table ORDER BY number DESC ";
کد بالا هم خوندن جدول است ولی با توجه به عدد ستون number صعودی یا نزولی است.
 

saalek110

Well-Known Member
کوئری آپدیت:
PHP:
$sql = "UPDATE $db SET $soton='$meghdar' WHERE number=$number";

آپدیت بالا شرط داره و با where شرط نوشته شده ، یعنی ردیف هایی از جدول تغییر می کنه که ستون number فلان مقدار درش باشه.

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

saalek110

Well-Known Member
کوئری دیلت:
PHP:
$sql = "DELETE FROM $the_table WHERE number=$number";

برای دیلت یک ردیف ، در کد بالا شرطی با where نوشته شده ، تا ردیف هایی دیلت بشوند که در ستون number اونها فلان مقدار خاص باشد.



می دونید که کوئری دیلت حتما باید WHERE را داشته باشه وگرنه کل سطرها را پاک می کنه... پس حواستون باشه با این کوئری دیلت با احتیاط کار کنید.... بهتره یک کپی از جدولتون قبلش بگیرید.. و وقتی کوئری دیلت درست کار کرد و خیالتون راحت بود اون کپی جدول را می توانید پاک کنید... چون اگر شرط را درست ننویسید کل سطرها را پاک می کنه.
 

saalek110

Well-Known Member
در صفحه ۵ تاپیک سایت سازی که اینها گفته شد ، تقریبا همه چیز کار با دیتابیس دیگه گفته شده بود.

در صفحات بعدی جدول texts و posts ساخته شد ولی اونها هم یک جدول بودند خوب، و کار با اونها با جدولی که ما باهاش کار کرده بودین فرقی نداشت.
 

saalek110

Well-Known Member
در صفحه ۹ خلاصه کد گذاشتیم مثلا:

کد لینک:
HTML:
 <a href="http://www.example.com/">This is a Link</a>
<a href="http://www.example.com/"><img src="URL" alt="Alternate Text"></a>

کد عکس:
HTML:
<img src="boat.gif" alt="Big Boat" />
 

saalek110

Well-Known Member
فرمی که فایل فعلی را صدا می زند:

HTML:
 <form id='myform' action="<?php echo $_SERVER['PHP_SELF']; ?>" method = 'POST'>



یک دکمه که style داره، اون قسمت style را برای دکمه یا تکست کپی کنید تا سایز دکمه یا تکست و فونت نوشته روی دکمه را تغییر دهید:

CSS:
<button type="button" style=" font-size:35px; height:55px; width:120px" >f5</button>



یعنی این را کپی کنید، در جایی که در دکمه بالا می بینید قرار دهید:

CSS:
style=" font-size:35px; height:55px; width:120px"



فرم خود صدا زن و جواب php اون:

PHP:
 <form id='myform' action="<?php echo $_SERVER['PHP_SELF']; ?>"  method = 'POST'>
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
 <input type="submit" name='action_2' value="Submit">
</form>

<?php
 if(isset($_POST['action_2']))
{
echo $_POST["name"];
echo $_POST["email"];
}
?>
 

saalek110

Well-Known Member
کد textarea:
HTML:
<textarea id="myrextarea"   form="name_of_id_of_form"  name="news" rows="8" cols="30">
neveshteh ha</textarea>
 

saalek110

Well-Known Member
ساختار یک تابع:
PHP:
<?php



function writeMsg( $number) {


global $ccoonn;

    echo"<br>";
    mysqli_set_charset($ccoonn, "utf8");

$sql = "SELECT my_text FROM texts WHERE number=$number ";
$result = mysqli_query($ccoonn ,$sql);

   while($info = mysqli_fetch_array( $result ))
    {
  $str=$info['my_text'];
    }
return $str;

}//func


?>
 

saalek110

Well-Known Member
حلقه for:
PHP:
for($index = 0; $index < 5; $index ++)
{
    echo "Current loop counter ".$index.".\n";
}
 

saalek110

Well-Known Member
کد دریافت در ارسال در آدرس:

PHP:
$f=$_GET['f'];

کد ارسال هم ، همون لینک است که مقدار بعد علامت سوال قرار می گیرد.
 

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

بالا