PDA

View Full Version : سوال: مشکل در تابع update



esteftaats1368
شنبه 05 اسفند 1391, 23:25 عصر
سلام دوستان عزیز

بنده با تابع


$SQL = "UPDATE AddressBook SET email = 'new_email_address' WHERE First_Name = 'Bill' AND Surname = 'Gates'";

مشکل دارم.
یعنی نمی دونم نقش new_email_address در اینجا چیه.
کسی می تونه کمکم کنه؟

facefeed
شنبه 05 اسفند 1391, 23:47 عصر
با این کوئری ما به سرورمون میگیم که شما بگرد تو جدول AddressBook و یه شخصی رو پیدا کن که First_Name اون باشه Bill و Surname اون Gates باشه ، حالا وقتی که این شخص رو پیدا کرد بیاد فیلد email رو ست بکنه روی new_email_address ، یعنی این کوئری خداییش داره با آدم حرف میزنه :لبخند:

امیدوارم که متوجه شده باشی

esteftaats1368
یک شنبه 06 اسفند 1391, 12:28 عصر
با این کوئری ما به سرورمون میگیم که شما بگرد تو جدول AddressBook و یه شخصی رو پیدا کن که First_Name اون باشه Bill و Surname اون Gates باشه ، حالا وقتی که این شخص رو پیدا کرد بیاد فیلد email رو ست بکنه روی new_email_address ، یعنی این کوئری خداییش داره با آدم حرف میزنه :لبخند:

امیدوارم که متوجه شده باشی
خیلی ممنون داداش
راستش همه جاشو خوب توضیح دادی غیر همون مورد که در پست اول گفتم.
من همه قسمت اشو بلدم فقط همون مورد که گفتمو مشکل دارم. هنوز متوجه نشدم چی هستش. متغیره؟ چیه؟

imanitc
یک شنبه 06 اسفند 1391, 12:33 عصر
دوست عزیز new_email_address درحقیقت value جایگزین است روی مقدار قبلی توی فیلد ریخته میشه امیداوارم متوجه بشی الان :متفکر:

esteftaats1368
یک شنبه 06 اسفند 1391, 12:44 عصر
دوست عزیز new_email_address درحقیقت value جایگزین است روی مقدار قبلی توی فیلد ریخته میشه امیداوارم متوجه بشی الان :متفکر:
خیلی ممنون داداش. درست شد.
بجای new_email_address نمیشه مقدار اصلی رو مستقیم نوشت؟

imanitc
یک شنبه 06 اسفند 1391, 13:05 عصر
چرا هر چی دوست داری میتونی بذاری حتی عدد ،اسم ،ایمیل و ....................

omidabedi
یک شنبه 06 اسفند 1391, 13:30 عصر
خیلی ممنون داداش
بجای new_email_address نمیشه مقدار اصلی رو مستقیم نوشت؟

نوکرتم دیگه به این کار شما برنامه نویسی نمیگن دیگه
دو اشکال داره
1.کد شما به hard code تبدیل میشه که رو سرور فشار میاره
2.مثلا 100 تا ایمیل رو میخوای جایگزین کنی باید 100 بار کوئریتو بنویسی اما اینجوری به متغییر مقدار میدی خوده برنامه با یک کوئری 100 تاشو عوض میکنه در 2 ثانیه (به این میگن برنامه نویسی)

esteftaats1368
یک شنبه 06 اسفند 1391, 20:25 عصر
نوکرتم دیگه به این کار شما برنامه نویسی نمیگن دیگه
دو اشکال داره
1.کد شما به hard code تبدیل میشه که رو سرور فشار میاره
2.مثلا 100 تا ایمیل رو میخوای جایگزین کنی باید 100 بار کوئریتو بنویسی اما اینجوری به متغییر مقدار میدی خوده برنامه با یک کوئری 100 تاشو عوض میکنه در 2 ثانیه (به این میگن برنامه نویسی)
یعنی این کد که نوشتم بهینه نیست؟

<?php
session_start();
$new_name = $_POST['name'];
$new_name = htmlspecialchars($new_name);
$db = mysql_connect("localhost","root","");
$sdb = mysql_select_db('example', $db);
if ($sdb)
{
$email = $_SESSION['email'];
$SQL = 'select * from users '
."where email = '$email'";
$result = mysql_query($SQL);
if ($result)
{
$num_rows = mysql_num_rows($result);
if ($num_rows > 0)
{
$num = mysql_num_rows($result);
for($i=0; $i < $num; $i++)
{
$row = mysql_fetch_array($result);
$old_name= $row['name'];
}
$email = $_SESSION['email'];
$SQL = "UPDATE users SET name = '$new_name' WHERE email = '$email'";
$result = mysql_query($SQL);
if ($result)
{
echo "ok";
}
}
}
}
?>

Unique
یک شنبه 06 اسفند 1391, 20:32 عصر
فکر کنم هنوز متوجه نشدی ! ببین توی نمونه کد های برنامه نویسی کد نویس وقتی میخواد بگه مثلا توی این string باید نام ایمیل را بگذارین بجای اینکه مثال بزنه میاد و مثلا توضیح میده !

insert into addressbook(ab_email) values('email_address_places_here');

حالا میشد بنویسه :

insert into addressbook(ab_email) values('test@test.com');

این تیپ کار را بیشتر توی کدهای آماده یا توی انجمن ها میبینی !