buzz

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

9 پست در این موضوع قرار دارد

یه تعداد داده رو بصورت عدد ، تصویر، متن رو بوسیله 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) قرار بدید

به اشتراک گذاری این پست


لینک به پست

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

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

Table'price.person' dosn't exist

ویرایش شده در توسط buzz

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری