PDA

View Full Version : کمک در مورد نوشتن کد Insert و UPDATE



Master_Power
پنج شنبه 25 تیر 1394, 23:02 عصر
سلام
فرض میکنیم یه فرم داریم که 2 تا text filed داره
یکی نام و یکی نام خانوادگی
حالا میخوایم کدی بنویسیم که برای اولین بار وقتی پر میکنه INSERT انجام بشه و دفعات بعدی برای تغییر UPDATE انجام بشه با شرطی که اگه مثلا توی اپدیت اگه اسم را نخواست آپدیت کنه و فقط فامیل را آپدیت کرد اسم توی بانک همون قبلی بمونه.

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

reza_alie
پنج شنبه 25 تیر 1394, 23:27 عصر
شما اول یک select بزنید اگه وجود داشت که update در غیر این صورت insert بشه
شما کد رو بنویسید اگه مشکلی بود کمکتون می کنیم
موفق باشی

H:Shojaei
جمعه 26 تیر 1394, 06:36 صبح
سلام
فرض میکنیم یه فرم داریم که 2 تا text filed داره
یکی نام و یکی نام خانوادگی
حالا میخوایم کدی بنویسیم که برای اولین بار وقتی پر میکنه INSERT انجام بشه و دفعات بعدی برای تغییر UPDATE انجام بشه با شرطی که اگه مثلا توی اپدیت اگه اسم را نخواست آپدیت کنه و فقط فامیل را آپدیت کرد اسم توی بانک همون قبلی بمونه.

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

phpdev
جمعه 26 تیر 1394, 14:35 عصر
من خودم برای شمارش صفحات سایتم از این کد استفاده میکنم میتونی یکم تغییرش بدی و استاده کنی

اول پیدا میکنه تو کدوم صفحه هست بعد مطابق با اون پیج پارامترها رو ست میکنه و میگرده توی دیتابیس اگه نبود که یه رکورد جدید وارد میکنه اگر نه که میره میخونه ببینه چی داره میاد نمایش میده بعدش که نمایش داد میره آپدیتش میکنه (یه بازدید رو اظافه میکنه) اینم کدش :



<?php
$path = pathinfo($_SERVER['PHP_SELF']);
$fileName = strtolower($path['filename']);
switch($fileName){
case 'index':
$productID = 'home';
$carID = 'home';
break;

case 'contactus':
$productID = 'cont';
$carID = 'cont';
break;
case 'search':
$productID = 'sear';
$carID = 'sear';
break;
default:
$carID = isset($_GET['carID'])? $carID = $secure->cleanText($_GET['carID']):'0000';
$productID = isset($_GET['productID'])? $productID = $secure->cleanText($_GET['productID']):'0000';
}
try{
//check weather there is any record before
$stmt = $db->prepare("SELECT count(*) FROM `Table` WHERE carID = :carID AND productID = :productID");
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->execute();
$record = $stmt->fetchColumn(0);
//if NOT
if($record == 0){
$stmt = $db->prepare("INSERT INTO `Table` (`carID`, `productID`, `pVisited`, `lastVisit`) VALUES (:carID, :productID, :pVisited, :lastVisit)");
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->bindValue(':pVisited', 1, PDO::PARAM_STR);
$stmt->bindParam(':lastVisit', $date_time, PDO::PARAM_STR);
$stmt->execute(); }
//show page visited
$stmt = $db->prepare("SELECT `carID`, `productID`, `pVisited`, `lastVisit` FROM `Table` WHERE carID = :carID AND productID = :productID");
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
echo "<p>آمار بازدید " . $row['pVisited'] . " مرتبه - آخرین بازدید ". $row['lastVisit'] . "</p>";
//update counter table
$pVisited = (int)$row['pVisited']+1;
$stmt = $db->prepare("UPDATE `Table` SET `pVisited`= :pVisited,`lastVisit`= :date_time WHERE carID = :carID AND productID = :productID");
$stmt->bindParam(':pVisited', $pVisited, PDO::PARAM_STR);
$stmt->bindParam(':carID', $carID, PDO::PARAM_STR);
$stmt->bindParam(':productID', $productID, PDO::PARAM_STR);
$stmt->bindParam(':date_time', $date_time, PDO::PARAM_STR);
$stmt->execute();
}catch (PDOException $e){ error_log( nl2br("Problem in counter page" . $_SERVER['REMOTE_ADDR'] . "$date_time\r\n") ,3,'/errorFile.log');}

Master_Power
جمعه 26 تیر 1394, 15:53 عصر
خب این چه ربطی به سوال من داشت ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
من میخوام یه فیلد ساده را آپدیت کنه
مثل پسورد

Master_Power
شنبه 27 تیر 1394, 14:26 عصر
لطفا یه کد آپدیت برای این فرم بنویسید
مرسی
من هرچی مینویسم موقعی که save میکنم کار نمیکنه

<br>
<br>
<form action="" method="post" id="change_pass">
<div class="col-lg-12"><!--1 <div class="col-lg-6"> -->
<!-- %%%%%%%%%%%%%%%%%%%%% -->
<div class="row">
<div class="form-group">
<div class="col-lg-2" style="padding-top:1%"><label for="pass1">گذرواژه فعلی</label></div>
<div class="col-lg-4" style="margin-bottom:2%">
<input type="password" name="pass1" id="pass1" class="user-field form-control">
</div>
</div>
</div>
<!-- %%%%%%%%%%%%%%%%%%%%% -->
<br>
<!-- %%%%%%%%%%%%%%%%%%%%% -->
<div class="row">
<div class="form-group">
<div class="col-lg-2" style="padding-top:1%"><label for="pass2">گذرواژه جدید</label></div>
<div class="col-lg-4" style="margin-bottom:2%">
<input type="password" name="pass2" id="pass2" class="user-field form-control">
</div>
</div>
</div>
<!-- %%%%%%%%%%%%%%%%%%%%% -->
<!-- %%%%%%%%%%%%%%%%%%%%% -->
<div class="row">
<div class="form-group">
<div class="col-lg-2" style="padding-top:1%"><label for="pass3">تکرار گذرواژه جدید</label></div>
<div class="col-lg-4" style="margin-bottom:2%">
<input type="password" name="pass3" id="pass3" class="user-field form-control">
</div>
</div>
</div>
<!-- %%%%%%%%%%%%%%%%%%%%% -->
<!-- %%%%%%%%%%%%%%%%%%%%% -->
<div class="row">
<div class="form-group">
<div class="col-lg-2" style="padding-top:1%"><label for="submit"></label></div>
<div class="col-lg-4" style="margin-bottom:2%">
<input type="submit" name="submit" id="submit" class="btn btn-success btn-block" value="ذخیره تغییرات">

</div>
</div>
</div>
<!-- %%%%%%%%%%%%%%%%%%%%% -->
</div><!--1// <div class="col-lg-12"> -->

</form>

phpdev
شنبه 27 تیر 1394, 15:26 عصر
خب این چه ربطی به سوال من داشت ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
من میخوام یه فیلد ساده را آپدیت کنه
مثل پسورد

من راه حل کلی رو بهت گفتم منم همین کار رو که شما میخواهید برا یه فرم انجام بدید رو برای کار دیگه ای انجام میدم قرار نیست که کدهای شما رو ما بنویسیم!! قراره با یکم راهنمایی و با در نظر گرفتن حالتهای مشابه (مثلا منم میخوام اول ببینم اگه اون صفحه توی تیبل هنوز درج نشده و هیچ رکوردی نداره اول مارد بشه بعد نمایش و در آخر هم آپدیت) یه راهکار بدیم :لبخندساده:

من خودم میدونم این کد با کدی که شما میخوای فرق میکنه :بوس: از چارچوب کار برای خودت استفاده کن :چشمک:

Master_Power
شنبه 27 تیر 1394, 17:23 عصر
من کد را نوشتم

ولی یه خورده ایراد داره
در هر صورت وقتی دکمه دخیره اطلاعات را میزنم میگه گذرواژه فعلی اشتباهه

<?php
if(isset ($_POST['submit']))
{
$show_pass=mysql_query("SELECT * FROM kj_info WHERE kj_username=='$_SESSION[user]'");
while ($row=mysql_fetch_assoc($show_pass))
{$old_pass=$row[kj_password];}
$pass1=$_POST['pass1'];
$pass2=$_POST['pass2'];
$pass3=$_POST['pass3'];
if($pass1 !=$old_pass)
{echo "گذرواژه فعلی اشتباه وارد شده";}
elseif($pass1==$old_pass && $pass2==$pass3)
{
$result = mysql_query("UPDATE kj_info SET kj_password='$pass2' WHERE kj_username='$_SESSION[user]'");
if($result){
echo "گذرواژه شما با موفقیت ویرایش شد";}}
else echo"بازنشانی گذرواژه با خطا روبرو شد. لطفا دوباره امتحان کنید";
}


?>

phpdev
دوشنبه 29 تیر 1394, 19:47 عصر
اول اینو اصلاح کن


$row[kj_password]


اینجوری بزن



$row['kj_password']