ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingรับค่าจากฟอร์ม หรือ checkbox เข้ามาในคำสั่ง MySQL นี้ จะเขียนอย่างไรครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: รับค่าจากฟอร์ม หรือ checkbox เข้ามาในคำสั่ง MySQL นี้ จะเขียนอย่างไรครับ  (อ่าน 728 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
Fallen
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 2,751



ดูรายละเอียด เว็บไซต์
« เมื่อ: 20 พฤษภาคม 2017, 16:59:37 »

ถ้าเราจะรับค่าจากฟอร์ม หรือ checkbox
เข้ามาในคำสั่ง MySQL นี้ จะเขียนอย่างไรครับ  Tongue


โค๊ด:
$result = mysql_query("SELECT * FROM database_name WHERE field1 LIKE [color=red]'%keyword1%'[/color] AND field2 LIKE [color=red]'%keyword2%'[/color] ORDER BY id DESC");
บันทึกการเข้า

smapan
Global Moderator
เจ้าพ่อบอร์ดเสียว
*****

พลังน้ำใจ: 643
ออฟไลน์ ออฟไลน์

กระทู้: 8,272



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 20 พฤษภาคม 2017, 21:01:23 »

HTML จะต่อตรงกับ MySQL ไม่ได้ครับ
ต้องมีตัวกลางเชื่อม เช่น php, jsp, asp.net

ปล.คำถามเดิมๆแต่แปลมาให้อ่านนะครับไม่ได้คิดเอาเอง

http://stackoverflow.com/quest...t-html-pages-to-mysql-database
บันทึกการเข้า

จูมล่าโฮส สยามโฮสเว็บ modty.com
รวมที่พัก เช่ารายวัน ที่พักเช่ารายเดือนมากที่สุดแจ่มจริง
***Tel 083-757-1515 ติดปัญหา Joomla ตรงไหนรับปรึกษาฟรี โทรมาเถอะครับ ถ้าตอบได้ช่วยแน่นอน ไม่มีกั้ก. ***
rapiz
Newbie
*

พลังน้ำใจ: 13
ออฟไลน์ ออฟไลน์

กระทู้: 81



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 21 พฤษภาคม 2017, 23:35:59 »

ควรจะเลิกใช้ mysql_* ได้แล้วนะครับ เพราะ php เลิก support ไปแล้ว

แนะนำให้ใช้ mysqli วิธีข้างล่างจะป้องกัน mysql injection ไปในตัว

โค๊ด:
$mysql = new mysqli($CONFIG['DB_HOST'],$CONFIG['DB_USER'],$CONFIG['DB_PWD'],$CONFIG['DB_NAME']) or die(mysqli_error());	
$stm = $mysql->prepare("SELECT * FROM testtable WHERE a = ?, b = ?");
$stm->bind_param('ii', $_POST['val1'] , $_POST['val2'] );
$stm->execute();
« แก้ไขครั้งสุดท้าย: 21 พฤษภาคม 2017, 23:37:02 โดย rapiz » บันทึกการเข้า

Web Hosting,Reseller Hosting ราคาถูกเริ่มต้นแค่ 200฿ ต่อปีเท่านั้น!
VPS Linux, Windows (*ฟรี Direct Admin*) เริ่มต้นแค่ 700฿ ต่อเดือนเท่านั้น
รับเขียน Application บน Windows, Linux ด้วยทีมงานมืออาชีพ!!
สนใจ สมัครบริการด้านบน http://www.rapizhost.com
ติดต่อ 091-7733660 (24ชม.) Line ID : @rapizhost
sunwu
สมุนแก๊งเสียว
*

พลังน้ำใจ: 17
ออฟไลน์ ออฟไลน์

กระทู้: 720



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 21 พฤษภาคม 2017, 23:36:50 »

เก็บข้อมูลดีๆ  wanwan017
บันทึกการเข้า

PropProEA EA บริการสอบกองทุน Funds Forex EA รันพอร์ตกองทุนฟอเร็กซ์รับสอบกองทุน
PropProEA EA บริการสอบกองทุน Funds Forex EA รันพอร์ตกองทุนฟอเร็กซ์EA สอบกองทุน
PropProEA EA บริการสอบกองทุน Funds Forex EA รันพอร์ตจริงกองทุนฟอเร็กซ์EA สอบกองทุน ฟรี EA รันพอร์ตจริง
คลังความรู้สอบกองทุน Funds ForexFundsForex
บริการสอบกองทุนไม่ผ่านคืนเงิน100%EA สอบกองทุน
Fallen
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 2,751



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 22 พฤษภาคม 2017, 12:21:39 »

ขอบคุณท่าน smapan และขอบคุณ ท่าน rapiz (แค่เขียน mysql ปกติ ผมก็จะไปไม่รู้จะรอดไหมเลย อิอิ)

อันนี้เป็นโค๊ดเดิมค้นหาจาก ฟอร์ม 1 keyword ใช้ ไฟล์เดียว ไม่ส่งค่าไปไฟล์อื่น

โค๊ด:
<?php
    $db 
mysqli_connect('localhost','user','pw','database_name');
?>


<form action="" method="post">  
<input name="txt_search" type="text" value="<?=$_POST['txt_search']?>" />
<input name="Search" type="submit" value="ค้นหา" />
</form>

<table>
  <tr>
    <td><b>ID</b></td>
<td><b>ขนาด</b></td>
    <td><b>ราคา</b></td>
  </tr>
<?php
$sql_show 
"select * from table_name";

//  สร้าง code ค้นหา , ให้เพิ่มไปใน $sql รับค่า จาก form
if($_POST['submit'])
{
$txt_search1 $_POST['txt_search'];
$sql_show.=" where ขนาด like '%$txt_search%'";
}
$result_show mysql_query($sql_show) or die(mysql_error());
while(
$dbarr mysql_fetch_array($result_show))
{
?>


<tr>
<td><?=$dbarr['id']?></td>
<td><?=$dbarr['ขนาด']?></td>
<td><?=$dbarr['ราคา']?></td>
</tr>
<?
}
?>
</table>



ทีนี้ผมอยากจะให้มันค้นหาได้ 2 key โดยอาจเชื่อมด้วย and แต่เขียนไม่เป็น
อยากให้มัน ค้นคำใน "ขนาด" และ "ราคา" แล้วแสดงผลออกมา

ผมคิดว่าต้องเพิ่มฟอร์ม เป็น

<form action="" method="post">  
<input name="txt_search" type="text" value="<?=$_POST['txt_search']?>" />
<input name="txt_search1" type="text" value="<?=$_POST['txt_search1']?>" />
<input name="Search" type="submit" value="ค้นหา" />
</form>

แล้วเวลา submit มันจะไป...

$txt_search = $_POST['txt_search'];
$txt_search1 = $_POST['txt_search1'];
$result = mysql_query("SELECT * FROM database_name WHERE ขนาด LIKE '%txt_search%' AND ราคา LIKE '%txt_search1%' ORDER BY id DESC");


ประมาณนี้จะทำอย่างไรครับ
« แก้ไขครั้งสุดท้าย: 22 พฤษภาคม 2017, 12:25:28 โดย Fallen » บันทึกการเข้า

Fallen
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 162
ออฟไลน์ ออฟไลน์

กระทู้: 2,751



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 22 พฤษภาคม 2017, 12:39:23 »

ทำได้แล้ว
โค๊ด:
$txt_search = $_POST['txt_search'];
$txt_search1 = $_POST['txt_search1'];
$txt_search2 = $_POST['txt_search2'];
$sql_show.=" where F0 like '%$txt_search%' AND F1 like '%$txt_search1%' AND F2 like '%$txt_search2%'";
« แก้ไขครั้งสุดท้าย: 22 พฤษภาคม 2017, 15:07:28 โดย Fallen » บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์