ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: nornak ที่ 12 ธันวาคม 2011, 12:59:48



หัวข้อ: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: nornak ที่ 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

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


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: conner ที่ 12 ธันวาคม 2011, 13:01:37
ที่ผมเคยเจอก็
1.ชื่อตารางเป็นตัวเล็กตัวใหญ่ ต้องให้ตรงกับบน server
2.ชื่อฟิล์ดก็เหมือนกัน

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

อย่างอื่นไม่เคยเจอครับ


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: nornak ที่ 12 ธันวาคม 2011, 13:05:47
ชื่อ ตรงกันครับ ผมใช้ตัวเล็กหมดเลย อัพขึ้นเชิฟดันไม่แสดง

อ้างถึง
[url]http://horpak.lunla.in.th/info.php?id=9[/url]


ตามนี้ครับ


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: xfiles ที่ 12 ธันวาคม 2011, 13:06:38
ลองใส่ mysql_error() ดู error มัน


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: TonHaDy ที่ 12 ธันวาคม 2011, 13:07:15
ใช้ mysql_query() ก็พอครับ

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


<?php เปิดแบบนี้ด้วยก็ดีนะครับ host สากล <? เดียวไม่ออก


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: Extra Cash ที่ 12 ธันวาคม 2011, 13:09:45
ดูชื่อ database ในไฟล์ config หรือยังครับ
ข้อมูลใน database ทั้งสองที่เหมือนกันแน่นะครับ
ดูแล้วโค๊ดไม่น่ามีอะไรผิด


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: smapan ที่ 12 ธันวาคม 2011, 13:10:22
โค๊ด:
where id = '$id'

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


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: gubaaball ที่ 12 ธันวาคม 2011, 13:10:31
ลองสั่ง echo $sql; ดูครับว่าค่ามาถูกไหม

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


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: Maggi14 ที่ 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' ";

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


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: SvZ ที่ 12 ธันวาคม 2011, 13:16:49
ระวัง sql inject ด้วยครับ  :wanwan044:


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: nornak ที่ 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 ให้ทุกคนครับ


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: dragons_first ที่ 12 ธันวาคม 2011, 13:20:07
GET POST อันนี้สำคัญครับ ถ้าเป็นเวอร์ชั่นก่อนๆไม่ค่อยมีปัญหา แต่เด๋วนี้ต้องให้ความสำคัญกับการส่งค่า และรับค่า GET POST นะครับ  ส่งมาเป็น GET ก็รับเป็น GET['id']
ส่งค่ามาเป็น POST ก็รับเป็น POST['id'] เท่านี้ก็รันได้ปรกติครับ


หัวข้อ: Re: ช่วยทีครับ SQL WHERE
เริ่มหัวข้อโดย: nornak ที่ 12 ธันวาคม 2011, 13:21:24
GET POST อันนี้สำคัญครับ ถ้าเป็นเวอร์ชั่นก่อนๆไม่ค่อยมีปัญหา แต่เด๋วนี้ต้องให้ความสำคัญกับการส่งค่า และรับค่า GET POST นะครับ  ส่งมาเป็น GET ก็รับเป็น GET['id']
ส่งค่ามาเป็น POST ก็รับเป็น POST['id'] เท่านี้ก็รันได้ปรกติครับ

ขอบคุณมากครับ