PDA

View Full Version : مبتدی: دوتا سوال در مورد کار با دیتابیس



mtn677
جمعه 31 مرداد 1393, 12:01 عصر
1-چرا وقتی این کد رو اجرا میکنم با رفرش صفحه آخرین مقداری که در textarea نوشتم به دیتابیس ارسال میشه؟

فرم:


<form action="index.php" method="post">
<textarea name="text" ></textarea>
<input type="submit" value="send" />
</form>


کد صفحه index.php:


$str=$_POST['text'];
$con=mysqli_connect("localhost", "root", "", "mydb");
mysqli_query($con,"INSERT INTO data (mystr) VALUES ('$str')");


2-چجوری میشه با کد php مقادیر موجود در جداول دیتابیس رو ویرایش کرد?مثلا در دیتابیس بالا چجوری میتونم مقدار موجود در mystr رو با یه مقدار دیگه جایگزین کرد؟

arash691
جمعه 31 مرداد 1393, 12:50 عصر
قبل از اینکه درج کنی هیچ شرطی رو بررسی نمیکنی ؟

برای تغییر مقدار یک فیلد از جدول از کوئری UPDATE استفاده کن


"UPDATE `data` SET `mystr` = '{$value}' WHERE condition"

hamedarian2009
جمعه 31 مرداد 1393, 13:00 عصر
اگه منظورت در سوال اول اینه که بعد درج اطلاعات فرم هر بار رفرش کنی دوباره همون اطلاعات در دیتابیس درج میشن میتونی چنتا کار کنی مثلا از کد کپچا استفاده کنی یا اینکه اطلاعاتو قبل درج بررسی کنی اگه تکراری بود اجازه درج بهش ندی
ولی بهترین راه اینه بعد عمل درج با دستور header یک بار به همون صفحه ای که هستین ریدایرکت بشین تا آرایه POST_$ خالی بشه

mtn677
جمعه 31 مرداد 1393, 13:50 عصر
با تشکر از شما عالی بود.
یک سوال دیگه.فرض کنید یه دیتابیس دارم من میخوام یک button داشته باشم که اگه رووش کلیک کنم به یک مقداری که در دیتابیس است و از نوع عددی هست، 5 واحد اضافه بشه.از نظر کد sql مشکل ندارم مشکلم اینه که چجوری با کلیک رووی button این کار انجام بشه.

mtn677
جمعه 31 مرداد 1393, 18:33 عصر
کسی جواب سوال آخرو میدونه؟اصلا امکان پذیر هست؟؟؟؟

Mori Bone
جمعه 31 مرداد 1393, 18:36 عصر
با ایجکس می تونی بفرستی با فایل php بعد توی اون فایل 5 واحد اضافه کنید. یا با get این کارو کنی مثلا index.php?do= increase

mtn677
جمعه 31 مرداد 1393, 18:54 عصر
با ایجکس می تونی بفرستی با فایل php بعد توی اون فایل 5 واحد اضافه کنید. یا با get این کارو کنی مثلا index.php?do= increase

در حد مبتدی جواب بده لطفا:لبخندساده:
من میخوام با کلیک بر روی یک button کد زیر اجرا بشه:



$con=mysqli_connect("localhost","root","","mydb");
mysqli_query($con,"UPDATE data SET emtiaz=emtiaz + 1 WHERE username='moslem'");

Mori Bone
جمعه 31 مرداد 1393, 18:59 عصر
من که نمی دونم حد شما چه قدره که دوست خوبم. شما درباره ارسال اطلاعات با get چیزی می دونی؟

mtn677
جمعه 31 مرداد 1393, 19:03 عصر
من که نمی دونم حد شما چه قدره که دوست خوبم. شما درباره ارسال اطلاعات با get چیزی می دونی؟

وقتی قراره اطلاعات یک فرم ارسال بشه از متد get یا post استفاده میشه.فقط برای این کار من از get استفاده میکنم دیگه نمیدونم چه کاربردی داره.

Mori Bone
جمعه 31 مرداد 1393, 19:17 عصر
وقتی شما به این آدرس لینک میدید: index.php?do=123، شما از روش get استفاده کردید. پس می تونید توی صفحه index.php به مقدار do یعنی 123 دسترسی داشته باشید. این به کنار.
برای این کاری شما می خواهید بکنید بهتره از ایجکس ajax استفاده کنید. ولی با اینکه مبتدی هستید کار های زیر رو انجام بدید.
1- یه لینک درست کنید با آدرس زیر: increase.php
2- توی فایل increase.php توابع خودتونو بنویسید.
3- روی لینک کلیک کنید