PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : وارد کردن اطلاعات یک فیلد از روی فیلد دیگه در sql



Marshall
March 3rd, 2020, 14:12
با سلام و خسته نباشید
من یه جدول توی دیتابیس دارم allpost که time بصورت mktime ذخیره شده، که تعداد بالای هزار تا رکورد هستند، احتیاج به یک فیلد دیگه به نام date داشتم که تاریخ اونجا بصورت عادی ذخیره بشه 'Ymd H:is'.
فیلد date رو ساختم الان باید داده time رو به تاریخ عادی با استفاده از تابع jdate تبدیل کنم ولی برای تمام رکوردها
توی دیتابیس بخوام اینکارو انجام بدم کدش چطوریه؟
ممنون می شم راهنمایی کنید، با تشکر

Marshall
March 3rd, 2020, 20:25
راه حلی وجود داره؟

Marshall
March 4th, 2020, 00:42
اگه کسی بلده لطفا راهنمایی کنید :53:

rezaonline.net
March 4th, 2020, 01:03
دیتابیس تاریخ شمسی نداره بصورت پیشفرض .
با همون php یه فایل بنویس هزار تا رکورد رو بگیر و آپدیت بزن تاریخ رو .

Marshall
March 4th, 2020, 01:12
دیتابیس تاریخ شمسی نداره بصورت پیشفرض .
با همون php یه فایل بنویس هزار تا رکورد رو بگیر و آپدیت بزن تاریخ رو .

خیلی ممنون

یه فایل هست که دیتابیس رو می شه با php آپدیت کرد میشه با این فایل منو راهنمایی کنید؟
خیلی ممنون می شم

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";


// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}


$time = اینجا نمی دونم چطوری مشخص کنم منظورم فیلد تایم در جدول انتخابی است!


$Datetime = jdate(Y-m-d H:i:s)


$sql = "UPDATE allpost SET date='$DateTime' WHERE id=id";


if ($conn->query($sql) === TRUE) {
echo "Record updated successfully";
} else {
echo "Error updating record: " . $conn->error;
}


$conn->close();
?>

rezaonline.net
March 4th, 2020, 01:14
یه دستور بنویس همه ی رکورد ها رو بخونید
https://www.w3schools.com/php/func_mysqli_fetch_assoc.asp
بعد با foreach به ازای هر رکورد دستور آپدیتی که نوشتید رو اعمال کنید.
برای تبدیل time به date هم روشش رو بلدید با jdate

- - - Updated - - -

https://www.w3schools.com/php/func_mysqli_fetch_all.asp

Marshall
March 4th, 2020, 01:17
دیتابیس تاریخ شمسی نداره بصورت پیشفرض .
با همون php یه فایل بنویس هزار تا رکورد رو بگیر و آپدیت بزن تاریخ رو .

خیلی ممنون

یه فایل هست که دیتابیس رو می شه با php آپدیت کرد میشه با این فایل منو راهنمایی کنید؟
خیلی ممنون می شم


<?php$servername = "localhost";$username = "username";$password = "password";$dbname = "myDB";
// Create connection$conn = new mysqli($servername, $username, $password, $dbname);// Check connectionif ($conn->connect_error) { die("Connection failed: " . $conn->connect_error);}
$time = اینجا نمی دونم چطوری مشخص کنم منظورم فیلد تایم در جدول انتخابی است!
$Datetime = jdate(Y-m-d H:i:s)
$sql = "UPDATE allpost SET date='$DateTime' WHERE id=id";
if ($conn->query($sql) === TRUE) { echo "Record updated successfully";} else { echo "Error updating record: " . $conn->error;}
$conn->close();?>

rezaonline.net
March 4th, 2020, 01:21
اول select کن کل رکورد ها رو
بعد توی حلقه foreach فیلد time رو بگیر بده به تابع jdate بعد زمان در میاد
بعد دستور آپدیتی که الان نوشتی رو بنویس به شرطی که id برابر با id باشه که توی حلقه میگیری

Marshall
March 4th, 2020, 01:53
اول select کن کل رکورد ها رو
بعد توی حلقه foreach فیلد time رو بگیر بده به تابع jdate بعد زمان در میاد
بعد دستور آپدیتی که الان نوشتی رو بنویس به شرطی که id برابر با id باشه که توی حلقه میگیری

خیلی ممنون و سپاسگزارم از شما

تا اینجا اومدم بعد از اجرا همه رکوردها تبدیل به یک تاریخ می شن اونم تاریخ امروز!!! 14-12-1398



<?php$servername = "localhost";
$username = "user";
$password = "pass";
$dbname = "db";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); }
$Alltime = Yii::$app()->db->createCommand('select time from allpost')->queryColumn();

foreach ($Alltime as $time) {
$c = jdate('Y-m-d h:i' , $time);
$sql = "update post set date='$c' where id=id";
}
if ($conn->query($sql) === TRUE) { echo "Record updated successfully";} else { echo "Error updating record: " . $conn->error;}
$conn->close();?>

نمی دونم مشکل از چیه!
همه تاریخ ها تاریخ آخرین نوشته می شن!
یعنی فقط زمان آخر و لحاظ میکنه

rezaonline.net
March 6th, 2020, 12:23
شما با فریم ورک Yii کار میکنید ؟
اگه جواب مثبته چرا بالا از mysqli استفاده کردید ؟
اگه جواب منفیه چرا از Yii::$app استفاده کردید ؟

Marshall
March 6th, 2020, 12:31
شما با فریم ورک Yii کار میکنید ؟
اگه جواب مثبته چرا بالا از mysqli استفاده کردید ؟
اگه جواب منفیه چرا از Yii::$app استفاده کردید ؟

سلام
بله از yii استفاده می کنم
با mysqli دیدم مشکلی نداره و بهش دقت نکرده بودم
یه چند وقتیه باهاش کار میکنم حدود شش ماهه
دستورش آپدیت کردنش رو به تنهایی نمی دونم و تاریخ ها برام آپدیت نمی شدن
برای همین رفتم توی قسمت مطالب توی پنل مدیریت
اونجا که مطلب به مطلب رو نشون میده
دستورش رو نوشتم که در صورتی که آیتم تاریخ مساوی آیتم این مطلب باشه زمانش رو بگیر و با jdate تبدیل کن به تاریخی که می خوام
صفحه رو که باز کردم تعداد مطالب ده تا توی صفحه بودن و 10 تا مطلب صفحه ای که باز کرده بودم دیدم تاریخشون درست شده
بعد گفتم 1000 مطلبش کنم
صفحه رو رفرش کردم تاریخ اون هزار مطلب درست شد
فقط می شه بی زحمت نگاه کنید ببنید کد بالای من چه مشکلی داشت چون هرکاری کردم هیچ جایی از سایت کار نکرد
با تشکر و آرزوی موفقیت