جلسه بیستم PHP: آموزش کامل زبان برنامه نویسی پی اچ پی مقدماتی تا پیشرفته
در این مقاله از کدپز با جلسه بیستم PHP که با موضوع آپدیت اطلاعات و محدود کردن رکورد های انتخاب شده از MySQL می باشد، در خدمت شما هستیم.
در قسمت قبل در جلسه نوزدهم PHP آموزش استخراج داده ها از پایگاه داده MySQL و همچنین حذف اطلاعات از دیتابیس MySQL را آموختیم.
در پایان این جلسه:
می آموزید تا اطلاعات موجود در جدول MySQL را ویرایش کنید.
و همچنین در این ، توانایی محدود کردن رکورد های انتخاب شده از جدول MySQL را نیز خواهید داشت.
به روزرسانی اطلاعات در جدول MySQL با استفاده از mysqli و PDO
از عبارت UPDATE برای به روزرسانی رکورد های موجود در یک جدول دیتابیس MySQL استفاده می کنیم.
1 2 3 4 |
UPDATE table_name SET column1=value, column2=value2,... WHERE some_column=some_value |
نکته: توجه داشته باشید که عبارت WHERE مشخص می کند که چه رکورد و یا رکورد هایی نیاز به ویرایش دارند. در صورتی که از عبارت WHERE استفاده نکنید، تمامی رکورد ها به روزرسانی خواهند شد. حال نگاهی به جدول “MyGuests” از جلسه بیستم PHP می اندازیم.
برای آشنایی بیشتر با دستورات SQL حتما نگاهی به این آموزش ها در سایت کدپز بیاندازید.
در مثال های زیر رکورد با id=2 در جدول “MyGuests” به روزرسانی می شود.
به مثال زیر، که با روش ( mysqli شی گرایی ) نوشته شده است توجه فرمایید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?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 = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; if ($conn->query($sql) === TRUE) { echo "Record updated successfully"; } else { echo "Error updating record: " . $conn->error; } $conn->close(); ?> |
مثال دوم : به صورت MySQL (رویه ایی):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<?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 = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; if (mysqli_query($conn, $sql)) { echo "Record updated successfully"; } else { echo "Error updating record: " . mysqli_error($conn); } mysqli_close($conn); ?> |
مثال سوم : به صورت PDO
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
<?php $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "myDBPDO"; try { $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "UPDATE MyGuests SET lastname='Doe' WHERE id=2"; // Prepare statement $stmt = $conn->prepare($sql); // execute the query $stmt->execute(); // echo a message to say the UPDATE succeeded echo $stmt->rowCount() . " records UPDATED successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } $conn = null; ?> |
بعد از این که جدول به روزرسانی شد، جدول مانند زیر خواهد شد:
آموزش محدود کردن رکورد های انتخاب شده از دیتابیس MySQL
از عبارت LIMIT در دیتابیس MySQL برای مشخص کردن تعداد رکورد های مورد نظر برای خواندن استفاده میکنیم.
با استفاده از عبارت LIMIT، می توانیم مدیریت چندین صفحه اطلاعات از رکوردهای خوانده شده را داشته باشیم. این امکان در جدول های بزرگ کاربردی تر می باشد. بازگردانی تعداد زیادی از رکورد ها می تواند بر عملکرد تاثیر به سزایی (تاثیر منفی) داشته باشد.
شما در حال آموزش و یادگیری جلسه بیستم PHP می باشید.
فرض می کنیم که ما تمامی رکورد ها از 1 تا 30 را می خواهیم. کوئری مورد نظر به این شکل خواهد بود.
بر فرض مثال نام جدول “Orders” می باشد.
1 |
$sql = "SELECT * FROM Orders LIMIT 30"; |
زمانی که کوئری بالا اجرا شود، 30 رکورد اول بازگردانی می شوند.
اما اگر رکورد های 16 تا 25 مدنظر ما باشد، چه باید کرد؟
دیتابیس MySQL با استفاده از دستور OFFSET راهی برای این مساله قرار داده است.
دستور کد کوئری زیر، به برنامه می گوید که فقط اطلاعاتِ 10 رکورد جدول از شماره 16 به بعد ( OFFSET 15 ) را بازگردانی کند.
1 |
$sql = "SELECT * FROM Orders LIMIT 10 OFFSET 15"; |
همچنین ما می توانیم با استفاده از دستور کوتاه تری به همین نتیجه دست یابیم.
1 |
$sql = "SELECT * FROM Orders LIMIT 15, 10"; |
توجه داشته باشید که وقتی از کاما استفاده می کنید، اعداد معکوس می شوند.
تبریک میگم شما موفق شدید تا جلسه بیستم PHP از کدپز را پشت سر بگذارید.
📝<<جسارت اجرایی کردن ایده هایتان را داشته باشید، جهان همیشه پر از ترسوهای خوش فکر است. . . . . >> ☑️
2 Comments
Join the discussion and tell us your opinion.
سلام. وقت بخیر. میشه لطفاً درباره متد :
error_reporting(E_ALL);
ini_set(‘display_error’,1);
کمی توضیح بدید…
من تا این حد میدونم که این دو دستور برای نمایش خطا هستند، اما طرز کار یا وظیفه هر کدومشون رو نمیدوم مخصوصاً اون خط پایینی، شما لطفاً توضیح بدید.
سلام.
با استفاده از قراردادن هر کدام از سطرهای زیر در بالای فایل PHP یا Config سایتتان که در همه صفحات لود میشود میتوانید نمایش خطا را فعال کنید.