رفتن به مطلب

ذخیره داده ها در دیتابیس


پست های پیشنهاد شده

یه تعداد داده رو بصورت عدد ، تصویر، متن رو بوسیله foreach استخراج کردم اما حالا نمی دونم چطوری تو دیتابیس ذخیره بشه؟


<?php

$articles = array();
// Find all article blocks
foreach($html->find('div#content') as $article) {
$item['title'] = $article->find('h1', 0)->plaintext;
$item['intro'] = $article->find('h3', 0)->plaintext;
$item['details'] = $article->find('span.finalprice', 0)->plaintext;
$articles[] = $item;
}
echo
$title="<b>نام محصول:</b>". $item['title'] . "</br> ";
echo
$dec="<b>توضیحات:</b> ". $item['intro'] . "</br> ";
echo
$pr="<b>قیمت:</b> ". $item['details'] . " </br> ";

//to fetch all images from a webpage
$images = array();
foreach($html->find('img') as $img) {
$images[] = $img->src;
}
echo " $images[29]";
?>

ویرایش شده توسط buzz
لینک به ارسال

البته بهتره عکسهای هر محصول رو هم به صورت یک ایتم تو ارایه articles قرار بدید

خب یه جدول تو دیتابیس میسازین با 3 تا فیلد مثلا

product

describe

money

imgs

بعد با استفاده از یک حلقه این اطلاعات رو وارد دیتابیس کنید

foreach($articles as $art)
{
$query = "insert into table_name(product,describe,money,imgs)values('$art[0]','$art[1]','$art[2]','".implode(',',$art[3])."')";
$wpdb->query($query);
}

خب اگه از کد درون وردپرس استفاده نمیکنید میتونین به جای $wpdb->query($query); کد mysqli یا PDO خودتونو بزارین

لینک به ارسال

با استفاده از دستور Insert یا update در mysql این کار انجام میشه. اما اگر در وردپرس ، برای چیزی شبیه پنل تنظیمات می خواید این کار رو انجام بدید ، این مطلب رو بخونید:

http://forum.wp-parsi.com/tutorials/article/145-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D9%BE%D9%86%D9%84-%D8%AA%D9%86%D8%B8%DB%8C%D9%85%D8%A7%D8%AA-%D8%AF%D8%B1-%D9%85%D8%AF%DB%8C%D8%B1%DB%8C%D8%AA/

قسمتی که Update_Option رو توضیح داده :)

لینک به ارسال

ممنون از دوستان

الان من یه دیتابیس وصل شدم و دستوری نوشتم که دیتابیس ایجاد بشه و بعدا داده ها از آرایه ها برزه تو جدول اما به دو مشکل برخوردم. یک وقتی اجرا می کنم می نویسته table person not exit's و برای تنظیم فیلد عکس در دیتابیس غیر از اینکه نوعش blob باشه بقیه تنظیماتش چطور باید باشه.

لطفا این کد رو نگاه کنید و مشکلاتش رو بفرمایید و اگه ممکنه تصحیح شدش رو بذارید با تشکر


$con = mysql_connect ("localhost","root", "");
mysql_select_db("price", $con);
if (!$con)
{
die(mysql_error());
}else {
// Find all article blocks
foreach($html->find('div#content') as $article) {
$item['title'] = $article->find('h1', 0)->plaintext;
$item['intro'] = $article->find('h3', 0)->plaintext;
$item['details'] = $article->find('span.finalprice', 0)->plaintext;
$articles[] = $item;
}
$articles = array("$item"=>"title","$item"=>"intro","$item"=>"details");
mysql_select_db ( "price", $con );
$sql="CREATE TABLE Persons(title CHAR(30),intro TNT,details CHAR 30)";
$debugquery = mysql_query("INSERT INTO Persons (title, intro, details) VALUES ('$articles')");
if (!$debugquery)
{
die(mysql_error());
}
}
echo
$title="<b>نام محصول:</b>". $item['title'] . "</br> ";
echo
$dec="<b>توضیحات:</b> ". $item['intro'] . "</br> ";
echo
$pr="<b>قیمت:</b> ". $item['details'] . " </br> ";

//to fetch all images from a webpage
$images = array();
foreach($html->find('img') as $img) {
$images[] = $img->src;
}
echo " $images[29]";

لینک به ارسال

یه چندتا نکته:

اول اینکه برای ساخت جدول شما دستور مای اس کیو ال رو توی متغیر ریختید که این اشتباهه!

دوم اینکه برای ساخت جدول در MySql معمولا به یه ستون دیگه با ویژگی INT NOT_NULL که PRIMARY KEY شده لازم هست.

سوم اینکه در اولین آزمایش کد معلوم نیتس که درست کار می کنه یا نه! به همین دلیل از or die هم باید استفاده کنید:


$con = mysql_connect ("localhost","root", "");
mysql_select_db("price", $con);
if (!$con)
{
die(mysql_error());
}else {
// Find all article blocks
foreach($html->find('div#content') as $article) {
$item['title'] = $article->find('h1', 0)->plaintext;
$item['intro'] = $article->find('h3', 0)->plaintext;
$item['details'] = $article->find('span.finalprice', 0)->plaintext;
$articles[] = $item;
}
$articles = array("$item"=>"title","$item"=>"intro","$item"=>"details");
mysql_select_db ( "price", $con );
mysql_qeury("CREATE TABLE Persons(id INT NOT NULL AUTO INCREMENT,PRIMARY KEY(id),title CHAR(30),intro TNT,details CHAR 30) ENGINE=MyISAM") or die(mysql_error());
$debugquery = mysql_query("INSERT INTO Persons (title, intro, details) VALUES ('$articles')");
if (!$debugquery)
{
die(mysql_error());
}
}
echo
$title="<b>نام محصول:</b>". $item['title'] . "</br> ";
echo
$dec="<b>توضیحات:</b> ". $item['intro'] . "</br> ";
echo
$pr="<b>قیمت:</b> ". $item['details'] . " </br> ";

//to fetch all images from a webpage
$images = array();
foreach($html->find('img') as $img) {
$images[] = $img->src;
}
echo " $images[29]";

لینک به ارسال

الان یه خطایی داد خط 23


mysql_qeury("CREATE TABLE Persons(id INT NOT NULL AUTO INCREMENT,PRIMARY KEY(id),title CHAR(30),intro TNT,details CHAR 30) ENGINE=MyISAM") or die(mysql_error());

Fatal error: Call to undefined function mysql_qeury() in C:\wamp\www\New folder\simplehtmldom_1_5\test.php on line 23

ویرایش شده توسط buzz
لینک به ارسال

توابع mysql قدیمی شده و deprecate شده هست از کلاس mysqli یا pdo استفاده کنید خیلی مناسبتره

کوئریتونم به این صورت بنویسید

"CREATE TABLE Persons(id INT NOT NULL AUTO INCREMENT,title VARCHAR(30),intro INT NOT NULL,details VARCHAR(30) NOT NULL,PRIMARY KEY(id)) ENGINE=MyISAM"

دیتابیس غیر از اینکه نوعش blob باشه بقیه تنظیماتش چطور باید باشه

نوع blob وقتی هست که شما بخواهید خود عکس رو ذخیره کنید که این کار مناسب نیست و باعث سنگین شدن بانک میشه شما باید عکسها رو در یک پوشه ذخیره کنید و نام اونها رو در یک فیلد مثلا با نام imgs از نوع TEXT یا VARCHAR(2048) قرار بدید

لینک به ارسال
  • 4 هفته بعد...

دوباره دچار بد خطایی شدم.

وقتی اجرا می کنم این خطا می ده.

Table'price.person' dosn't exist

ویرایش شده توسط buzz
لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...