-
ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
سلام
ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد؟
مثلا در فرم تماس با ما: نام ، ایمیل و متن را از فرد میگیریم حالا برای id چگونه insert باید کرد که در بانک ذخیره شود؟
کد زیر با یک eror مواجه شده:
$sql= "insert into contactus values
('','','".$name."','".$visitor_email."','".$user_m essage."')";
کد بانک هم بقرار زیر است:
CREATE TABLE IF NOT EXISTS `contactus` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`date` datetime NOT NULL,
`name` varchar(30) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
`email` varchar(30) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
`com` text CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
ممنون اگه راهنمایی فرمایید. راه اصولی چیست؟
و سوال دوم اینکه برای ثبت ساعت و تاریخ پیغام چه دیتایی را با ید به بانک فرستاد؟ در جدول من زمان و تاریخ فقط بصورت 00.00.00 00.00 درج میشود
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
کد eror :
Error: Incorrect integer value: '' for column 'id' at row 1
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
$sql= "insert into contactus values ('',date("Y-m-d", time()),'".$name."','".$visitor_email."','".$user_ m essage."')";
باید به این صورت بنویسی، شما برای تاریخ مقداری نفرستادید
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
ممنون - ولی نشد
حتی داخل "" و '' هم چک کردم باز هم نشد
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
من کد بالا رو به این صورت امتحان کردم جواب داد
insert into contactus values('','2011-03-11','sargardoon','myEmail@gmail.com','hi there');
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
$today = date("Y-m-d", time());
$sql = "INSERT INTO contactus VALUES ('','".$today."','".$name."','".$visitor_email."', '".$user_message."')";
به روش بالا امتحان کن ببین جواب میده؟
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
سلام
مشکل با تاریخ حل شد.
اما با id همچنان مشکل دارم.
در لوکال هاست یک داده خالی اینزرت میکنم و بدون مشکل در بانک id افزایش میابد. ولی در سرور اصلی وقتی همین کار را میکنم ارور میده:
Error: Incorrect integer value: '' for column 'id' at row 1
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
با سلام، اين راه رو امتحان كنيد:
$today = date("Y-m-d", time());
$result=mysql_query("INSERT INTO `contactus` (`$today`,`name`,`email`,`com`) VALUES ('2011-03-11','sargardoon','myEmail@gmail.com','hi there')");
نكته: اصلاً فيلد Auto Increment رو نفرستيد!
موفق باشيد.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
تا جایی که من اطلاع دارم در لوکال هاست و سرور SQL Syntaxیکی هستش. فقط باید نگاه کنید که ساختار دیتابیس شما چطوریه، من خودم همیشه این عادت رو دارم قبل از اینکه بخوام داده ای را در دیتابیس دخیره کنم ابتدا به صورت دستی در بانک داده امتحان میکنم اگر جواب داد بعد میبرمش توی کد برنامه.
به نظرم اول به صورت دستی امتحان کن، جواب گرفتی بذار توی برنامه، اگر از mySQL استفاده میکنی جایی داره که میتونی کد تبدیل شده برای PHP رو هم بگیری
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
نقل قول:
نوشته شده توسط
sargardoon
تا جایی که من اطلاع دارم در لوکال هاست و سرور SQL Syntaxیکی هستش. فقط باید نگاه کنید که ساختار دیتابیس شما چطوریه، من خودم همیشه این عادت رو دارم قبل از اینکه بخوام داده ای را در دیتابیس دخیره کنم ابتدا به صورت دستی در بانک داده امتحان میکنم اگر جواب داد بعد میبرمش توی کد برنامه.
به نظرم اول به صورت دستی امتحان کن، جواب گرفتی بذار توی برنامه، اگر از mySQL استفاده میکنی جایی داره که میتونی کد تبدیل شده برای PHP رو هم بگیری
با سلام، فكر كنم منظورتون phpmyadmin بود نه MySQL چون بخش مربوطه توي phpmyadmin وجود داره. ضمناً درصورتي Syntax در لوكال هاست و سرور يكي هست كه نسخه MySQL مورد استفاده در هر دو، يكي باشه. بخاطر همين ميگم كه از ساختار استاندارد MySQL پيروي كنيد. مستندات خود MySQL اعلام ميكنه كه فيلد AutoIncrement رو اصلاً نفرستيد!
موفق باشيد.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
سلام
این کد شما رو وارد کردم:
$sql=mysql_query("INSERT INTO `contactus` (`name`,`email`,`com`,`date`) VALUES ('".$name."','".$visitor_email."','".$user_message ."','".$today."')");
اما ارور زیر رو داد:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
با سلام، يك بار اين دستور رو اجرا كنيد و ببينيد چه خروجي توليد ميشه؟
echo "INSERT INTO `contactus` (`name`,`email`,`com`,`date`) VALUES ('".$name."','".$visitor_email."','".$user_message ."','".$today."')";
موفق باشيد.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
سلام
echo کردم و پیغام زیر اومد:
INSERT INTO `contactus` (`name`,`email`,`com`,`date`) VALUES ('hamed','h.sasa@edf.fm','salam peygham for test','2011-03-28 18:29:07')Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
نقل قول:
نوشته شده توسط
MMSHFE
با سلام، فكر كنم منظورتون phpmyadmin بود نه MySQL چون بخش مربوطه توي phpmyadmin وجود داره. ضمناً درصورتي Syntax در لوكال هاست و سرور يكي هست كه نسخه MySQL مورد استفاده در هر دو، يكي باشه. بخاطر همين ميگم كه از ساختار استاندارد MySQL پيروي كنيد. مستندات خود MySQL اعلام ميكنه كه فيلد AutoIncrement رو اصلاً نفرستيد!
موفق باشيد.
سلام دوست عزیز درسته منظور من PHP MyAdmin هستش و نوع دیتابیس mySQL هستش، و منظور من syntax کلی SQL در دیتابیس هستش که فرقی باهم ندارند،
آره روش که شما در پاسخ قبلی نوشتید استاندارد هستش
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
و برای اینکه خطای کمتری پیش بیاد این روش بهتره
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
نقل قول:
نوشته شده توسط
hamed-php
سلام
echo کردم و پیغام زیر اومد:
INSERT INTO `contactus` (`name`,`email`,`com`,`date`) VALUES ('hamed','h.sasa@edf.fm','salam peygham for test','2011-03-28 18:29:07')Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
من با ساختاری که گذاشته بودید به صورت دستی امتحان کردم جواب داد.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
با سلام، همونطور که میبینید، مشکل از فیلد تاریخ هست. قبل از دستور mysql_query که نوشتین، این دستور رو بنویسید:
$today=substr($today,0,10);
موفق باشید.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
اگر میخواهید ساعت هم داشته باشه میتونی به روش زیر هم استفاده کنید
$today = date("Y-m-d H:i:s", time());
نقل قول:
نوشته شده توسط
MMSHFE
با سلام، همونطور که میبینید، مشکل از فیلد تاریخ هست. قبل از دستور mysql_query که نوشتین، این دستور رو بنویسید:
$today=substr($today,0,10);
موفق باشید.
فرق
$today = date("Y-m-d", time());
با این یکی چیه؟
$today=substr($today,0,10);
من خودم برای نشان دادن ساعت و تاریخ از روش زیر استفاده میکنم
$today = date("Y-m-d H:i:s", time());
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
دوست عزیز من این رو روی لوکال هاست امتحان کردم جواب داد، خودت هم امتحان کن
$con = mysql_connect('localhost','root','') or die('unable to connect mysql');
$db = mysql_select_db('test',$con) or die('unable to select database');
$today = date("Y-m-d H:i:s", time());
$name= 'Sargardoon';
$visitor_email = 'sargardoon@gmail.com';
$user_message = "Hi there, I\'m testing SQL Syntax123";
$sql = "INSERT INTO contactus (`name`,`email`,`com`,`date`) VALUES ('".$name."','".$visitor_email."','".$user_message ."','".$today."')";
$sql= mysql_query($sql) or die('check sql syntax');
$rc = mysql_affected_rows();
echo "<h4>Records inserted: ".$rc."</h4>";
$sql = mysql_query("SELECT * FROM contactus;") or die('check sql syntax');
$nor = mysql_num_rows($sql);
$row = mysql_fetch_assoc($sql);
echo '<h3>Number of Records are: '.$nor.'</h3>';
echo "<table>";
for($h=0;$h<mysql_num_fields($sql);$h++){
$fieldCaption=mysql_field_name($sql,$h);
echo "<th width=80px style=\"text-align:center; background-color:#abcdef; border: thin solid #abcdef;\">".$fieldCaption."</th>";
}
for($i=0;$i<$nor;$i++){
echo "<tr>";
for($j=0;$j<mysql_num_fields($sql);$j++){
$DataRec = mysql_result($sql,$i,$j);
echo "<td width=80px style=\"text-align:center; border: thin solid #abcdef;\">".$DataRec."</td>";
}
echo "</tr>";
}
echo "</table>";
توجه کن بین single Quote و Double Quote فرق میکنه، بهتر از Double Quote استفاده کنی تا کمتر دچار مشکلی بشی. در کد بالا هم بهت میگه که آیا تغییر انجام داده شده یا نه، و بعد از اون اطلاعات رو نشون میده
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
نقل قول:
نوشته شده توسط
MMSHFE
با سلام، همونطور که میبینید، مشکل از فیلد تاریخ هست. قبل از دستور mysql_query که نوشتین، این دستور رو بنویسید:
$today=substr($today,0,10);
موفق باشید.
دوست عزیز آیا راهی هست که من توضیحات رو به جای field name نشون بدم (comments)، اینطوری راحتر میشه اطلاعات رو نشون داد
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
نقل قول:
نوشته شده توسط
sargardoon
دوست عزیز آیا راهی هست که من توضیحات رو به جای field name نشون بدم (comments)، اینطوری راحتر میشه اطلاعات رو نشون داد
ميشه منظورتون رو دقيق تر بيان كنيد؟
در مورد سؤال دوستمون هم كه گفتن چرا پيشنهاد دادم از substr استفاده كنن، بايد بگم كه در MySQL استاندارد، فيلد تاريخ، ساعت رو نگهداري نميكنه و درنتيجه، با كمك substr كه گفتم فقط 10 كاركتر اول كه شامل تاريخ هست جدا شده و در فيلد تاريخ ثبت ميشه.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
نقل قول:
نوشته شده توسط
MMSHFE
ميشه منظورتون رو دقيق تر بيان كنيد؟
در مورد سؤال دوستمون هم كه گفتن چرا پيشنهاد دادم از substr استفاده كنن، بايد بگم كه در MySQL استاندارد، فيلد تاريخ، ساعت رو نگهداري نميكنه و درنتيجه، با كمك substr كه گفتم فقط 10 كاركتر اول كه شامل تاريخ هست جدا شده و در فيلد تاريخ ثبت ميشه.
دوست عزیز سوال من این بود که چه فرقی بین
$today = date("Y-m-d", time());
و
$today=substr($today,0,10);
خروجی هر دو به صورت yyyy-mm-dd (2011-03-21) هستش.
در اینجا توضیح دادم لطفا اینجا مراجعه کنید.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
با سلام، دوست گرامي همونطور كه ميبينيد، دوستمون در Query كه نوشته بودن، ساعت رو هم ذخيره ميكردن كه با استفاده از substr كه پيشنهاد دادم، اين قسمت حذف ميشه وگرنه دستوري كه شما نوشتين درسته. راستي به اون موضوع كه لينكش رو گذاشتين هم پاسخ دادم. لطفاً بررسي كنيد.
موفق باشيد.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
سلام
در لوکال که از ابتدا مشکلی نداشتم!
اما این دستور رو هم اجرا کردم :
$today=substr($today,0,10);
اما همچنان این ارور ... هست. مثل کابوس:گیج:
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1
در کل نمیدونم چرا با وجود ثبت اطلاعات در بانک ولی ارور هم در صفحه ظاهر میشود. ولی من در بانکم اطلاعات رو صحیح میگیرم و ستون id هم یکی یکی افزایش دارد.
نسخه لوکال : MySQL client version: mysqlnd 5.0.5-dev - 081106 - $Revision: 1.3.2.27 $
نسخه سرور اصلی : MySQL client version: 5.0.51a
تفاوت در چیست؟
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
اگه ميشه، كد كامل صفحه و اينكه از چه طريقي وارد اين صفحه ميشين (فرم، لينك و...) رو بنويسيد. ضمناً اگه با فرم وارد ميشين، مقاديري كه نوشته شده (حتي المقدور كد فرم) و اگه با لينك وارد ميشين، مقاديري كه ازطريق آدرس براي صفحه ارسال ميشه رو هم ذكر كنيد تا دقيقاً ببينيم مشكل از كجاست.
موفق باشيد.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
با سلام
کد های من از این قراره:
<?php
$name = '';
$visitor_email = '';
$user_message = '';
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$user_message = $_POST['message'];
$pass='1234';
$con = mysql_connect("myroot","myuser","$pass","mydb");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
date_default_timezone_set('Asia/Tehran');
$today = date("Y-m-d H:i:s", time());
$sql=mysql_query("INSERT INTO contactus (`name`,`email`,`com`,`date`) VALUES ('".$name."','".$visitor_email."','".$user_message ."','".$today."')");
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
header('Location: thank-you.html');
mysql_close($con);
}
?>
3 تامقادیر شامل نام ، ایمیل و پیغام هم با متد پست از یک فایل html ارسال میشود.
آیا به جز mysql-query تابع دیگری هست مثلاً db-query رو شنیده بودم . ممکن هست از این تابع باشه؟
راستی چرا با وجود درج در دیتابیس ارور هم ظاهر میشود و البته دیگر صفحه header که تشکر میباشد وصل نمیشود؟
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
با سلام، دوست گرامي براي today$ اين دستور رو امتحان كنيد:
$today = date("Y-m-d", time());
ببينيد مشكل برطرف ميشه يا نه.
موفق باشيد.
-
نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد
سلام
مشکل حل شد.
البته تابع mysql_query در خط 29 هم حذف شد .
ممنون از راهنمایی شما