PDA

View Full Version : تغییر مقدار یک ستون از mysql table



storm_saeed
دوشنبه 09 تیر 1393, 15:27 عصر
سلام دوستان
یه دیتابیس دارم که یه table توش ساختم و بهش مثلا ۵۰ تا ستون دادم یه هم چین چیزی
$con=mysqli_connect($host,$username,$password,$db) ; $sql = "CREATE TABLE Download_Table(";
for($i = 1; $i<=50 ; $i++){
if($i!=50)
$sql.="id_".$i." INT(30) NOT NULL DEFAULT '0',";
else
$sql .="id_".$i." INT(30) NOT NULL DEFAULT '0')";
}


if (mysqli_query($con,$sql));
حالا سوال من اینجاس که چطور مثلا id_10 رو بگیرم و مقدارشو +=۱ بکنم
ممنون

abolfazl-z
دوشنبه 09 تیر 1393, 18:54 عصر
اگر درست فهمیده باشم دارید می گویید که ++ بشود. کد ذیل را نگاه کنید :

UPDATE Download_Table set id_10 = id_10 + 1

storm_saeed
سه شنبه 10 تیر 1393, 08:15 صبح
ممنون حالا چطور میشه مقدار id_10 رو از دیتابیس گرفت و بادستور echo نشونش داد ؟ چون الان این چیزی که دادین درست کار کرد ولی من تویه phpmyadmin , این ای دی چیزی نداشت که ببینم مقدار توش چنده
و یه چیز دیگه من در واقع ۵۰ تا محصول با id های مختلف دارم میخوام حالا هر کدوم که دانلود شد یکی از این Id ها که بهش میفرستم ++ بشه میخوام بدونم این جدولی که ساختم (یعنی اسم هر عنصر برابر idمحصول باشه و مقدار توشو عوض کنم ) خوبه یا نه

2undercover
سه شنبه 10 تیر 1393, 09:53 صبح
ممنون حالا چطور میشه مقدار id_10 رو از دیتابیس گرفت و بادستور echo نشونش داد ؟ چون الان این چیزی که دادین درست کار کرد ولی من تویه phpmyadmin , این ای دی چیزی نداشت که ببینم مقدار توش چنده
و یه چیز دیگه من در واقع ۵۰ تا محصول با id های مختلف دارم میخوام حالا هر کدوم که دانلود شد یکی از این Id ها که بهش میفرستم ++ بشه میخوام بدونم این جدولی که ساختم (یعنی اسم هر عنصر برابر idمحصول باشه و مقدار توشو عوض کنم ) خوبه یا نه

این روش زیاد روش جالبی نیست، چون علاوه بر اینکه تعداد ستون های زیادی که داره اگه بعدا بخواید تعداد 50 تا را بکنید 51 یا 49 تا به راحتی ممکن نیست.

روش بهتر به نظر من اینه که توی این جدول سه تا ستون داشته باشید یکی id، یکی id محصول و یکی تعداد دانلود و هر وقت یک محصول جدید اضافه شد یک سطر جدید هم به این جدول اضافه بشه و به ازای هر دانلود می تونید با داشتن id محصول اینطوری یکی به تعداد دانلود ها اضافه کنید:

UPDATE `table` SET `download` = `download` + 1 WHERE (`product_id` = ID)


و هر وقت بخواید ببینید چند بار یک محصول دانلود شده با داشتن id محصول می تونید اینجوری عمل بکنید:

SELECT `download` FROM `table` WHERE (`product_id` = ID)


==========

البته اگه قبلا یک جدول برای محصولات توی پایگاه داده دارید می تونید یک ستون به همون جدول اضافه بکنید.

storm_saeed
سه شنبه 10 تیر 1393, 11:43 صبح
ممنون یعنی :یه دیتابیس به نام DB دارم بعد توش یه Table بسازم بعد
table:
| id | product_id |downloads
داشته باشم
بعد مثلا اگه ۳ تا محصول داشته باشم میشه چطوری میشه جدولش ؟ ۳ تا id ۳ تا product id و سه تا downloads ?
میشه نحوه ساختشو بگید

sooren_66
سه شنبه 10 تیر 1393, 12:52 عصر
if ( isset($_POST['submit']) )
{
$link = mysql_connect($mysql_host, $mysql_username, $mysql_password);
mysql_select_db($mysql_database);
mysql_query("SET NAMES utf8");
mysql_query("SET CHARSET utf8");
$id=$_POST['id'];
$product_id=$_POST['product_id'];
$downloads=$_POST['downloads'];
$query="INSERT INTO tbname(id,product_id,downloads) VALUES ('$id','$product_id','$downloads')"
$result = mysql_query($query);
echo "ثبت شد";
}

sooren_66
سه شنبه 10 تیر 1393, 13:31 عصر
اگه 30 تا محصول هم داشته باشید باز هم 3 تا ستون بیشتر احتیاج ندارید.و فقط تعداد آیدی افزایش پیدا میکنه و به محصولات اضافه میشه