‎‎استخراج اطلاعات ازبانك اطلاعاتي(select data)

Previous >    <Next  

‎با دستورselect sql ميتوان درphp ازديتابيس اطلاعات استخراج نمود.فرمت كلي ‎مطابق زيراست.

SELECT column_name(s) FROM table_name 

‎‎يابفرم زير با استفاده كراكتر ستاره، كه همه ستونها انتخاب ميگردد.

SELECT * FROM table_name 

‎همانطوركه دربخش ايجاد ديتابيس ذكرگرديد، باسه روش ميتوان درphp ازجداول اطلاعات ‎استخراج نمود .ولي براي عدم تكرارازروشmysqli شيگرا استفاده مي نمائيم.

‎درمثال زيرازجدولmyguests اطلاعات سه فيلدid , firstname , lastname استخراج ميگردد ‎دراين مثال همه رديفهاي جدول دريافت ميشود.

 <?php 
$servername = "localhost";
$username = "admin";
$password = "12345";
$dbname = "myDB";
//SELECT column_name(s) FROM table_name 
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if  ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname FROM MyGuests";
$result = $conn->query($sql);

if  ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?> 

‎درابتدا دستورselect مطابق فرمت اسكيوال استاندارد تنظيم شده و درمتغير‎$sql‎ ذخيره ‎ميشود.مطابق معمول، ارتباط با بانك اطلاعاتي برقرارميشود ونتيجه ارتباط در شي‎$connquery( )‎شي رابطه، دستورselect اجرا ‎و نتايج در شئ يا جدولresult ‎قرارميگيرد .نتايج درresult هم متشابه يكarray رفتار مي نمايد . نتايج درجدولي مشابه زير ‎قرارميگيرد.

idfirstnamelastname
row 1
row 2
row 3

‎‎متغيرnum_rows خاصيت شيresult است , كه تعداد ركورد اطلاعات دريافتي ميباشد.

‎همچن تابع يامتدfetch_assoc()‎ باعث حركت درسطر وقابليت انتخاب درآن را فراهم ميكند . ‎وجود درهر سطرانتجابي مقادير عناصرselect.را اشاره دارد كه بفرم زيراستفاده ميشود

$row["id"] $row["firstname"] $row["lastname"]

‎در مثال ذكر شده تمام اطلاعات جدول استخراج ميگردد .در كارهاي عملي عموما بخشي از رديف هاي ‎اطلاعات درلحظه مورد نيازاست .براي استخراج بخشي ازاطلاعات ازدستورselect همراه شرطwhere ‎استفاده ميكنند .فرمت كلي آن مطابق زيراست.

SELECT column_name(s) FROM table_name WHERE column_name operator value

‎درقسمتwhere عمدتا عبارات منطقيlogical،قرار ميگيرد . اما شروط براي فيلتركردن اطلاعات ‎گسترده ترازفرم ساده آن است .براي کسب اطلاعات بيشتر، بمراجع كامل آنهارجوع نمائيد.

‎‎مثال ـ استخراج اطلاعات شرطي

 <?php 
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
//SELECT column_name(s) FROM table_name WHERE column_name operator value
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if  ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname FROM MyGuests WHERE lastname='Doe'";
$result = $conn->query($sql);

if  ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?> 

‎دراين مثال شرطlastname=‎ 'doe'‎ است، يعني ركوردهائي ازجدولMygGuests انتخاب ‎ميگردد، كه فيلدlastname آنها‎‎"doe‎"‎ باشد.

‎‎

‎‎مثال ـselect با امكانorder by

‎استخراج اطلاعات با ركورد هاي زياد، جهت بررسي نيازمندطبقه بندي وترتيب دارد .مرتب نمودن ‎اطلاعات عمدتا با‎select order by‎ ‎انجام ميشود .دراين فرم ازselect امكان‎by order‎ روش مرتب ‎نمودن اطلاعات رامشخص مينمايد .فرمت كلي آن مطابق زيراست.

SELECT column1,column2,...
FROM table_name ODER BY column1,column2,... ASC | DESC;

‎درمثال نمونه كه ازهمان جدول اطلاعات استخراج مينمايد، اطلاعات را به ترتيبlastnme استخراج ‎ومرتب مينمايد .درصورتيكه نوع ترتيب مشخص نشود، پيش فرض آن صعوديست .درخواست مثال مطابق زير ‎ميباشد، كه درمتغير‎$sql‎ذخيره ميگردد

‎‎ $sql = ‎"SELECT id, firstname, lastname FROM MyGuests ORDER BY lastname‎";‎‎

‎‎برنامه مثال مطابق زيرميباشد، روالهاي اجرا مشابه مثالهاي قبلي است.

 <?php 
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
//SELECT column_name(s) FROM table_name ORDER BY column_name(s) ASC|DESC
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if  ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

$sql = "SELECT id, firstname, lastname FROM MyGuests ORDER BY lastname";
$result = $conn->query($sql);

if  ($result->num_rows > 0) {
  // output data of each row
  while($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
  }
} else {
  echo "0 results";
}
$conn->close();
?> 

Previous >    <Next