آموزش Mysql در PHP – عبارت WHERE
سلام
زمانی فرا میرسد که بخواهید اطلاعات خاصی را از یک جدول نمایش بدید، که برای اینکار میتوانید داده ها را به کمک عبارت شرطی WHERE فیلتر کنیم که بر اساس شرطی که میذاریم نمایش داده بشن، در این قسمت از آموزش پایگاه داده در PHP به این موضوع می پردازیم، در ادامه همراه بپرسم باشید.
از عبارت WHERE برای فیلتر کردن رکوردها استفاده می شود.
از عبارت WHERE فقط برای استخراج رکوردهایی استفاده می شود که یک شرط مشخص را برآورده می کنند.
۱ |
SELECT column_name(s) FROM table_name WHERE column_name operator value |
انتخاب و فیلتر داده ها با MySQLi
مثال زیر ستون های شناسه، نام و نام خانوادگی را از جدول beporsam_users که در آن نام خانوادگی “akhondy” است انتخاب کرده و در صفحه نمایش می دهد:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ |
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 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 beporsam_users WHERE lastname='akhondy'"; $result = $conn->query($sql); if ($result->num_rows > ۰) { // output data of each row while($row = $result->fetch_assoc()) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "۰ results"; } $conn->close(); ?> |
توضیح کدهای بالا:
ابتدا کوئری SQL را تنظیم میکنیم که ستون های id,dirstname,lastname را انتخاب کند به شرطی که فیلد lastname آن ها برابر با akhondy باشد.(در واقع فقط داده رکوردهایی رو نمایش میده که فیلد نام خانوادگی برابر akhondy باشه).
سپس خط بعدی کوئری SQL را اجرا و داده های به دست آمده را در متغیر result$ ذخیره میکند.
تابع ()num_rows بررسی میکند که آیا بیش از یک ۰ برگردانده شده است یا خیر.
اگر بیش از صفر ردیف برگردانده شود، تابع ()fetch_assoc همه نتایج را در یک آرایه انجمنی قرار می دهد که می توانیم از طریق آن حلقه بزنیم. حلقه ()while در مجموعه نتیجه حلقه می زند و داده های فیلتر شده را نمایش میدهد.
مثال زیر همان مثال بالا را به روش رویهای MySQLi نشان میدهد:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ |
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // Create connection $conn = mysqli_connect($servername, $username, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "SELECT id, firstname, lastname FROM beporsam_users WHERE lastname='akhondy'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > ۰) { // output data of each row while($row = mysqli_fetch_assoc($result)) { echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>"; } } else { echo "۰ results"; } mysqli_close($conn); ?> |
همچنین می توانید نتیجه را در یک جدول HTML قرار دهید:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ |
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDB"; // 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 beporsam_users WHERE lastname='Doe'"; $result = $conn->query($sql); if ($result->num_rows > ۰) { echo "<table><tr><th>ID</th><th>Name</th></tr>"; // output data of each row while($row = $result->fetch_assoc()) { echo "<tr><td>".$row["id"]."</td><td>".$row["firstname"]." ".$row["lastname"]."</td></tr>"; } echo "</table>"; } else { echo "۰ results"; } $conn->close(); ?> |
انتخاب داده با PDO
مثال زیر از عبارات آماده شده استفاده می کند.
id,firstname,lastname را از جدول beporsm_users که در آن نام خانوادگی «akhondy» است انتخاب میکند و آن را در یک جدول HTML نمایش میدهد:
۱ ۲ ۳ ۴ ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳ ۱۴ ۱۵ ۱۶ ۱۷ ۱۸ ۱۹ ۲۰ ۲۱ ۲۲ ۲۳ ۲۴ ۲۵ ۲۶ ۲۷ ۲۸ ۲۹ ۳۰ ۳۱ ۳۲ ۳۳ ۳۴ ۳۵ ۳۶ ۳۷ ۳۸ ۳۹ ۴۰ ۴۱ ۴۲ ۴۳ ۴۴ ۴۵ |
<?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 beporsam_users WHERE lastname='akhondy'"); $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>"; ?> |
آموزش به پایان رسید، توسط عبارت شرطی WHERE فیلتر های خوبی رو میتونید روی داده ها اعمال کنید تا فقط داده های دلخواهتون رو نمایش بدید.
چنانچه مشکلی در نمایش داده ها از دیتابیس داشتید در بخش پرسش و پاسخ سایت میتوانید، سوال خود را بپرسید.
موفق باشید.
ارسال نظر
شما باید وارد شوید یا عضو شوید تا بتوانید نظر ارسال کنید