PDA

View Full Version : سوال: فرستادن و ذخیره کردن اطلاعات در پایگاه داده



bijar985
پنج شنبه 14 شهریور 1392, 21:41 عصر
با سلام به دوستان
من یه فرم طراحی کردم و ارتباط های دیتابیس آن را به زبان phpنوشتم و ظاهرا کد درست است ولی نمی دونم برای چی اشکال میگیره اگر منو راهنمایی کنید ممنون میشم
از لاین 3و4و5و6و7 اشکال میگیرد

<?php
$khobi = 'khobi';
$id=$_POST['id'];
$title=$_POST["title"];
$dec=$_POST["dec"];
$adress=$_POST["adress"];
$data=$_POST['data'];
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';
$mysql_db = 'karim';
$h=mysql_connect("127.0.0.1","root", "");

if(!$h){
echo "cannot connect";
exit();
}

$db=mysql_select_db("karim",$h);
$q = mysql_query("INSERT into image VALUES($id,$title,$dec,$adress,$data)");
echo "ok";

?>
<html>
<head>
<title> create a database table:step 1</title>
</head>
<body>
<h1> step 1:name and number</h1>
<form method="POST" action="INSERT.php">
<P><strong>table name:</strong><br>
<INPUT TYPE="TEXT" NAME="id" size=30></p>
<INPUT TYPE="TEXT" NAME="title" size=30></p>
<INPUT TYPE="TEXT" NAME="dec" size=30></p>
<INPUT TYPE="TEXT" NAME="adress" size=30></p>
<INPUT TYPE="TEXT" NAME="data" size=30></p>
<P><INPUT TYPE="SUBMIT" NAME="submit"></p>
</html>

webtracker
پنج شنبه 14 شهریور 1392, 21:53 عصر
چون هیچ مقداری برای اندیسی idو... در متغیر post وجود نداره شما باید قبل از استفاده از تابع isset برای چک کردن استفاده کنید

hamedarian2009
پنج شنبه 14 شهریور 1392, 22:34 عصر
چون کدهای php شما اول صفحه اجرا میشه و هنوز مقداری به صفحه ارسال نشده ارور میده باید از isset استفاده کنید به اینصورت:


if (isset($_POST['submit']))
{
$khobi = 'khobi';
$id=$_POST['id'];
$title=$_POST["title"];
$dec=$_POST["dec"];
$adress=$_POST["adress"];
$data=$_POST['data'];
$mysql_host = 'localhost';
$mysql_user = 'root';
$mysql_pass = '';
$mysql_db = 'karim';
$h=mysql_connect("127.0.0.1","root", "");

if(!$h){
echo "cannot connect";
exit();
}

$db=mysql_select_db("karim",$h);
$q = mysql_query("INSERT into image VALUES($id,$title,$dec,$adress,$data)");
echo "ok";
}

bijar985
پنج شنبه 14 شهریور 1392, 23:21 عصر
دست دوستان درد نکنه همه خطاها رفع شدن فقط اطلاعات داخل پایگاه داده نمیره؟

one hacker alone
جمعه 15 شهریور 1392, 03:48 صبح
با سلام مشکل اولتون رو با تابع isset حل کنید یا اینکه کدهای php رو داخل فایل جدا بریزیدو فروم رو به اون ارجاع بدید
برای مشکل دوم شما مقدار برگشتی mysql_query رو چاپ کنید اگر مقدار صحیح داد یعنی رشته ی کوئری ایراد داره اگه مقدار نداد یعنی خود تابع رو به درستی مقدار دهی نکردید
با متغییر های $id,$title,$dec,$adress,$data شما به یک شکل برخورد کردید یعنی همه رو از نوع int در نظر گرفتید در صورتی که فکر نکنم اینجوری باشه مثلا متغییر $title از نوع رشته اگه باشه باید اینجوری بزارید '$title'

hamedarian2009
جمعه 15 شهریور 1392, 10:52 صبح
بهترین راه اینه که شما یک بار تو خود mysql به صورت دستی مقادیرتون رو insert کنید و خود mysql براتون دستور sql مربوطه رو مینویسه و همونو کپی کنید و استفاده کنید فقط به جای مقادیر ثابت از متغیرهای که تعریف کردین استفاده کنید