ما هم اگه میخواستیم از طریق خود هاست این کارو بکنیم این همه به خودمون زحمت نمیدادیم، همون اوّل رو Edit کنارش کلیک میکردیم و ویرایشش میکردیم.
حالا برای خلاصهتر شدن در PHP، کلّ اون کد بالا (در اصل کد SQL) رو که تحلیل کردیمش در یک خط، پشت سر هم مینویسیم:
کد:
UPDATE Game_scores SET score=700 WHERE name='mojtaba'
اگه در همون فایلهای برترین امتیازات، محتویات فایل savescores.php رو نگاه کنید، به این صورت هست (اگه یادتون باشه کار این فایل php ارسال امتیازات به دیتابیس بود):
کد:
<?php
$db = "gigfa_15515776_high_score";//Your database name
$dbu = "gigfa_15515776";//Your database username
$dbp = "123456";//Your database users password
$host = "sql212.gigfa.com";//MySQL server - usually localhost
$dblink = mysql_connect($host,$dbu,$dbp);
$seldb = mysql_select_db($db);
If(isset($_GET['name']) && isset($_GET['score'])){
//Lightly sanitize the GETs To prevent SQL injections and possible XSS attacks
$name = strip_tags(mysql_real_escape_string($_GET['name']));
$score = strip_tags(mysql_real_escape_string($_GET['score']));
$sql = mysql_query("INSERT INTO `$db`.`Game_scores` (`id`,`name`,`score`) VALUES ('','$name','$score');");
If($sql){
//The query returned TRUE - now do whatever you like here.
echo 'Your score was saved. Congrats!';
}Else{
//The query returned FALSE - you might want To put some sort of error reporting here…
echo 'There was a problem saving your score. Please try again later.';
}
}Else{
echo 'Your name or score wasnt passed in the request. Make sure you add ?name=NAME_HERE&score=1337 To the tags.';
}
mysql_close($dblink);//Close off the MySQL connection To save resources.
?>
دربین کدهای بالا این خط رو پیدا کنید:
کد:
$sql = mysql_query("INSERT INTO `$db`.`Game_scores` (`id`,`name`,`score`) VALUES ('','$name','$score');");
همون طور که میبینید، داخل پرانتز یک کد SQL دیگهست که برای اضافه کردن یک ردیف دیگه به جدول (ثبت امتیاز) استفاده میشه. برای آپدیت شدن، فقط کافیه اون کد رو با کد SQL جدیدمون جایگزین کنیم، یعنی این خط رو پاک کنیم و به جاش بنویسیم:
کد:
$sql = mysql_query("UPDATE Game_scores SET score=700 WHERE name='mojtaba'");
ولی توجّه داشتهباشید در این صورت ما گفتیم که همیشه امتیاز mojtaba رو 700 کنه، یعنی mojtaba و 700 هر دو باید متغیّر باشند، نه اسم و عددی ثابت. در PHP همیشه اسم متغیّرها با علامت دلار ($) شروع میشه، در این کد PHP مقدار متغیّرهای name$ و score$ به ترتیب اسم بازیکن و امتیاز رو نشون میدن (این مقدارها دقیقاً قبل از خطّی که این کد SQL در آن قرار داره داخل این متغیّرها ریخته میشود)، بنابراین به جای mojtaba که نشاندهندهی اسم بازیکن هست مینویسیم name$ و به جای 700 که نمایندهی امتیاز هست مینویسیم score$ . یعنی اون خط رو به این صورت در میآوریم:
کد:
$sql = mysql_query("UPDATE Game_scores SET score='$score' WHERE name='$name'");
حالا میتونید این فایل PHP جدید رو با یه اسم دیگه ذخیره کنید و برای آپدیت اطّلاعات ازش استفاده کنید.