RightClick

RightClick

 
امروز 16 بهمن 1390 12:34

همه زمانها UTC + 3:30 ساعت هستند




ارسال مبحث جديد پاسخ به مبحث [ 10 پست ] 
نويسندهپيغام
 موضوع پست: اضافه کردن و ویرایش هم زمان اطلاعات
پستارسال شده در: 19 تير 1389 14:07 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 9 خرداد 1389 22:39
پست ها : 37
با سلام.جدولی دارم که کاربر زمانی که می خواهد اطلاعات را ویرایش کند علاوه بر اینکه اطلاعات بانک برای ویرایش نمایش داده می شوند چند ردیف دیگر در پایین جدول ایجاد می شوند که کاربر می تواند علاوه بر ویرایش اطلاعات قبلی، این ردیف ها را نیز پر کند.
مشکلی که دارم این استکه چگونه باید از دستورات iNSERT و Update استفاده کنم که هر دو کار فوق (ویرایش قبلی ها- اضاف شدن موارد جدید)با هم انجام گیرد.
با تشکر


بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 20 تير 1389 14:50 
آفلاين
کاربر فعال انجمن
کاربر فعال انجمن
نماد کاربر

تاريخ عضويت: 8 تير 1387 16:57
پست ها : 541
محل سکونت: مشهد مقدس
دقيقا متوجه منظورتون نشدم...
خب مگه تعدادي فيلد براي ويرايش و تعدادي براي درج نيست؟فيلد هاي درج رو جدا گانه تحليل كنيد و فيلدهاي ويرايش رو جداگانه
اگه منظورتون اين نيست فرم اچ تي ام ال اش رو بذاريد تا بهتر متوجه بشم

_________________
خود پسندی مانع آموختن است.:: امام علی (ع) ::.
سیستم جامع و هوشمند افزایش آمار مجیک -
شبكه آموزش پارسيان - سیستم مدیریت محتوای ایرانی راش
عشق من = rightclick


بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 21 تير 1389 9:19 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 9 خرداد 1389 22:39
پست ها : 37
فکر مي کنم اگه رو همين چند کلمه راهنماييتان بيشتر فکر کنم. مشکل حل بشه .تا حالا که همه راهنمايي هاتون مشکلات رو حل کرده.موفق باشيد


Last edited by hasanzadeh on 21 تير 1389 17:20, edited 1 time in total.

بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 21 تير 1389 17:19 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 9 خرداد 1389 22:39
پست ها : 37
سلام.متاسفانه هر کار مي کنم يا عمل INSERT رو انجام مي ده يا UPDATE:
لطفا بررسي و راهنمايي کنيد:
( توضيح اضافي :فرم ورود اطلاعات به گونه اي استکه زمانيکه ديتا وارد ديتابيس مي شوند ممکن است چند Id يکسان مربوط به يک کاربر مشخص وارد شوند که البته فيلد Number جهت تمايز اساسي تر به صورت خود افزايشي تعريف شده است.يعني لازمه يک جدول با ساختار زير داشته باشين که اطلاعات به نحوي در اون قرار گرفته باشه که مثلا 1d شماره يک چند بار تکرار شده باشه اماNumber متفاوت باشه.براي اين Id قراره کارهاي زير انجام بشه)

1- Id در فرم Add_Edit_Form وارد مي شود.
2-مي خواهم فرم ADD_Edit علاوه بر اينکه تمام اطلاعات مربوط به آن Id را جهت ويرايش نشان مي دهد چند سطر خالي جهت اضافه نمودن اطلاعات جديد مربوط به همين Id را نيز نمايش دهد .
3-اسکريپت MKeditId نيز مي خواهم به گونه اي عمل کند که علاوه بر آپديت کردن اطلاعات قبلي ، به طور همزمان اطلاعات جديد فرم فوق (يعني فرم ADD_Edit)را نيز با همان Id وارد نمايد.


ساختار جدول:

Field Type Null Default
Number int(11) No
Id int(11) No
Name varchar(12) No
Family varchar(20) No
City varchar(10) No
Country varchar(10) No
متشکرم

config:
کد:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'Array';
$connect = mysql_connect ($dbhost, $dbuser, $dbpass)  OR die (mysql_erorr());
mysql_select_db ($dbname, $connect)OR die (mysql_erorr());
?>


Add_Edit_Form:
کد:
<html>
<head>
<link href="style.css" rel="stylesheet">
</head>
<body>
<table align="center" id="tablet" width="27%" >
<tr>
   <td id="main">Enter Your Id And Click Add_EDIT  </td>   
</tr>
<tr>   
   <td class='text'><form method='POST' action='Add_Edit.php'><p align='center'>
Your ID :<input type="text" name="Id" size="5">
<input type='submit' value='Add_EDIT' class='btn'></p>
</form></td>
</tr>
</table>
</form>
</table>


Add_Edit:
کد:
<html>
<head>
<link href="style.css" rel="stylesheet">
<title> Learn : Array </title>
</head>
<body>
<table width="55%"  align="center" cellspacing="1"  id="tablet" >
  <tr>   
    <td id="main">Name</td>
    <td id="main">Family</td>
    <td id="main">City</td>
    <td id="main">Country</td>
   
  </tr>
<?php
include"config.php";
$query=mysql_query("SELECT * FROM `learn` WHERE  Number='$Number' ");
while($row=mysql_fetch_array($query)){
   $Number=$row[Number];
    $Id=$row[Id];
    $Name=$row[Name];
    $Family=$row[Family];
    $City=$row[City];
    $Country=$row[Country];

echo ('<form method="POST" action="MkeditId.php">');?>

    <input type='hidden' name='Number[]' value="<?php echo"$Number";?>"</td></td>
   <input type='hidden' name='Id[]' value="<?php echo"$Id";?>"</td></td>
 
  <tr>
     <td id='tmain'><input type='text' name='Name[]' value="<?php echo"$Name";?>"</td>
    <td id='tmain'><input type='text' name='Family[]' value="<?php echo"$Family";?>"</td>
    <td id='tmain'><input type='text' name='City[]' value="<?php echo"$City";?>"</td>
    <td id='tmain'><input type='text' name='Country[]' value="<?php echo"$Country";?>"</td>
    </tr>
         <?php
}
?> 
   <tr>
     <td id='tmain'><input type='text' name='Name[]' ></td>
    <td id='tmain'><input type='text' name='Family[]' ></td>
    <td id='tmain'><input type='text' name='City[]'> </td>
    <td id='tmain'><input type='text' name='Country[]' ></td>
    </tr>
    <tr>
     <td id='tmain'><input type='text' name='Name[]'> </td>
    <td id='tmain'><input type='text' name='Family[]' ></td>
    <td id='tmain'><input type='text' name='City[]' ></td>
    <td id='tmain'><input type='text' name='Country[]' ></td>
    </tr>
   
    <?php

echo('<input type="hidden" name="Id" value="'.$Id.'">');

  echo('<table width="35%" border="0" align="center" ><tr><div align="center"><input type="submit" value="Add_Edit" name="B1" class="btn"><input type="reset" value="Reset" class="btn"></p>

</tr></form>');
?>


MkeditId:
کد:
<?php
include "config.php";
$Data =array( n=>($_POST['Number']),i=>($_POST['Id']),na=>($_POST['Name']),f=>($_POST['Family']),c=>($_POST['City']),co=>($_POST['Country']));

$Howmany=count($_POST['Name']);

       $i=0;
    while($i<$Howmany)  {   
       $Number=$Data["n"][$i];
       $Id=$Data["i"][$i];
       $Name=$Data["na"][$i];
       $Family=$Data["f"][$i];
       $City=$Data["c"][$i];
       $Country=$Data["co"][$i];
   
         $EditData = "UPDATE `learn` SET Name='$Name', Family= '$Family',city='$City',country='$Country' where Id='$_POST[Id]' ";

$result = mysql_query($EditData) or die(mysql_error());   
              $i++;
            
                     }                 
   
if($EditData){
   echo "<p class='text'>Your data is Edit Sucsesfull";
}
else{
echo "<p class='text'>There Is a Problem.Please Try Again";   
}

?>



آخرين ويرايش توسط hasanzadeh on 4 مرداد 1389 20:11, ويرايش شده در 3.

بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 24 تير 1389 23:41 
آفلاين
کاربر حرفه ای
کاربر حرفه ای
نماد کاربر

تاريخ عضويت: 29 تير 1384 20:03
پست ها : 1007
محل سکونت: شيراز
سلام بچه ها،
ببين بهرام جان، شما يه input به نام []Id داري و يکي هم به نام Id تا اينجا مشکل داره و مشکل اينه که php مقدار Id بعد از اونه رو روي مقادير []Id مي نويسه چون همنامند.
براي حل مشکل اين نام رو عوض کن.

حالا چطوري هم update کني و هم insert.
اگه توي جدولت فيلد auto increment نداشته باشي که مي توني از Replace Into استفاده کني.
اگه هم داشته باشي مثل الآن اون مقادير input ي که Id اونا مقدار داره يعني چيزي به جز صفر، خوب بايد update بشن و بقيه هم insert.

بعد کل ماجرا رو هم بذار توي يه حلقه foreach

کد:
foreach( $_POST as $id => $val)
{
...
}



موفق باشي.

_________________
به جان زنده دلان، سعدیا، ملک وجود --- نیرزد آن که دلی را ز خود بیازاری


بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 26 تير 1389 20:57 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 9 خرداد 1389 22:39
پست ها : 37
در راستاي بخش اول راهنمايي ات ، فيلد Number از نوع auto increment رو داشتم كه در اسكريپت در دستور Update به جاي where Idنوشتم :

کد:
Where  Number='$Number'

اما نتونستم مشکلم رو با update و insert حل کنم.روشهاي مختلفي رو امتحان کردم نشد.ضمنا نمي دونم منظورتون اين بود :
کد:
if ($Id!=0){
لطفا بيشتر توضيح بدين يا اگه ممکنه کد MkeditId من رو اصلاح کنين.


بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 29 تير 1389 10:21 
آفلاين
کاربر حرفه ای
کاربر حرفه ای
نماد کاربر

تاريخ عضويت: 29 تير 1384 20:03
پست ها : 1007
محل سکونت: شيراز
سلام،
ببین اون ردیف هایی که با جاوا اسکریپت اضافه میشن، input مخفی که واسه id ش گذاشتی، مقدار صفر دارن.
بعد توی اون حلقه ای که همه input ها رو توی php بررسی میکنی، اونایی که id شون صفر هست insert میشن و بقیه update میشن. یه چیزی شبیه همین چیزی که گفتی..

_________________
به جان زنده دلان، سعدیا، ملک وجود --- نیرزد آن که دلی را ز خود بیازاری


بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 1 مرداد 1389 20:43 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 9 خرداد 1389 22:39
پست ها : 37
شما زحمت می کشید و راهنمایی می کنید که جای تشکر داره اما راستش هنوز نتونستم این مشکل رو حل کنم.
ظاهرا یه کمی برا فکر کردن پیر شدم !!!


بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 6 مرداد 1389 1:49 
آفلاين
داره خودمونی میشه
داره خودمونی میشه
نماد کاربر

تاريخ عضويت: 8 خرداد 1386 16:55
پست ها : 34
محل سکونت: تهران
به نظرم مجتبی کامل توضیح داده و کد کاملترش این میشه :
کد:
foreach($post as $key=>$value){
   if($key==0){
      // insert action
   }else{
      // update action
   }
}


البته موقع update میتونی تو Query از IN استفاده کنی یا اگه ردیف های آپدیت مشخصه تو کدت از in_array استفاده کنی و قبلش مقایسه کنی که ببینی Id وجود داره یا نه.


بالا
 مشخصات  
 
 موضوع پست: Re: اضافه کردن و ويرايش هم زمان اطلاعات
پستارسال شده در: 13 مرداد 1389 18:04 
آفلاين
داره خودمونی میشه
داره خودمونی میشه

تاريخ عضويت: 9 خرداد 1389 22:39
پست ها : 37
ضمن سلام.از راهنمایی خوبتان متشکرم.مشکلم رفع شد.موفق باشید


بالا
 مشخصات  
 
نمايش پست ها از پيشين:  مرتب سازي بر اساس  
ارسال مبحث جديد پاسخ به مبحث [ 10 پست ] 

همه زمانها UTC + 3:30 ساعت هستند


چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون کاربران عضو شده و 0 مهمان


شما نمي توانيد مبحث جديدي در اين انجمن ايجاد کنيد
شما نمي توانيد به مباحث در اين انجمن پاسخ دهيد
شما نمي توانيد پست هاي خود را در اين انجمن ويرايش کنيد
شما نمي توانيد پست هاي خود را در اين انجمن حذف کنيد
شما نمي توانيد فايل هاي پيوست در اين انجمن ارسال کنيد

جستجو براي:
پرش به:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Template made by DEVPPL - Persian Translation By : www.Maghsad.com