PDA

View Full Version : مبتدی: insert نشدن داده ها در جدول



iradata
جمعه 17 دی 1389, 20:03 عصر
سلام من تازه وارد PHP شدم :کف: می خوام که یک سری اطلاعات روو وارد جدول کنم اما نمیشه در ضمن من بانک اطلاعاتی خودم روو با برنامه xampp ساختم فایل های PHP و بانک mysql خودم روو هم ضمیمه کردم لطفا راهنمایی کنید :لبخندساده: 64691

mohsen6500
جمعه 17 دی 1389, 20:17 عصر
سلام دوست عزیز
واسه اینزرت کردن دیگه نیازی نیست که متفییر ها رو جدا کنی


$query = " insert into oldbiz
(id, name, prod) values
('".$id."','".$name1."','".$prod."')";

بلکه اینجوری باید بنویسی


$query = " insert into oldbiz
(id, name, prod) values
('$id','$name1','$prod')";

parsidev
جمعه 17 دی 1389, 20:21 عصر
سلام
دو تا مشکل داره
1- اولین و اصلی ترین اینه که در 4 فایل php مقداری غیر عددی را به فیلد id اختصاص دادی ولی در دیتا بیس نوع فیلد عدده!شما اگه می خوای چنین اطلاعاتی ثبت کنی باید نوع فیلد رو varchar(8) قرار بدی
اینو درست کنی سه تا فایلت درست میشه
2- در فایل oldbiz مقادیری رو وارد دیتا بیس oldbiz می خوای بکنی ولی چنین جدولی نداره و در دیتابیس اسم اون جدول رو اشتباهی گذاشتی oldliz
با احترام

parsidev
جمعه 17 دی 1389, 20:22 عصر
سلام دوست عزیز
واسه اینزرت کردن دیگه نیازی نیست که متفییر ها رو جدا کنی


$query = " insert into oldbiz
(id, name, prod) values
('".$id."','".$name1."','".$prod."')";

بلکه اینجوری باید بنویسی


$query = " insert into oldbiz
(id, name, prod) values
('$id','$name1','$prod')";


سلام
نه دوست عزیز این مشکلی نداره
با احترام

iradata
جمعه 17 دی 1389, 23:31 عصر
سلام
دو تا مشکل داره
1- اولین و اصلی ترین اینه که در 4 فایل php مقداری غیر عددی را به فیلد id اختصاص دادی ولی در دیتا بیس نوع فیلد عدده!شما اگه می خوای چنین اطلاعاتی ثبت کنی باید نوع فیلد رو varchar(8) قرار بدی
اینو درست کنی سه تا فایلت درست میشه
2- در فایل oldbiz مقادیری رو وارد دیتا بیس oldbiz می خوای بکنی ولی چنین جدولی نداره و در دیتابیس اسم اون جدول رو اشتباهی گذاشتی oldliz
با احترام


چطور می تونم که مقدار id روو به صورت عددی وارد وارد کنم یعنی اون نوع روو به عددی تبدیل کنم !!!

parsidev
جمعه 17 دی 1389, 23:48 عصر
دقیقا باید بگی می خوای چیکار کنی تا solution بدم
اما برای این که کارت راه بیافته اینو:


$id= date("G i s");

رو به


$id = date("Gis");

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

iradata
شنبه 18 دی 1389, 00:32 صبح
دقیقا باید بگی می خوای چیکار کنی تا solution بدم
اما برای این که کارت راه بیافته اینو:


$id= date("G i s");

رو به


$id = date("Gis");

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

من این کارو کردم اما بازم نشد !!!

iradata
شنبه 18 دی 1389, 09:47 صبح
من هنوز جوابم روو نگرفتم خواهشا کمک کنید

parsidev
شنبه 18 دی 1389, 09:50 صبح
در بانک اطلاعاتی نوع فیلد id رو روی int(7) قرار بدین

iradata
شنبه 18 دی 1389, 14:50 عصر
در بانک اطلاعاتی نوع فیلد id رو روی int(7) قرار بدین

بازم نشد :ناراحت: :ناراحت: :ناراحت: :ناراحت: :ناراحت: :ناراحت: :ناراحت: :ناراحت:

n_68e_65
شنبه 18 دی 1389, 15:03 عصر
سلام.من برنامه نویسی موبایل کارمیکنم با نت بینز.یه مشکلی دارم .من می خوام یک سری اطلاعات را از برنامه ام به یک سایت(سرور)بفرستم و در اونجا این اطلاعات چک بشه اگه درست بود اطلاعاتی رو که می خوام رو به من برگردونه.لطفا من رو راهنمایی کنید.از نت بینز6.5 استفاده می کنم.در واقع چطور میشه یک سری اطلاعات به یک فایلی که روی سرور هست فرستاد ؟خ.اهش میکنم یکی کمکم کنه:گریه:

parsidev
شنبه 18 دی 1389, 19:38 عصر
چه خطایی به وجود میاد؟؟ با mysql_error() خطا رو نمایش بده و اینجا بزار
حالا چه اصراری داری این اطلاعات رو وارد فیلد id کنی؟

iradata
یک شنبه 19 دی 1389, 09:17 صبح
چه خطایی به وجود میاد؟؟ با mysql_error() خطا رو نمایش بده و اینجا بزار
حالا چه اصراری داری این اطلاعات رو وارد فیلد id کنی؟
اصلا error نمیده ولی اون مقدارها وارد database نمیشه به نظر خودم هم مشکل از فیلد id هست ولی هرکاری میکنم نمیشه لطفا راهنمایی کنید

MMSHFE
یک شنبه 19 دی 1389, 13:32 عصر
با سلام، دوست گرامي خطا پيش مياد ولي MySQL نشون نميده. شما اين دستورات رو بعد از دستور اجراي Query بنويسيد:


if(mysql_affected_rows()<1)
{
echo(mysql_error()."<BR/>\n");
}

تا خطا رو نشون بده. اونوقت بتونيم بهتر راهنمايي كنيم.
موفق و مؤيد باشيد.

iradata
دوشنبه 20 دی 1389, 11:42 صبح
با سلام، دوست گرامي خطا پيش مياد ولي MySQL نشون نميده. شما اين دستورات رو بعد از دستور اجراي Query بنويسيد:


if(mysql_affected_rows()<1)
{
echo(mysql_error()."<BR/>\n");
}

تا خطا رو نشون بده. اونوقت بتونيم بهتر راهنمايي كنيم.
موفق و مؤيد باشيد.

اقا خیلی ممنون این error روو داد : No database selected

فهمیدم که اسم database خودم روو اشتباه وارد کردم :اشتباه:

MMSHFE
دوشنبه 20 دی 1389, 12:04 عصر
:بامزه: ممنون، تفريح جالبي بود. :چشمک:

diba.kheirkhah
یک شنبه 12 خرداد 1392, 18:30 عصر
کسی میتونه کمکم کنه؟

داده های من با موفقیت ارسال میشن و تو echo قبل از دستور insert هم تست گرفتم داده ها رو درست میگیره

اما نمیدونم چیرو تو دستورش اشتباه نوشتم که تو table وارد نمیکنه


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>انتخاب واحد</title>
</head>

<body>

<?php
global
$name, $con, $sql, $x, $dars, $vahed;
$x=0;
$dars='';
$vahed='';


error_reporting (E_ALL ^ E_NOTICE);
// Create connection
$con=mysqli_connect("localhost","root","");

// Check connection
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
/*
// Create database
$sql="CREATE DATABASE my_db";
if (mysqli_query($con,$sql))
{
echo "Database my_db created successfully";
}
else
{
echo "Error creating database: " . mysqli_error($con);
}
$con=mysqli_connect("localhost");*/
$test=mysqli_select_db($con,"my_db") or die(mysqli_error($con));


// Create table
$sql="CREATE TABLE lesson (
id INT AUTO_INCREMENT,
PRIMARY KEY(id),
name VARCHAR(40),
unit int(30),
teacher VARCHAR(30)
);";

// Execute query
if (mysqli_query($con,$sql))
{
echo "Table lesson created successfully";
}
else
{
echo "Error creating table: " . mysqli_error($con);
}

if (isset($_POST["submit"]))
{
$x=0;
for($i=0;$i<count($_POST["check"]);$i++)
{
if (isset($_POST["check"][$i]))
$x=$x+$_POST["unit"][$i];
}

if ($x>21)
{
echo $x;
}
else
{
for($i=0;$i<count($_POST["check"]);$i++)
{
$dars=$_POST[check][$i];
$vahed=$_POST[unit][$i];
echo "<br /> is : $dars $vahed ";
$sql=mysqli_query($con,"INSERT INTO lesson('name','unit') VALUES('$dars','$vahed')");
}
}
}

?>

<form name="" id="myform" action="#" method="post" >
<br clear="all"/>
<table border="2" align="center" cellpadding="5" dir="rtl" >

<tr align="right" >
<td><input type="checkbox" name="check[]" value="ریاضی کاربردي"/></td>
<td>ریاضی کاربردي</td>
<td ><input type="hidden" name="unit[]" value="2" />2واحد</td>
</tr>
<tr align="right">
<td><input type="checkbox" name="check[]" value="آمار و احتمالات" /></td>
<td>آمار و احتمالات</td>
<td ><input type="hidden" name="unit[]" value="2" />2واحد</td>
</tr>
<tr align="right">
<td><input type="checkbox" name="check[]" value="شیوه ارائه نوشتاري و گفتاري" /></td>
<td>شیوه ارائه نوشتاري و گفتاري</td>
<td ><input type="hidden" name="unit[]" value="2" />2واحد</td>
</tr>
<tr align="right">
<td><input type="checkbox" name="check[]" value="سخت افزار کامپیوتر" /></td>
<td>سخت افزار کامپیوتر</td>
<td ><input type="hidden" name="unit[]" value="2" />2واحد</td>
</tr>

</table>

<center>
<input name="submit" value="Submit" type="submit" />
</center>
</form>
</body>
</html>

diba.kheirkhah
یک شنبه 12 خرداد 1392, 19:14 عصر
کمممممک !!!

shahriyar3
یک شنبه 12 خرداد 1392, 21:23 عصر
INSERT INTO `lesson`(`name`,`unit`) VALUES('$dars','$vahed')

diba.kheirkhah
یک شنبه 12 خرداد 1392, 21:50 عصر
نوشتم :
for($i=0;$i<count($_POST["check"]);$i++)
{
$dars=$_POST[check][$i];
$vahed=$_POST[unit][$i];
echo "<br /> is : $dars $vahed ";
$sql=mysqli_query($con,"INSERT INTO `lesson`(`name`,`unit`) VALUES('$dars','$vahed')");
}

اطلاعات رو روی فرم echo میکنه اما تو table درج نمیکنه !

shahriyar3
یک شنبه 12 خرداد 1392, 22:21 عصر
اینجوری چی؟


$query = "INSERT INTO `lesson`(`name`,`unit`) VALUES('$dars','$vahed')";
$sql=mysqli_query($con,$query);

diba.kheirkhah
یک شنبه 12 خرداد 1392, 22:26 عصر
متاسفانه عمل نمیکنه !

diba.kheirkhah
دوشنبه 13 خرداد 1392, 05:57 صبح
مشکل حل شد:
http://barnamenevis.org/showthread.php?396556-INSERT-%D9%86%D8%B4%D8%AF%D9%86-%D8%AF%D8%B1%D9%88%D9%86-Database&p=1784113#post1784113

diba.kheirkhah
دوشنبه 13 خرداد 1392, 21:56 عصر
یه مشکل :

حدود 30 درس با واحدهاش به کاربر نشون داده میشه و کاربر انتخاب واحد میکنه

در واقع باید اسم دروس و تعداد واحد دروس چک خورده رو وارد بانک کنه

اما به تعداد چک ها، از اولین درس و واحد هاش رو وارد جدول میکنه!



for($i=0;$i<count($_POST["check"]);$i++)
{
if (isset($_POST["check"][$i]))
{
$dars=$_POST['check'][$i];
$vahed=$_POST['unit'][$i];
$sql=mysqli_query($con,"INSERT INTO lesson(name,unit) VALUES('$dars',$vahed)");
$flag=1;
}
}



اینم یه سه نمونه از درس با واحداش :

<table border="2" align="center" cellpadding="5" dir="rtl" >
<center> لطفا درس های مورد نظر خود را انتخاب کنید <br />
توجه کنید که شما تنها مجاز به انتخاب واحد تا سقف 20 واحد درسی می باشید </center>
<br /> <br /> <br />
<tr>
<th> </th>
<th>نام درس </th>
<th>تعداد واحد</th>
</tr>
<tr align="right" >
<td><input type="checkbox" name="check[]" value="ریاضی کاربردي"/></td>
<td>ریاضی کاربردي</td>
<td ><input type="hidden" name="unit[]" value="2" />2</td>
</tr>
<tr align="right">
<td><input type="checkbox" name="check[]" value="آمار و احتمالات" /></td>
<td>آمار و احتمالات</td>
<td ><input type="hidden" name="unit[]" value="2" />2</td>
</tr>
<tr align="right">
<td><input type="checkbox" name="check[]" value="شیوه ارائه نوشتاري و گفتاري" /></td>
<td>شیوه ارائه نوشتاري و گفتاري</td>
<td ><input type="hidden" name="unit[]" value="1" />1</td>
</tr>
</table>

diba.kheirkhah
سه شنبه 14 خرداد 1392, 11:32 صبح
کسی میتونه کمک کنه؟

diba.kheirkhah
پنج شنبه 16 خرداد 1392, 09:36 صبح
کسی جواب سوالمو نمیدونه؟

MMSHFE
پنج شنبه 16 خرداد 1392, 11:53 صبح
این روش شما درست کار نمیکنه چون checkboxها فقط زمانی که تیک خورده باشن submit میشن درحالی که تگهای مخفی همیشه ارسال میشن و درنتیجه تعداد و اندیس آرایه ['POST['check_$ و ['POST['unit_$ با هم یکی نیست. این کد رو تست کنید:


<center>لطفا درس های مورد نظر خود را انتخاب کنید توجه کنید که شما تنها مجاز به انتخاب واحد تا سقف 20 واحد درسی می باشید</center>
<table border="2" align="center" cellpadding="5" dir="rtl" >
<tr>
<th>&nbsp;</th>
<th>نام درس </th>
<th>تعداد واحد</th>
</tr>
<tr align="right">
<td><input name="check[]" type="checkbox" value="2,ریاضی کاربردی"/></td>
<td>ریاضی کاربردی</td>
<td>2</td>
</tr>
<tr align="right">
<td><input name="check[]" type="checkbox" value="2,آمار و احتمالات" /></td>
<td>آمار و احتمالات</td>
<td>2</td>
</tr>
<tr align="right">
<td><input name="check[]" type="checkbox" value="1,شیوه ارائه نوشتاری و گفتاری" /></td>
<td>شیوه ارائه نوشتاری و گفتاری</td>
<td>1</td>
</tr>
</table>
و صفحه مقصد فرم:


foreach($_POST['check'] as $check) {
list($vahed, $dars) = array_map('trim', explode(',', $check));
$sql = mysqli_query($con, "INSERT INTO `lesson` (`name`,`unit`) VALUES ('{$dars}','{$vahed}')");
$flag = 1;
}

diba.kheirkhah
شنبه 18 خرداد 1392, 23:18 عصر
درسته

همه فیلدهای تیبلم رو به همین شکل عوض کردم و مشکلم حل شد

ممنون