PDA

View Full Version : MySql in php



benyamin_pc
جمعه 25 خرداد 1386, 19:23 عصر
این بانک mysql که با php بش میشه وصل شد و چیزی درج یا جذف یا .. کرد با چه محیطی ایجاد میشه؟؟پسوند فایلش چیه؟اگه میشه یکم در این باره راهنمایی کنین ممنون میشم

ealvandi
جمعه 25 خرداد 1386, 19:56 عصر
با چه محیطی ایجاد میشه


از طریق dos prompt میتونید دستوراتش رو اجرا کنید.

البته برای راحتی کار عمومان بوسیله phpmyadmin (دانلود http://www.phpmyadmin.net )باهاش ارتباط برقرار میکنن.



پسوند فایلش چیه؟

پس از export کردن میشه کلیه ساختار و داده هاش رو با پسوند .sql (البته به صورت متنی)
به دست آورد.

بانک mysql بهترین بانک از لحاظ سازگاری با زبان php است.

البته از امنیت بالایی هم برخورداره.

برای دانلود mysql به این آدرس رجوع کنید http://www.mysql.com (http://www.mysql.com/)

اگه باز سوالی داشتید بپرسید.

موفقق باشید.

benyamin_pc
جمعه 25 خرداد 1386, 20:21 عصر
ممنون اما چندتا علامت سوال هنوز دارم که اگه بخوام تک تک بپرسم یکم گیج کننده میشه اصلا" اگه یه فایل نمونه که داخل صفحه php یه دکمه باشه با یه تکس باکس که متن داخل تکس باکس رو با زدن دکمه به بانک اضافه کنه همراه با بانک و فایل php متد action بذارین خیلی ممنون میشم

ealvandi
جمعه 25 خرداد 1386, 21:11 عصر
کد فرم (html)


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="your php file name">
<label>
<input name="name" type="text" id="name">
</label>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>




کد درج اطلاعلات در بانک (php)


<?php
$host = "localhost";
$username = "";
$password = "";

$db = mysql_connect($host,$username,$password) or die(mysql_errno());
if (!db) echo " erro in connect with database";

mysql_select_db("your database name",$db);

$sql = " INSERT INTO `your table name ( `feild name`) VALUES ('$your text box name');";
$result = mysql_query($sql,$db) or die(mysql_error());
echo "data inserted in database";
?>

benyamin_pc
شنبه 26 خرداد 1386, 15:51 عصر
آقا دستت درد نکنه اما اینو می دونستم:ناراحت: اصلی ترین چیزی که بش نیاز دارم و یکم برام علامت سواله همون بانکیه که نوشتین کد اضافه کردن به بانک :: من با همین مشکل دارم چون نمی دونم فایل بانک رو چطوری ایجاد کنم همین این اطلاعات الان به کدوم فایل اضافه میشه؟اگه میشه فایل بانک رو بذارین ممنون میشم

hidensoft
شنبه 26 خرداد 1386, 17:28 عصر
سلام دوست من benyamin_pc

این بانک mysql که با php بش میشه وصل شد و چیزی درج یا جذف یا .. کرد با چه محیطی ایجاد میشه؟؟پسوند فایلش چیه؟اگه میشه یکم در این باره راهنمایی کنین ممنون میشم

از سوالات شما مشخصه که به تازگی شروع به کار کردید
mysql یه پایگاه داده Opensource هست . شما نیاز به ایجاد فایلی ندارید وقتی با PHP به پایگاه داده متصل می شید با دستوراتی که به mysql میدید تمام کار ها انجام می شه و شما فقطباید دستورات صحیح رو بدید.
از اونجا که شما تازهکار هستید شاید PHP بر روی کامپیوتر شما نصب نباشه ولی به دلیل اینکه شما اشاره ای نکردید منم میگذرم از این موضوع
شما ابتدا باید قوائد کار رو یاد بگیرید ... اگه شما برنامه نویسی کرده باشید قبلا راحت متوجه قوانین کار می شید مخصوصا اگه به زبان هایی مثل Perl یا C++ یا Python آشنایی داشته باشید

برای شروع به این لینکی که برات می زارم مراجعه کن ...
سرچ گوگل (http://www.google.com/search?hl=fa&q=php+mysql+tutorial&btnG=%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%D9%8A+Google&lr=)
سایت هایی که آموزش اولیه کار با MySQL در PHP رو یاد میدند اینجا هست.
فعلا با این جور سایت ها سرو کله بزن که قوائد کار دستت بیاد
بعدا اگه سوالی داشتی بپرس ... در خدمتیم

benyamin_pc
شنبه 26 خرداد 1386, 18:24 عصر
با سلام خدمت دوست خوبم
از توجه زیاد شما واقعا" ممنون
اما من برنامه نویسیم خوبه و پی اچ پی رو هم به تازگی یاد گرفتم اما از اونجایی که با زبان هایی مثل سی شارپ و سی و جاوا اسکریپت برنامه می نویسم و اچ تی ام ال هم بلدم زیاد با برنامه نویسیش مشکلی ندارم با کلاس ها و توابع و ... مشکلی نیست اما این اس کیو ال یکم برام علامت سوال
در حقیقت ایجور که داره دستگیرم میشه کلا" یه فایل که داده ها تو اون ریخته میشه و خونده و نوشته میشه دیگه چندتا فایل نداریم
اگه همینه بهم میگین یوزر و پسورد دی بی رو از کجا میشه عوض کرد؟اسم دی بی کجاس؟اصلا" خود این دی بی تو فایل مای اس کیو ال؟که پسوندش MYD هست؟اگه نه جاش رو بهم بگین لطفا"

benyamin_pc
شنبه 26 خرداد 1386, 20:17 عصر
آقا تقریبا" همه چیرو فهمیدم اون سوالارم فهمیدم دیگه جوابشونو نمی خوام فقط یه سوال


$o=$_POST['name'];
$sql = " INSERT INTO 'db' (`j`) VALUES ('$o')";
$result = mysql_query($sql,$db) ;

این تیکه کد مگه نباید یه فیلد با نام j و مقدار داخل فیلد name صفحه قبل بسازه؟

noorsoft
شنبه 26 خرداد 1386, 20:34 عصر
خیر چون نباید متغییرها را داخل تک کوتیشن بذاری

ealvandi
شنبه 26 خرداد 1386, 21:37 عصر
بله درسته.



خیر چون نباید متغییرها را داخل تک کوتیشن بذاری


مشکلی نداره . کار میکنه:چشمک:

hidensoft
شنبه 26 خرداد 1386, 23:08 عصر
ببین PHP با کتیشن و دابل کتیشن به دو نحوه متفاوت برخورد می کنه
به طور مثال در این کد

<?php
$name="man";
echo "$name";
?>
خروجی شما مساویست با man
اما در این کد

<?php
$name="man";
echo '$name';
?>
خروجی شما name$ هست نه man

musiox
شنبه 26 خرداد 1386, 23:16 عصر
سنگل کتیشن که متغیر o توشه خودش کاراکتر حساب میشه نه یه کاراکتر ویژه که محدوده رشته رو معلوم کنه . ما فقط با اون اولی کار داریم همونکه رشته با اون شروع میشه .

<?php
$name="man";
echo "'$name'";
?>
خروجیش اینه 'man'

benyamin_pc
یک شنبه 27 خرداد 1386, 07:11 صبح
اما اون کد رو که اجرا میکنم اصلا" تغییری در بانک من رخ نمیده یعنی مشکل از کجاست؟

oxygenws
یک شنبه 27 خرداد 1386, 08:57 صبح
اما اون کد رو که اجرا میکنم اصلا" تغییری در بانک من رخ نمیده یعنی مشکل از کجاست
مقدار db رو داخل سینگل کوت نذار.

hidensoft
یک شنبه 27 خرداد 1386, 09:48 صبح
کد صحیح

$sql="INSERT INTO db (j) VALUES (\"$o\")";
این طوری دابل کتیشن ها هم درون متغیر قرار می گیره و اطلاعات به طور صحیح وارد دیتا بیس می شه
چون اون روز کار داشتم سریع اومدم یه نگاهی انداختمو بعد رفتم متوجه این سوالت نشدم


آقا تقریبا" همه چیرو فهمیدم اون سوالارم فهمیدم دیگه جوابشونو نمی خوام فقط یه سوال

$o=$_POST['name'];
$sql = " INSERT INTO 'db' (`j`) VALUES ('$o')";
$result = mysql_query($sql,$db) ;
این تیکه کد مگه نباید یه فیلد با نام j و مقدار داخل فیلد name صفحه قبل بسازه؟

این تیکه کد اگه کار کنه
باید توی جدول db مقدار o$ رو به فیلد j اضافه کنه


اما اون کد رو که اجرا میکنم اصلا" تغییری در بانک من رخ نمیده یعنی مشکل از کجاست؟
حتی اگه داخل تک کتیشن هم بزاری باید اطلاعات وارد دیتا بیس بشه ... هرجا که از mysql_qoery استفاده کردی آخرش از die هم استفاده کن مثلا

$result = mysql_query($sql,$conn) or die(mysql_error()) ;
حالا اگه خطایی در دیتا بیس باشه نشون داده می شه

موفق باشید

benyamin_pc
یک شنبه 27 خرداد 1386, 10:54 صبح
من هر کار کردم نشد که نشد کد شما رم زدم باز نشد تو سینگ نذاشتم باز نشد تو دابل گذاشتم باز نشد تو دابل نذاشتم باز نشد هر کار بگین کردم باز نشد

benyamin_pc
یک شنبه 27 خرداد 1386, 10:58 صبح
کد صحیح رو که وارد می کنم میگه دیتا بیس رو انتخاب نکردی
همون کد اولی رو فقط db رو تو سینگل نذارم باز میگه دیتا بیس رو انتخاب نکردی

oxygenws
یک شنبه 27 خرداد 1386, 13:36 عصر
این تیکه کد اگه کار کنه
باید توی جدول db مقدار o$ رو به فیلد j اضافه کنه
اشتباه می کنی :)
این قوانینی که می گی به PHP ربط داره و ربطی به MySQL نداره.


کد صحیح رو که وارد می کنم میگه دیتا بیس رو انتخاب نکردی
همون کد اولی رو فقط db رو تو سینگل نذارم باز میگه دیتا بیس رو انتخاب نکردی
مهندس، از تابع mysql_select_db هم استفاده کن :)

hidensoft
یک شنبه 27 خرداد 1386, 14:33 عصر
اشتباه می کنی :)
این قوانینی که می گی به PHP ربط داره و ربطی به MySQL نداره.
خیلی دوست دارم بدونم کجا اشتباه می کنم
یکم توضیح بده

reza_rad
یک شنبه 27 خرداد 1386, 14:46 عصر
Simple Connection to MySQL with PHP (http://www.weberdev.com/ViewArticle/Simple-Connection-to-MySQL-with-PHP)

ealvandi
یک شنبه 27 خرداد 1386, 14:54 عصر
کد رو کامل بذار تا ببینیم.

oxygenws
یک شنبه 27 خرداد 1386, 15:36 عصر
خیلی دوست دارم بدونم کجا اشتباه می کنم
یکم توضیح بده
سینگل کوت و دابل کوت توی MySQL فرقی با هم ندارند.

ealvandi
یک شنبه 27 خرداد 1386, 17:07 عصر
سینگل کوت و دابل کوت توی MySQL فرقی با هم ندارند.


بله درسته. خیلی ازتون (oxygenws) متشکرم.

jhoseinii
یک شنبه 27 خرداد 1386, 17:12 عصر
پیشنهاد میکنم کدی که باهاش مشکل دارید رو منظم و مرتب!! بزارید توی یه فایل، ضمیمه کنید
تا همه بتونن راجه به اشکال کار فکر کنن

benyamin_pc
یک شنبه 27 خرداد 1386, 17:58 عصر
اشتباه می کنی :)
این قوانینی که می گی به PHP ربط داره و ربطی به MySQL نداره.


مهندس، از تابع mysql_select_db هم استفاده کن :)

میرزا اونم به کار برده بودم:چشمک:

benyamin_pc
یک شنبه 27 خرداد 1386, 18:01 عصر
اینم صفحه نهایی


<?php
$host = "localhost";
$username = "root";
$password = "pass";

$db = mysql_connect($host,$username,$password);

mysql_select_db("db",$db);

$o=$_POST['name'];
$sql = " INSERT INTO 'db' (`j`) VALUES ('$o')";
$result = mysql_query($sql,$db) or die(mysql_error()) ;
?>

اینم صفحه اول


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="file.php">
<label>
<input name="name" type="text" id="name">
</label>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>

benyamin_pc
یک شنبه 27 خرداد 1386, 18:02 عصر
این صفحه نهایی


<?php
$host = "localhost";
$username = "root";
$password = "pass";

$db = mysql_connect($host,$username,$password);

mysql_select_db("db",$db);

$o=$_POST['name'];
$sql = " INSERT INTO 'db' (`j`) VALUES ('$o')";
$result = mysql_query($sql,$db) or die(mysql_error()) ;
?>

این صفحه اول


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="file.php">
<label>
<input name="name" type="text" id="name">
</label>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>

hidensoft
یک شنبه 27 خرداد 1386, 20:09 عصر
اگه شما از این حرف

این قوانینی که می گی به PHP ربط داره و ربطی به MySQL نداره.
منظورتون این پست بود

ببین PHP با کتیشن و دابل کتیشن به دو نحوه متفاوت برخورد می کنه
به طور مثال در این کد

<?php
$name="man";
echo "$name";
?>
خروجی شما مساویست با man
اما در این کد

<?php
$name="man";
echo '$name';
?>
خروجی شما name$ هست نه man

من اینجا از mysql حرفی نزدم ... گفتم php اینطوری بر خورد می کنه
اگه منظورت شما


$sql="INSERT INTO db (j) VALUES (\"$o\")";
این یکی بود
اینو خودم امتحان کردم . شاید mysql برای تک کتیشن و دابل کتیشن هیچ تفاوتی در نظر نگیره ولی داریم توی محیط php کد می نویسیم و php برای این دو تفاوت هایی در نظر گرفته
شاید این کد رو به نحوه های دیگه ای هم بشه نوشت ولی دلیل اشتباه بودن این کد نمی شه ...
نمی دونم از چی ایراد میگیری ؟؟؟
هرچی بالا پایین کردم خطایی ندیدم

اگه اشتباه می کنم بگو ... تا دیگه از این اشتباه ها نکنم

benyamin_pc
یک شنبه 27 خرداد 1386, 21:06 عصر
بابا ای ول این همه اومدی جواب مارو ندادی با طرف فقط کل زدی؟!!! کد رو که خواسته بودین کامل گذاشتم یکی ببینه این کد مشکلی داره که اجرا نمیشه؟

oxygenws
یک شنبه 27 خرداد 1386, 22:48 عصر
اگه اشتباه می کنم بگو ... تا دیگه از این اشتباه ها نکنممن منظورم اینجا بود:


این تیکه کد اگه کار کنه
باید توی جدول db مقدار o$ رو به فیلد j اضافه کنهمنظورت از «مقدار $o» دقیقا استرینگ «$o» بود یا مقداری که داخل متغیر $o ذخیره شده؟!


بابا ای ول این همه اومدی جواب مارو ندادی با طرف فقط کل زدی؟!!! کد رو که خواسته بودین کامل گذاشتم یکی ببینه این کد مشکلی داره که اجرا نمیشه؟این کد رو درست کن:


$result = mysql_query($sql) or die(mysql_error()) ;

ضمن اینکه باز هم برنامه ات مشکل داره و به جای نق زدن پست ها رو درست بخون، قبلا جواب شما داده شده!!! و مسلما می تونی درست راهنمای PHP رو بخونی، تمام جواب هات داخل اون هست!! همونطور که خودت تو امضات گفتی: no pain, no gain :)

benyamin_pc
یک شنبه 27 خرداد 1386, 23:33 عصر
داداش تو ref نوشته می تونی اون پارامتر دومی که من نوشتم و شما می گی به کد شما تغییرش بدم رو بذاری می تونی نذاری اما بهتر که بذاری بعدش هم از کمکت ممنون اگه دلت نمی خواد هم دیگه هیچ وقت چیزی بهم نگو اما اون no pain no gain من کلا" تا امروز 3 روز رو یادگیری پی اچ پی و مای اس کیو ال وقت گذاشتم و خیلی چیز ها رم خوندم که اگه این مشکلم که زیاد باش مانوس نیستم حل شه تقریبا" به حد نیاز فعلیم پی اچ پی و مای اس کیو ال رو یاد گرفتم و این یعنی همون no pain no hichi حالا بازم از کمکت ممنون ولی این کد رو هر جور تغییر می دم بعد داده ها رو با mysql-front که باز می کنم هیچ تغییری نکرده

oxygenws
دوشنبه 28 خرداد 1386, 00:45 صبح
از این استفاده کن، دقیقا همین رو بنویسی هاااا.


<?php
$host = 'localhost';
$username = 'root';
$password = 'pass';

mysql_connect($host,$username,$password) or die(mysql_error());
mysql_select_db('db') or die(mysql_error());

$o=$_POST['name'];
$sql = "INSERT INTO db (j) VALUES ('$o')";
$result = mysql_query($sql) or die(mysql_error());
?>

benyamin_pc
دوشنبه 28 خرداد 1386, 07:00 صبح
حل شد البته مشکل از یه جای دیگه بود :: ولی کلا" برای db و j نباید سینگل یا دابل می ذاشتم
------------------------------------------------------
از همگی ممنون

hidensoft
دوشنبه 28 خرداد 1386, 11:19 صبح
منظورت از «مقدار $o» دقیقا استرینگ «$o» بود یا مقداری که داخل متغیر $o ذخیره شده؟!
اگه

$o="example";
یا

$o='example';
مقدار $o باشند با این کد

$sql = "INSERT INTO db (j) VALUES ('$o')";
مطمئنا example درون دیتا بیس قرار می گیره ... کاملا مشخصه
ولی اگه اینطوری کد بنویسیم

$sql = 'INSERT INTO db (j) VALUES ("$o")';
مقداری که درون دیتابیس ذخیره می شه o$ هست نه example
برای همینه که میگم اگه برای mysql فرقی نداشته باشه برای PHP خیلی فرق داره

فکر می کنم سوء تفاهم شده بود

oxygenws
دوشنبه 28 خرداد 1386, 14:37 عصر
حل شد البته مشکل از یه جای دیگه بود :: ولی کلا" برای db و j نباید سینگل یا دابل می ذاشتم عجب!!! پست شمارهء ۱۴ همین تاپیک رو بخون، صفحهء دوم.

benyamin_pc
دوشنبه 28 خرداد 1386, 18:11 عصر
نیتروژن اونجا نگفتی j هم نباید داشته باشه :لبخند:
در هر صورت ممنون

oxygenws
دوشنبه 28 خرداد 1386, 18:17 عصر
نیتروژن اونجا نگفتی j هم نباید داشته باشه :لبخند:
در هر صورت ممنون
نمکدون، j سینگل کوت نداشت، اون بک تیک بود که مشکلی نداره!!!

benyamin_pc
دوشنبه 28 خرداد 1386, 18:40 عصر
اینم صفحه نهایی


<?php
$host = "localhost";
$username = "root";
$password = "pass";

$db = mysql_connect($host,$username,$password);

mysql_select_db("db",$db);

$o=$_POST['name'];
$sql = " INSERT INTO 'db' (`j`) VALUES ('$o')";
$result = mysql_query($sql,$db) or die(mysql_error()) ;
?>

اینم صفحه اول


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="file.php">
<label>
<input name="name" type="text" id="name">
</label>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
</body>
</html>

اکسیژن عزیز قصد کل کل ندارم اما چون فکر نکنی پستاتو سر سری خونده بودم و الکی هی سوال می کردم دقیق این رو نگاه کن اگه سیگل نداشت بگو این همون سوالی بود که من پرسیده بودم و شما گفتی فقط دی بی :: حالا شاید شما یه جا دیگه رو دیده بودی من نمی دونم
بازم شک داری همون پستم رو ببین هیچ ادیتی هم در کار نیست اما می دونم که شما فقط خاصتی کمک کنی و من هم متشکرم :قلب:

benyamin_pc
دوشنبه 28 خرداد 1386, 18:44 عصر
:لبخند: انگار من اشتباه کردم اون سینگل نیست حق با شماست اصلا" دقت نکردم شرمنده