PDA

View Full Version : سوال: آپدیت دیتابیس mysqli



behnamsayar
پنج شنبه 17 آبان 1397, 19:24 عصر
سلام
دوستان من یه پنل کاربری برای کاربرام ساختم که هر کاربر یه پروفایل داشته باشه بتونه اطلاعاتش رو ببینه و ویرایش کنه

حالا تو این دو قسمت گیر کردم که چطوری اطلاعاتش رو اپدیت و نمایش بدم تو پروفایل خودش

برای ارتباط هم از mysqli استفاده کردم

ممنون میشم راهنمایی کنید

charcharkh
جمعه 18 آبان 1397, 12:03 عصر
سلام اطالعات کاربر رو بخون از دیتابیس بعد توی یه فرم جاسازی کن که مقادیر دیتابیس رو توی فرم نشون بدی بعد همونا رو کاربر ادیت میکنه و دکمه تایید رو میزنه و شما هم اون مقادیر جدید رو میگیری و توی دیتا بیس اپدیت میکنی بهمین راحتی به همین خوشمزگی:چشمک:

behnamsayar
جمعه 18 آبان 1397, 12:27 عصر
ممنون
برای نمایش به این صورت انجام دادم مشکلی نداشته



$wallet = $_SESSION['wallet'];$pass = $_SESSION['pass'];$result = mysqli_query($con,"SELECT * FROM user WHERE wallet = '$wallet' AND pass = '$pass' LIMIT 1");while($row = mysqli_fetch_array($result)){ $min = $row['min'];$wallet = $row['wallet'];}

ولی برای ادیت به مشکل خوردم هرکاری کردم نشد
ممنون میشم با کد مثال بزنید فرم باید با سشن های تعیین شده دیتابیس هرکاربر رو فراخوانی کنه برای نمایش و ادیت
اینش گیر کردم

charcharkh
جمعه 18 آبان 1397, 13:46 عصر
نیازی به سشن نداری

مثل این بزن وقتی از دیتابیس خوندی اینجوری بریزش توی فرم


<input type="text" name="<?= $row['wallet'] ?>">

charcharkh
جمعه 18 آبان 1397, 13:48 عصر
اگر دوست داشتی anydesk بده برات ریموت بشم و توی کدهای خودت برات مرتبش کنم

behnamsayar
جمعه 18 آبان 1397, 15:00 عصر
ممنون سورس فعلا رو لوکال هست.
این کد فرم هست که نمایش میده


session_start();
if (!isset($_SESSION['wallet']) || !isset($_SESSION['pass'])){header("location:login");}
include "config.php";
$wallet = $_SESSION['wallet'];
$pass = $_SESSION['pass'];
$result = mysqli_query($con,"SELECT * FROM user WHERE wallet = '$wallet' AND pass = '$pass' LIMIT 1");
while($row = mysqli_fetch_array($result)){ $mining = $row['bitcoin'];$wallet = $row['wallet']



<form action="savemining" method="post">
<input type="text" name="mining" id="mining" class="form-control" readonly="readonly" />
<input type="hidden" name="wallet" value="<?php echo $wallet ?>" />
<input type="submit" class="btn btn-success btn-lg" value="Save Mining" />
</form>

اینم کد برای ذخیره در دیتابیس

session_start();
if (!isset($_SESSION['wallet']) || !isset($_SESSION['pass'])){header("location:login");}
$bitcoin = $_POST['bitcoin'];
$wallet = $_POST['wallet'];
include "config.php";
$update = mysqli_query($con,"UPDATE user SET bitcoin ='$bitcoin', wallet ='$wallet'" );
echo '<p style="color:#FF0000;">ok</p>';
echo "$bitcoin<br>";
echo "$wallet";
با این وقتی تو دیتابیس اپدیت میشه برای همه کاربرا ثبت میشه
درصورتی که باید برای همون کاربر در دیتابیس اپدیت بشه
ممنون میشم تصیحش کنید

charcharkh
جمعه 18 آبان 1397, 16:22 عصر
یه شرط برای update بزار خب معلوم برای همه کاربران اپدیت میشه

در ضمن anydesk ربطی به لوکال یا چیز دیگه ای نداره.

اینجوری بزن




UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;

charcharkh
جمعه 18 آبان 1397, 16:26 عصر
https://www.w3schools.com/sql/sql_update.asp

اینو بخون برای اپدیت

behnamsayar
جمعه 18 آبان 1397, 16:26 عصر
ممنون
ولی من یکم گیج شدم
میشه همین که دادید رو تو کدای من جایگذاری کنید

charcharkh
جمعه 18 آبان 1397, 16:34 عصر
ببین وقتی توی دیتا بیس بخواهیم دستور اپدیت اجرا کنیم بایست یک ردیف رو مشخص کنیم و گرنه دیتابیس کلا اپدیت میشه

حالا چجوری ؟ با یک کلید مشخص که توی شرط where توی sql میزنیم . معمولا توی دیتابیس هر ردیف یا رکورد یه کلید اصلی داره که بایست هم داشته باشه تا بتونیم اون ردیف رو از دیگر رکردها تمایز بدیم

ستون اول تیبلت چی هست ؟ یا باییست آیدی همون رکورد باشه یا آیدی کاربر بایست باشه

همون رو بزار توی شرط

اینجوری بزن البته با مقادیر خودت جاسازی کن


UPDATE Customers SET ContactName = 'Alfred Schmidt', City= 'Frankfurt'WHERE CustomerID = 1;

behnamsayar
جمعه 18 آبان 1397, 16:40 عصر
ممنون
خب تا اینجا رو گرفتم که باید با ایدی تیبل هارو جدا کرد
الان ستون اول من همون ایدی هست

149233
این دیتابیس من
اینم دستور اپدیت من


$result = mysqli_query($con,"SELECT * FROM user WHERE pass = '$pass'");

تو فرم قراره ورودی pass اپدیت بشه

ببخشید من مبتدی هستم

charcharkh
جمعه 18 آبان 1397, 16:44 عصر
$result = mysqli_query($con,"SELECT * FROM user WHERE pass = '$pass' WHERE id = $id");

بجای $id میتونی آیدی کاربر مورد نطر یا آیدی همون ریدف رو بزنی که توی این تیبل من 9 و 10 رو میبینم

charcharkh
جمعه 18 آبان 1397, 16:46 عصر
anydesk رو توی کامیوترت نصب کن تا سریعتر بتونم کمکت کنم من خیلی نمیتون آنلاین بموم بایست برم بهرحال میل خودت هست وقتی نصب کردی پاسورد بده تا ریموت بشم

تو گوگل بزن anydesk بهت میگه چیکار کنی

از اینجا هم میتونی دانلود کنی
http://p30download.com/fa/entry/73468/

پاسورد هم توی پیام شخصی بده

behnamsayar
جمعه 18 آبان 1397, 17:05 عصر
خصوصی چک کن داداش

charcharkh
جمعه 18 آبان 1397, 17:08 عصر
الان میام 10 دقیقه