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

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

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: ช่วยทีครับ SQL WHERE  (อ่าน 939 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
nornak
ก๊วนเสียว
*

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

กระทู้: 444



ดูรายละเอียด เว็บไซต์
« เมื่อ: 12 ธันวาคม 2011, 12:59:48 »

ผมไม่ค่อยถนัดเรื่องนี้ครับ รบกวนด้วยนะครับ

คือผมต้องการดึงข้อมูลมาแสดงจาก id ของแต่ละหอพัก
เช่น หอพักA id=1  หอพักB id=2 โดยใช้ sql where
จากนั้นผมทำการอัพโหลดขึ้นเชิฟเวอร์จริง แล้วมันใช้งานไม่ได้ครับ แต่ ลองในเครื่องด้วย appserv ไม่มีปัญหาเลย
ผมจึงได้ลองๆ เปลี่ยนดู มันก็ยังไม่ได้ครับ

โค๊ด:
<?
include('config.inc.php');
$sql = "select * from horpakinfo where id = '$id' ";
$dbquery = mysql_db_query($dbname, $sql);
$result = mysql_fetch_assoc($dbquery);
$id = $result[id];
$horpakname = $result[horpakname];
$type = $result[type];
$address = $result[address];

        print "<h2>รายละเอียดของหอพัก ".$horpakname."</h2> ";

mysql_close();
?>

เครื่องผม > MySQL Version 5.0.51b
เครื่องเชิฟ > MySQL version: 5.1.59

ช่วยทีครับ มันเกี่ยวกับอะไร ขอบคุณมากครับ
บันทึกการเข้า

LunLa ... ก็แค่อยากให้ชีวิต มีแต่ความลั้ลลา
conner
ก๊วนเสียว
*

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

กระทู้: 278



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 12 ธันวาคม 2011, 13:01:37 »

ที่ผมเคยเจอก็
1.ชื่อตารางเป็นตัวเล็กตัวใหญ่ ต้องให้ตรงกับบน server
2.ชื่อฟิล์ดก็เหมือนกัน

   $id = $result['id'];
   $horpakname = $result['horpakname'];
   $type = $result['type'];
   $address = $result['address'];

อย่างอื่นไม่เคยเจอครับ
« แก้ไขครั้งสุดท้าย: 12 ธันวาคม 2011, 13:03:00 โดย conner » บันทึกการเข้า

nornak
ก๊วนเสียว
*

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

กระทู้: 444



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 12 ธันวาคม 2011, 13:05:47 »

ชื่อ ตรงกันครับ ผมใช้ตัวเล็กหมดเลย อัพขึ้นเชิฟดันไม่แสดง

อ้างถึง


ตามนี้ครับ
บันทึกการเข้า

LunLa ... ก็แค่อยากให้ชีวิต มีแต่ความลั้ลลา
xfiles
หัวหน้าแก๊งเสียว
*

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 12 ธันวาคม 2011, 13:06:38 »

ลองใส่ mysql_error() ดู error มัน
บันทึกการเข้า

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

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

กระทู้: 1,134



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 12 ธันวาคม 2011, 13:07:15 »

ใช้ mysql_query() ก็พอครับ

อีกอย่าง assoc ใส่ '' ด้วยครับ $res['test']


<?php เปิดแบบนี้ด้วยก็ดีนะครับ host สากล <? เดียวไม่ออก
« แก้ไขครั้งสุดท้าย: 12 ธันวาคม 2011, 13:10:49 โดย TonHaDy » บันทึกการเข้า

Extra Cash
สมุนแก๊งเสียว
*

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

กระทู้: 631



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 12 ธันวาคม 2011, 13:09:45 »

ดูชื่อ database ในไฟล์ config หรือยังครับ
ข้อมูลใน database ทั้งสองที่เหมือนกันแน่นะครับ
ดูแล้วโค๊ดไม่น่ามีอะไรผิด
บันทึกการเข้า

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

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

กระทู้: 8,272



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 12 ธันวาคม 2011, 13:10:22 »

โค๊ด:
where id = '$id'

$id เอามาจากไหนครับ มันคือ ค่าที่ได้รับมาจาก URL ของ browser รึเปล่าครับ
ถ้าใช่ลองเพิ่มบันทีดนี้ หน้า $sql  ดูครับ
โค๊ด:
$id = (int) $_GET["id"]
บันทึกการเข้า

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

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

กระทู้: 1,678



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 12 ธันวาคม 2011, 13:10:31 »

ลองสั่ง echo $sql; ดูครับว่าค่ามาถูกไหม

ผมว่าจะเป็นกับตัวเลข และ text
บันทึกการเข้า

Maggi14
คนรักเสียว
*

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

กระทู้: 147



ดูรายละเอียด
« ตอบ #8 เมื่อ: 12 ธันวาคม 2011, 13:11:49 »

เปงเพราะต้องนี้รึป่าว

$sql = "select * from horpakinfo where id = '$id' ";

'$id' ไม่มีค่าที่ส่งมาด้วยทำให้ทันเป็น id =  เฉยๆ ถ้าอย่างงั้นต้องเพิ่มอีกบรรทัดข้างบนเป็น

$h_id = $_REQUEST['id'];  แล้วเปลีั่่ยนเปน $sql = "select * from horpakinfo where id = '$h_id' ";

เอ๊ะ! รึป่าว เหอๆ ผมมั่วนะ เหอๆ
บันทึกการเข้า
SvZ
คนรักเสียว
*

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

กระทู้: 163



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 12 ธันวาคม 2011, 13:16:49 »

ระวัง sql inject ด้วยครับ  wanwan044
บันทึกการเข้า

nornak
ก๊วนเสียว
*

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

กระทู้: 444



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 12 ธันวาคม 2011, 13:19:16 »

เปงเพราะต้องนี้รึป่าว

$sql = "select * from horpakinfo where id = '$id' ";

'$id' ไม่มีค่าที่ส่งมาด้วยทำให้ทันเป็น id =  เฉยๆ ถ้าอย่างงั้นต้องเพิ่มอีกบรรทัดข้างบนเป็น

$h_id = $_REQUEST['id'];  แล้วเปลีั่่ยนเปน $sql = "select * from horpakinfo where id = '$h_id' ";

เอ๊ะ! รึป่าว เหอๆ ผมมั่วนะ เหอๆ


ได้แล้วครับ สงสัยค่า id มันไม่มาด้วย ขอบคุณมากครับ +1 ให้ทุกคนครับ
บันทึกการเข้า

LunLa ... ก็แค่อยากให้ชีวิต มีแต่ความลั้ลลา
dragons_first
สมุนแก๊งเสียว
*

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

กระทู้: 953



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 12 ธันวาคม 2011, 13:20:07 »

GET POST อันนี้สำคัญครับ ถ้าเป็นเวอร์ชั่นก่อนๆไม่ค่อยมีปัญหา แต่เด๋วนี้ต้องให้ความสำคัญกับการส่งค่า และรับค่า GET POST นะครับ  ส่งมาเป็น GET ก็รับเป็น GET['id']
ส่งค่ามาเป็น POST ก็รับเป็น POST['id'] เท่านี้ก็รันได้ปรกติครับ
บันทึกการเข้า

รับทำเว็บไซต์ ตามขอบเขตของลูกค้าราคาเบาๆ

รับแก้สคริปท์ เพิ่มระบบ เปลี่ยนแปลงเลเอาท์เว็บไซต์ จัด cssใหม่ แก้การแสดงผลผิดเพี้ยน
ท่านจะได้รับการบริการที่เป็นกันเอง ราคาไม่แพง ต่อรองได้(แต่ไม่น่าเกลียด) คุยกันฉันมิตร นะฮ๊าฟฟฟฟฟ
nornak
ก๊วนเสียว
*

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

กระทู้: 444



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 12 ธันวาคม 2011, 13:21:24 »

GET POST อันนี้สำคัญครับ ถ้าเป็นเวอร์ชั่นก่อนๆไม่ค่อยมีปัญหา แต่เด๋วนี้ต้องให้ความสำคัญกับการส่งค่า และรับค่า GET POST นะครับ  ส่งมาเป็น GET ก็รับเป็น GET['id']
ส่งค่ามาเป็น POST ก็รับเป็น POST['id'] เท่านี้ก็รันได้ปรกติครับ

ขอบคุณมากครับ
บันทึกการเข้า

LunLa ... ก็แค่อยากให้ชีวิต มีแต่ความลั้ลลา
หน้า: [1]   ขึ้นบน
พิมพ์