نمایش نتایج 1 تا 27 از 27

نام تاپیک: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

  1. #1
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    ارسال یک داده به ستون 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 درج میشود

  2. #2
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    کد eror :
    Error: Incorrect integer value: '' for column 'id' at row 1

  3. #3
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    $sql= "insert into contactus values ('',date("Y-m-d", time()),'".$name."','".$visitor_email."','".$user_  m  essage."')";


    باید به این صورت بنویسی، شما برای تاریخ مقداری نفرستادید

  4. #4
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    ممنون - ولی نشد
    حتی داخل "" و '' هم چک کردم باز هم نشد

  5. #5
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    من کد بالا رو به این صورت امتحان کردم جواب داد
    insert into contactus values('','2011-03-11','sargardoon','myEmail@gmail.com','hi there'); 

  6. #6
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    $today = date("Y-m-d", time());
    $sql = "INSERT INTO contactus VALUES ('','".$today."','".$name."','".$visitor_email."', '".$user_message."')";


    به روش بالا امتحان کن ببین جواب میده؟

  7. #7
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    سلام
    مشکل با تاریخ حل شد.
    اما با id همچنان مشکل دارم.

    در لوکال هاست یک داده خالی اینزرت میکنم و بدون مشکل در بانک id افزایش میابد. ولی در سرور اصلی وقتی همین کار را میکنم ارور میده:

    Error: Incorrect integer value: '' for column 'id' at row 1


  8. #8

    نقل قول: ارسال یک داده به ستون 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 رو نفرستيد!
    موفق باشيد.

  9. #9
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    تا جایی که من اطلاع دارم در لوکال هاست و سرور SQL Syntaxیکی هستش. فقط باید نگاه کنید که ساختار دیتابیس شما چطوریه، من خودم همیشه این عادت رو دارم قبل از اینکه بخوام داده ای را در دیتابیس دخیره کنم ابتدا به صورت دستی در بانک داده امتحان میکنم اگر جواب داد بعد میبرمش توی کد برنامه.

    به نظرم اول به صورت دستی امتحان کن، جواب گرفتی بذار توی برنامه، اگر از mySQL استفاده میکنی جایی داره که میتونی کد تبدیل شده برای PHP رو هم بگیری

  10. #10

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    نقل قول نوشته شده توسط sargardoon مشاهده تاپیک
    تا جایی که من اطلاع دارم در لوکال هاست و سرور SQL Syntaxیکی هستش. فقط باید نگاه کنید که ساختار دیتابیس شما چطوریه، من خودم همیشه این عادت رو دارم قبل از اینکه بخوام داده ای را در دیتابیس دخیره کنم ابتدا به صورت دستی در بانک داده امتحان میکنم اگر جواب داد بعد میبرمش توی کد برنامه.
    به نظرم اول به صورت دستی امتحان کن، جواب گرفتی بذار توی برنامه، اگر از mySQL استفاده میکنی جایی داره که میتونی کد تبدیل شده برای PHP رو هم بگیری
    با سلام، فكر كنم منظورتون phpmyadmin بود نه MySQL چون بخش مربوطه توي phpmyadmin وجود داره. ضمناً درصورتي Syntax در لوكال هاست و سرور يكي هست كه نسخه MySQL مورد استفاده در هر دو، يكي باشه. بخاطر همين ميگم كه از ساختار استاندارد MySQL پيروي كنيد. مستندات خود MySQL اعلام ميكنه كه فيلد AutoIncrement رو اصلاً نفرستيد!
    موفق باشيد.

  11. #11
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون 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

  12. #12

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    با سلام، يك بار اين دستور رو اجرا كنيد و ببينيد چه خروجي توليد ميشه؟

    echo "INSERT INTO `contactus` (`name`,`email`,`com`,`date`) VALUES ('".$name."','".$visitor_email."','".$user_message ."','".$today."')";

    موفق باشيد.
    آخرین ویرایش به وسیله MMSHFE : دوشنبه 08 فروردین 1390 در 21:53 عصر

  13. #13
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون 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

  14. #14
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون 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,...)

    و برای اینکه خطای کمتری پیش بیاد این روش بهتره

  15. #15
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون 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
    من با ساختاری که گذاشته بودید به صورت دستی امتحان کردم جواب داد.

  16. #16

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    با سلام، همونطور که میبینید، مشکل از فیلد تاریخ هست. قبل از دستور mysql_query که نوشتین، این دستور رو بنویسید:

    $today=substr($today,0,10);

    موفق باشید.

  17. #17
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون 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());

  18. #18
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون 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 استفاده کنی تا کمتر دچار مشکلی بشی. در کد بالا هم بهت میگه که آیا تغییر انجام داده شده یا نه، و بعد از اون اطلاعات رو نشون میده

  19. #19
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    نقل قول نوشته شده توسط MMSHFE مشاهده تاپیک
    با سلام، همونطور که میبینید، مشکل از فیلد تاریخ هست. قبل از دستور mysql_query که نوشتین، این دستور رو بنویسید:

    $today=substr($today,0,10);

    موفق باشید.
    دوست عزیز آیا راهی هست که من توضیحات رو به جای field name نشون بدم (comments)، اینطوری راحتر میشه اطلاعات رو نشون داد

  20. #20

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    نقل قول نوشته شده توسط sargardoon مشاهده تاپیک
    دوست عزیز آیا راهی هست که من توضیحات رو به جای field name نشون بدم (comments)، اینطوری راحتر میشه اطلاعات رو نشون داد
    ميشه منظورتون رو دقيق تر بيان كنيد؟
    در مورد سؤال دوستمون هم كه گفتن چرا پيشنهاد دادم از substr استفاده كنن، بايد بگم كه در MySQL استاندارد، فيلد تاريخ، ساعت رو نگهداري نميكنه و درنتيجه، با كمك substr كه گفتم فقط 10 كاركتر اول كه شامل تاريخ هست جدا شده و در فيلد تاريخ ثبت ميشه.

  21. #21
    کاربر دائمی آواتار sargardoon
    تاریخ عضویت
    بهمن 1389
    محل زندگی
    دبی
    سن
    42
    پست
    172

    نقل قول: ارسال یک داده به ستون 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) هستش.

    در اینجا توضیح دادم لطفا اینجا مراجعه کنید.

  22. #22

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    با سلام، دوست گرامي همونطور كه ميبينيد، دوستمون در Query كه نوشته بودن، ساعت رو هم ذخيره ميكردن كه با استفاده از substr كه پيشنهاد دادم، اين قسمت حذف ميشه وگرنه دستوري كه شما نوشتين درسته. راستي به اون موضوع كه لينكش رو گذاشتين هم پاسخ دادم. لطفاً بررسي كنيد.
    موفق باشيد.

  23. #23
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون 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

    تفاوت در چیست؟

  24. #24

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    اگه ميشه، كد كامل صفحه و اينكه از چه طريقي وارد اين صفحه ميشين (فرم، لينك و...) رو بنويسيد. ضمناً اگه با فرم وارد ميشين، مقاديري كه نوشته شده (حتي المقدور كد فرم) و اگه با لينك وارد ميشين، مقاديري كه ازطريق آدرس براي صفحه ارسال ميشه رو هم ذكر كنيد تا دقيقاً ببينيم مشكل از كجاست.
    موفق باشيد.

  25. #25
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون 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 که تشکر میباشد وصل نمیشود؟

  26. #26

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    با سلام، دوست گرامي براي today$ اين دستور رو امتحان كنيد:

    $today = date("Y-m-d", time());

    ببينيد مشكل برطرف ميشه يا نه.
    موفق باشيد.

  27. #27
    کاربر دائمی آواتار hamed-php
    تاریخ عضویت
    دی 1389
    محل زندگی
    01110000 01101000 01110000
    پست
    409

    نقل قول: ارسال یک داده به ستون id در یک جدول بانک که aouto increase هست چگونه میباشد

    سلام

    مشکل حل شد.
    البته تابع mysql_query در خط 29 هم حذف شد .

    ممنون از راهنمایی شما

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •