فیلتر کردن رکوردها در PHP
فیلتر کردن رکوردها
قسمت WHERE در انتهای دستورات SELECT، UPDATE و یا DELETE قرار می گیرد و رکوردها را فیلتر می کند(مثلاً در دستور DELETE مشخص می کند که عمل حذف روی کدام رکوردها اتفاق بیافتد).
نحوه استفاده:
SELECT column_name(s)
FROM table_name
WHERE column_name operator value
برای کسب اطلاعات بیشتر در مورد SQL، به لینک روبرو مراجعه فرمایید: آموزش SQL-مقدمه
در مثال زیر، بشرطی ستون های id و firstname و lastname از جدول MyGuests انتخاب می شوند که مقدار ستون lastname آنها برابر "Doe" باشد:
مثال(MySQLi Object-oriented)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// ارتباط به پایگاه داده
$conn = new mysqli($servername, $username, $password, $dbname);
// مطمئن شدن از صحت ارتباط
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) {
// نمایش داده ها به ازای هر ردیف
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
//بستن ارتباط با پایگاه داده
$conn->close();
?>
خروجی کد بالا:
مثال(MySQLi Procedural)
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// ایجاد ارتباط با پایگاه داده
$conn = mysqli_connect($servername, $username, $password, $dbname);
// اطمینان از صحت ارتباط
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
//تنظیم کوئری
$sql = "SELECT id, firstname, lastname FROM MyGuests WHERE lastname='Doe'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// نمایش داده ها به ازای هر ردیف
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
خروجی کد بالا:
برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.
- نوشته شده توسط امیر پهلوان صادق
- بازدید: 16869
دیدگاهها
سلام ببخشید خوساتم یک سؤال کنم در این مثال شما باید یک چیز را کامل نوشت خواستم ببینم مثلا کسانی که شماره موبایل ایرانس دارند مثل این where phone='0935' این ها را برام فیلتر کنه چون با این مثال چک کردم نشد و باید شماره تلفن کاملشان را بنویسم خیلی ممنون که کمکم میکنید
با سلام.
شما باید کوئری به این صورت بنویسید:
SELECT * FROM `table` WHERE `mobile` LIKE '0935%'
شما باید از کلمهی کلیدی LIKE و % استفاده کنید. درصد در واقع جایگزین تمامی کاراکترها (در اینجا شمارهها) میشه.
ضمن تشکر از آموزشهای خوبی که دارید،
اگر بخواهیم مقدار فیلتر را از یک فیلد لیست کشویی در فرم با متد POST فراخوانی و با ستون جدول مقایسه کنیم، کد به چه صورت تغییر می کند؟
با سلام و تشکر.
توسط POST['controlNa me']; //comment_$ مقدار اون کنترل رو میگیرید و سپس این مقدار رو در query گنجونده و رکوردهای مرتبط رو بر میگردونید.
سؤالتون یه مقدار گنگ هست، بیشتر توضیح بدید تا بهتر راهنمایی بشه کرد.
با تشکر
تو این قسمت کد pdo ندارید به عنوان مثال
با سلام.
یه مثال از PDO:
$db = new PDO("...");
$statement = $db->prepare("s elect id from some_table where name = :name");
$statement->execute(array(':name' => "Jimbo"));
$row = $statement->fet ch();