PDA

View Full Version : سوال: ذخیره کردن متغیر در دیتابیس



mr.javad15
چهارشنبه 14 آبان 1393, 12:24 عصر
سلام
من میخوام یک فرم پرداخت درست کنم
یه متغیر دارم



$au = $res['au'];



میخوام این متغیر رو که شناسه پیگیری رو در خودش ذخیره میکنه در داخل دیتا بیس ذخیره کنم

و داخل یک فایل ذیگه همین متغیر رو از دیتابیش بخونم


چطور این کار رو انجام بدم؟

arash691
چهارشنبه 14 آبان 1393, 12:51 عصر
نمیدونم الان این سوال بخاطر عدم اشنایی شما با MySQL و ارتباط اون با PHP هستش یا اینکه با روند کار مشکل داری . کدی نوشتین ؟

mr.javad15
چهارشنبه 14 آبان 1393, 13:10 عصر
من واقیتش با MySQL کار نکردم

تحقیق کردم و فهمیدم که باید با pdo باید MySQL وصل وصل شد
ولی اصلا نمیدونم باید چیکار کنم چون هر بار یک شناسه پیگیری در اون متغیر ذخیره میشه یعنی باید هر بار اون شناسه پیگیری داخل MySQL
ذخیره بشه و داخل یک فایل ذیگه همون شناسه پیگیری از MySQL خونده بشه

الان فایل هایی که من دارک این هست

request.php


<?php
$api = '1234';
$amount = 100; // toman
$callback = 'http://example.com/verify.php';
$order_id = 1;

$client = new SoapClient("http://www.jahanpay.com/directservice?wsdl");
$res = $client->requestpayment($api , $amount , $callback , $order_id );

if($res['result']==1)
{


echo "<meta charset=utf-8>شناسه پيگيري :".$res['au'];
$au = $res['au']; // dar database save shavad
echo $res['form'];
}
else
{
echo '<meta charset=utf-8><pre>';
$res = array_map('urldecode',$res);
print_r($res);
}




verify.php




<?php
$api = '1234';
$amount = 100; // toman

$order_id = 1;

$au = '....'; // az database begirid


$client = new SoapClient("http://www.jahanpay.com/directservice?wsdl");
$res = $client->verification($api , $amount , $au , $order_id, $_POST + $_GET );
if($res['result']==1)
{
echo "پيگيري بانک ". $res['bank_au'];
}
else
{
echo '<meta charset=utf-8><pre>';
$res = array_map('urldecode',$res);
print_r($res);
}


متغیر

$au = $res['au']; باید از request.php داخل دیتابیس ذخیره بشه
و داخل فایل verify.php خونده بشه

ولی من نمیدونم باید چیکار کنم

hamedarian2009
چهارشنبه 14 آبان 1393, 13:29 عصر
این فصل رو بخونید متوجه میشین چجوری به دیتابیس وثل بشین و اطلاعات رو ذخیره یا نمایش بدن
برای اتصال MySQL Connect و درج در دیتابیس MySQL Insert Data و خوندن از دیتابیسMySQL Select Data رو بخونی کافیه
http://www.w3schools.com/php/php_mysql_connect.asp


(http://www.w3schools.com/php/php_mysql_connect.asp)

arash691
چهارشنبه 14 آبان 1393, 13:42 عصر
طبق گفته ی دوستمون اموزش های w3 خوبه . نسخه ی فارسی این اموزش رو هم میتونید تو سایت http://www.beyamooz.com/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-my-sql دنبال کنید ...

بازم اگه اشکال داشتین سوال کنید

mr.javad15
چهارشنبه 14 آبان 1393, 17:24 عصر
سلام
من تونستم مقدار رو داخل دیتابیس ذخیره کنم
با استفاده از این دستور خواستم مقدار رو بگیرم اما نشد


$au = "SELECT au FROM pay"; // az database begirid

arash691
چهارشنبه 14 آبان 1393, 17:28 عصر
کدی که نوشتین رو قرار بدین ... چه خطایی میده ؟

mr.javad15
چهارشنبه 14 آبان 1393, 17:38 عصر
au هم داخل دیتابیس ذخیره میشه و مشکلی نداره

خطا اینه


( ! ) Parse error: syntax error, unexpected end of file in C:\wamp\www\ft\verify.php on line 36




125323

arash691
چهارشنبه 14 آبان 1393, 17:51 عصر
یک { در انتهای فایل قرار بدین ... SELECT شما شرط نداره ؟ یعنی میخوای یک لیست از au های موجود در جدول pay رو بگیری ؟ در غیر اینصورت غلطه کوئری که نوشتی

mr.javad15
چهارشنبه 14 آبان 1393, 18:01 عصر
درسته یدونه { کم بودش
چطوری شرط بذارم؟

arash691
چهارشنبه 14 آبان 1393, 18:15 عصر
"SELECT `column_name` FROM `tbl_name` WHERE ( condition );"

mr.javad15
چهارشنبه 14 آبان 1393, 18:21 عصر
الان این درسته؟

"SELECT `au` FROM `pay` WHERE ( condition );"

arash691
چهارشنبه 14 آبان 1393, 18:32 عصر
الان این درسته؟

"SELECT `au` FROM `pay` WHERE ( condition );"


بله درسته ولی من منظورم از condition یک شرط با ساختار SQL بود مثلا" :


"SELECT `username` FROM `tbl_student` WHERE ( `grade` >= 10 );"

نام کاربری دانشجویانی که نمره ی اونا بزرگتر یا مساوی 10 باشه رو برمی گردونه.

حالا تو برنامه شما au مربوط به کدوم کاربر یا سطر رو می خواین ؟ طبق شرطی که دارین condition رو کامل کنید مثلا" :


SELECT `au` FROM `pay` WHERE (`id` = '{$id}'); این میتونه یک نمونه کوئری باشه که au مربوط به رکوردی که id اون رو داریم رو داره بر میگردونه

mr.javad15
چهارشنبه 14 آبان 1393, 18:38 عصر
ممنون از راهنمایی
ببینید هر باز که صفحه پرداخت باز میشه
یک au به صورت خودکار به اخر ذیتابیس اضاف میشه
مثلا الان دیتابیس من تا 7 رفته و باید اخرین یعنی هفتیم au انتخاب بشه

حالا کدش چظوری میشه؟

125324

arash691
چهارشنبه 14 آبان 1393, 18:49 عصر
درباره ی last_insert_id سرچ کنید
-
یکم بیشتر توضیح بدم :

1- عمل INSERT رو که انجام دادین مقدار last_insert_id رو درون یک SESSION قرار بدین
2-موقع SELECT گرفتن شرط رو بصورت زیر بنویسید :

"SELECT `au` FROM `pay` WHERE (`id`='{مقدار درون سشن}');"

mr.javad15
چهارشنبه 14 آبان 1393, 20:21 عصر
با استفاده از این کد تونستم اخرین au رو به دست بیارم

$sql = "SELECT au FROM pay ORDER BY id DESC LIMIT 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["au"] . "<br>";
}
}

الان اینو چطور توی متغیر $au ذخیره کنم؟

$au = '....'; // az database begirid
هنگ کردم دیگه نمیدونم چیکار کنم :گیج:

mr.javad15
چهارشنبه 14 آبان 1393, 22:41 عصر
اپ...........!

arash691
پنج شنبه 15 آبان 1393, 10:01 صبح
یبار دیگه روش کار رو توضیح میدم :

تو فایل request شما یک au درج میکنید این مقدار رو بعد از عمل درج رون یک SESSION بریزید :

$_SESSION['au'] = $au;
قبلش start کردن SESSION و چک کردنش رو انجام بدین ( اگه اصلا" راجع به SESSION چیزی نمیدونید سرچ کنید ، تو خود سایت w3 و مشابه فارسی اون گفته شده )
هر جایی که نیاز به au دارین مقدارش درون SESSION وجود داره .

اگر نمیخواین مقدار au رو درون SESSION بذارید باید بعد از عمل INSERT کردن last_insert_id رو داشته باشید ، مقدارش رو درون SESSION قرار بدین تا بتونید au رو با کوئری زیر بدست بیارید :

"SELECT `au` FROM `pay` WHERE `id` = '{مقداری که درون سشن بعنوان last_insert_id ذخیره کردین}'"

marys_farahani
پنج شنبه 15 آبان 1393, 10:03 صبح
با استفاده از این کد تونستم اخرین au رو به دست بیارم

$sql = "SELECT au FROM pay ORDER BY id DESC LIMIT 1";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["au"] . "<br>";
}
}

الان اینو چطور توی متغیر $au ذخیره کنم؟

$au = '....'; // az database begirid
هنگ کردم دیگه نمیدونم چیکار کنم :گیج:



خب وقتی خروجی که بر میگرده یه فیلد داره چرا از حلقه استفاده کردی



$sql = "SELECT au FROM pay ORDER BY id DESC LIMIT 1";
$result = $conn->query($sql);
$rus = $result->fetch_assoc();
$au = $rus[0];