PDA

View Full Version : سوال: Update کردن بانک اطلاعاتی از طریق کد PHP



aliforever
چهارشنبه 23 فروردین 1391, 20:03 عصر
سلام خسته نباشید .
من می خوام یه کد بنویسم که وصل بشه به بانک اطلاعاتی و اطلاعات یکی از table ها رو تغییر بده .

-برای مثال : اسمشون رو عوض کنه یا رمزشون رو

و یه کد دیگه که بشه باهاش کل اطلاعات table رو تغییر داد

- برای مثال : فرض کنید p_players یک table و توش اطلاعات تمامی بازیکنها نوشته شده . حالا من می خوام بیام بهشون مثلا اگه یه بازی اینترنتی مثل تراوین هست ، مدال بدم ( به همشون ). چیکار باید بکنم ؟؟

می شه کدها رو قرار بدید ؟؟ :قلب: :بوس:

speeed
چهارشنبه 23 فروردین 1391, 21:58 عصر
کاری نداره که باید مقدار رو بگیری و فیلدهاتو اپدیت کنی

Update نام جدول
Set نام فيلد = مقدار جديد
Where نام فيلد = مقدار قبلی


Update Student
Set Name =" Ali "
Where Name = " Ahmad "

aliforever
چهارشنبه 23 فروردین 1391, 22:33 عصر
اینو یاد گرفتم . دمت گرم .
ولی این باعث میشه که مقدارش تغییر کنه .
من می خوام به مقدارش اضافه شه نه تغییر کنه .

mtchabok
چهارشنبه 23 فروردین 1391, 22:46 عصر
Update Student
Set Value =Value + 1
Where Name = " Ahmad "

aliforever
چهارشنبه 23 فروردین 1391, 23:06 عصر
دمت گرم خوب بود .
یه سوال دیگه داداش :
با کدهای بالا به همه بازیکنا مثلا مدال داده می شه .
من یک کدی می خوام که طراحیش کرد وقتی بازیکن میاد ، رمزش رو بزنه و بعد فقط به اون مدال بده .
یا ، تو یه تکست باکس اسم یه بازیکن رو بنویسیم و به اون داده شه .

mtchabok
پنج شنبه 24 فروردین 1391, 01:05 صبح
کد بالایی که ویرایش شده همینکاری رو که می خواید انجام میده فقط به جای اسم فرد میتونید از متغیر استفاده کنید :

Update Student
Set Value = Value + 1
Where Name = $_GET['bazikon']

aliforever
پنج شنبه 24 فروردین 1391, 13:56 عصر
کد بالایی که ویرایش شده همینکاری رو که می خواید انجام میده فقط به جای اسم فرد میتونید از متغیر استفاده کنید :

Update Student
Set Value = Value + 1
Where Name = $_GET['bazikon']

اونو می دونم .
من می گم یه فرم باشه ، طرف بیاد اسم خودش و مقدار مدال رو بزنه بعد ارسال بزنه .
بعد اطلاعاتش به دیتابیس بره .

aliforever
پنج شنبه 24 فروردین 1391, 15:22 عصر
آقا من یه فرم باز کردم :


<html>
<head>
<title>دریافت طلا</title>
</head>
<body>
<form method="post" action="update.php">
Name: </br>
<input type="text" name="name" size="30"/></br>
Gold: </br>
<input type="text" name="gold_num" size="30"/> </br>
<input type="submit" value="دریافت طلای مورد نظر"/>

</form>
</body>
</html>


بعد یه فرم دیگه رو باز کردم با نام update.php :


<?php

include('../app/config.php');
$name= $_post [ ' name ' ]
$gold_num= $_post [ ' gold_num ' ]

$db_connect = mysql_connect($AppConfig['db']['host'],$AppConfig['db']['user'],$AppConfig['db']['password']);
mysql_select_db($AppConfig['db']['database'], $db_connect);

$query="UPDATE p_players set gold_num = gold_num + ['gold_num'] Where Name = $_Get['name'] mysql_query($query) or die ('error');

echo "Successfull";

mysql_close($db_connect);
?>


ولی وقتی به صفحه update.php می رم ارور می ده :

Parse error: syntax error, unexpected T_VARIABLE in /home/u272439766/public_html/ts1/app/update.php on line 5

مشکل از کجاست ؟؟

mtchabok
جمعه 25 فروردین 1391, 13:10 عصر
سلام
خط شماره 10 رو به اینصورت تغییر بدین :

$query="UPDATE p_players set gold_num = gold_num + $gold_num Where Name = '{$_Get['name']}'"; mysql_query($query) or die ('error');

MMSHFE
جمعه 25 فروردین 1391, 14:13 عصر
include '../app/config.php';
if(!isset($_POST['name'], $_POST['gold_num'])) {
die('Insufficient Data');
}
$name = $_POST['name'];
$gold_num = $_POST['gold_num'];

$db_connect = mysql_connect($AppConfig['db']['host'], $AppConfig['db']['user'], $AppConfig['db']['password']);
mysql_select_db($AppConfig['db']['database'], $db_connect);

$query = "UPDATE `p_players` SET `gold_num`=`gold_num`+{$gold_num} WHERE (`name`='{$name}')";
mysql_query($query) or die('Error');
echo 'Successfull';

mysql_close($db_connect);

به تغییرات کد دقت کنید. موفق باشید.

aliforever
شنبه 26 فروردین 1391, 16:46 عصر
ممنون مشکل حل شد .
یه سوال دیگه ، چط.ری می تونم تعداد بازیکنان ثبت نام شده رو با استفاده از کد PHP از بانک اطلاعاتی در بیارم . مثلا یه قسمت بزارم : آمار بازی که توش لیست ثبت نام کننده ها رو بنویسه .

MMSHFE
یک شنبه 27 فروردین 1391, 01:46 صبح
خوب با `SELECT COUNT(*) FROM `table و قراردادن اسم جدول بازیکنان ثبت نام شده بجای table میتونید تعداد رکوردهای جدول مربوطه رو بدست بیارین.

aliforever
دوشنبه 28 فروردین 1391, 16:35 عصر
سلام .
واقعا خوب راهنمایی می کنید . ایول .
یه سوال دیگه :
کدی وجود داره که من رو اسکریپتم پیاده ساز کنم که در زمان مشخص وصل شه به دیتابیس و یه مقدار مشخص رو تغییر بده ؟
مثلا سه شنبه ساعت 11 مقدار gold_num رو تغییر بده .

MMSHFE
دوشنبه 28 فروردین 1391, 16:46 عصر
باید کدتون رو توی یک فایل PHP قرار بدین و با Cron Jobs توی کنترل پانل اون رو برای زمان مشخص تنظیم کنید تا اجرا بشه.

aliforever
دوشنبه 28 فروردین 1391, 17:05 عصر
خوب با `SELECT COUNT(*) FROM `table و قراردادن اسم جدول بازیکنان ثبت نام شده بجای table میتونید تعداد رکوردهای جدول مربوطه رو بدست بیارین.

راستی من این کد رو زدم ولی syntax error می ده .
عکس php my admin رو گذاشتم .
من می خوام اونجایی که نوشته id ، اونا رو بشماره و به صورت عدد نشون بده . می خوام به عنوان تعداد بازیکنان به کار ببرم کد رو .

MMSHFE
دوشنبه 28 فروردین 1391, 17:12 عصر
SELECT COUNT(*) AS `total` FROM `p_players`

aliforever
دوشنبه 28 فروردین 1391, 17:36 عصر
SELECT COUNT(*) AS `total` FROM `p_players`


<?php


//
$db_connect = mysql_connect($AppConfig['db']['host'],$AppConfig['db']['user'],$AppConfig['db']['password']);
mysql_select_db($AppConfig['db']['database'], $db_connect);

SELECT COUNT(*) AS `total` FROM `p_players`

//mysql close
mysql_close($db_connect);

?>


اررور داد :

Parse error: syntax error, unexpected T_STRING in /home/u272439766/public_html/ts2/amar.php on line 8

MMSHFE
دوشنبه 28 فروردین 1391, 17:49 عصر
دوست عزیز اون یک کوئری MySQL بود نه یک دستور PHP. این کد رو استفاده کنید:


$db_connect = mysql_connect($AppConfig['db']['host'],$AppConfig['db']['user'],$AppConfig['db']['password']);
mysql_select_db($AppConfig['db']['database'], $db_connect);

$query = mysql_query('SELECT COUNT(*) AS `total` FROM `p_players`');

$count = 0;

if($query && mysql_num_rows($query) > 0) {
$query = mysql_fetch_assoc($query);
$count = $query['total'];
unset($query);
}

echo 'Number of players: '.$count.'<br/>'.PHP_EOL;

mysql_close($db_connect);