آموزش خواندن اطلاعات مورد نظر در MySQL


آموزش استخراج اطلاعات (Select Data) از پایگاه داده MySQL :

از دستور SELECT برای استخراج اطلاعات مورد نظر از یک یا چند جدول استفاده می شود. شکل کلی استفاده از دستور SELECT در MySQL به صورت زیر است :

                      SELECT column_name(s) FROM table_name                  

اگر از کاراتر * به جای نام ستون استفاده کنید، دستور SELECT اطلاعات کلیه ستون های جدول را می خواند :

                      SELECT * FROM table_name                  

برای دریافت اطلاعات کامل درباره نحوه کار دستور SELECT به بخش آموزش دستور select در زبان sql سایت تحلیل داده بروید.

آموزش خواندن (Select) اطلاعات در MySQLi :

کد مثال عملی زیر، اطلاعات ستون های id، firstname و lastname را از جدول MyGuests انتخاب کرده و در خروجی نشان می دهد :

کد مثال MySQLi شی گرا :

  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"]. "
"; } } else { echo "0 results"; } $conn->close(); ?>

در ادامه به تشریح نکات کد مثال فوق پرداخته ایم :

در ابتدا یک SQL query را با استفاده از دستور select ایجاد کرده و اطلاعات فیلدهای id، firstname و lastname را از جدول MyGuests خوانده ایم.
خط بعدی SQL query فوق را اجرا کرده و اطلاعات دریافت شده را در یک متغیر به $result ذخیره می کند.
در مرحله بعدی تابع num_rows() چک می کند آیا اطلاعات یک یا تعداد بیشتری سطر (از صفر بیشتر) برگردانده شده است یا خیر. اگر بیشتر از صفر سطر یا رکورد برگردانده شده باشد، تابع fetch_assoc() اطلاعات را در یک متغیر آرایه رابطه ای (associative array) قرار داده که می توانیم با استفاده از دستوراتی مثل حلقه یا loop به جستجو درون آن بپردازیم.
در مرحله آخر هم، حلقه while() loop، به جستجو درون آرایه پرداخته و اطلاعات خروجی شامل فیلدهای id، firstname و lastname را نشان می دهد.
کد مثال زیر، دستورات مثال قبل را با استفاده از روش عینا انجام داده و MySQLi رویه ای همان خروجی را بر می گرداند :

کد مثال MySQLi شی گرا :

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

همچنین می توانید با طراحی کدی مثل کد زیر، اطلاعات استخراج شده را در یک جدول HTML نشان دهید :

کد مثال MySQLi رویه ای :

  connect_error) {      die("Connection failed: " . $conn->connect_error);  }   $sql = "SELECT id, firstname, lastname FROM MyGuests";  $result = $conn->query($sql);  if ($result->num_rows > 0) {      echo "";      // output data of each row      while($row = $result->fetch_assoc()) {          echo "";      }      echo "
IDName
".$row["id"]."".$row["firstname"]." ".$row["lastname"]."
"; } else { echo "0 results"; } $conn->close(); ?>

آموزش انتخاب اطلاعات (Select Data) با روش PDO و دستورات آماده SQL :

در کد مثال عملی زیر از روش MySQLi PDO و دستورات آماده (Prepared Statements) که در درس های بعدی به آموزش آن خواهیم پرداخت، استفاده کرده ایم.
کد این مثال اطلاعات فیلدهای id، firstname و lastname را از جدول MyGuests خوانده و در یک جدول HTML نشان می دهد.

کد مثال MySQLi PDO :

  <?php  echo "<table style='border: solid 1px black;'>";  echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";  class TableRows extends RecursiveIteratorIterator {       function __construct($it) {           parent::__construct($it, self::LEAVES_ONLY);       }      function current() {          return "<td style='width:150px;border:1px solid black;'>" . parent::current(). "</td>";      }      function beginChildren() {           echo "<tr>";       }       function endChildren() {           echo "</tr>" . "n";      }   }   $servername = "localhost";  $username = "username";  $password = "password";  $dbname = "myDBPDO";  try {      $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);      $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);      $stmt = $conn->prepare("SELECT id, firstname, lastname FROM MyGuests");       $stmt->execute();      // set the resulting array to associative      $result = $stmt->setFetchMode(PDO::FETCH_ASSOC);       foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) {           echo $v;      }  }  catch(PDOException $e) {      echo "Error: " . $e->getMessage();  }  $conn = null;  echo "</table>";  ?>                  

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *