xfiles
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 74
ออฟไลน์
กระทู้: 1,531
|
|
« เมื่อ: 12 กรกฎาคม 2011, 16:47:02 » |
|
คือทำระบบค้นหาข้อมูลใน DB ธรรมดาๆ อ่ะครับ ที่นี้พอ ตัวแปร รับค่ามาจากฟอร์มโพส POST มันไม่แสดงอะไรเลยครับ แต่พอ ใส่ค่าเองแบบพิมคำแทนเลยจะแสดงผลออกมาโอเค ปวดหัวมากมาย งง มึน ตึบ + 1 ทุกท่านๆ ขอบคุณล่วงหน้าครับ
|
|
|
บันทึกการเข้า
|
|
|
|
djoser
คนรักเสียว
พลังน้ำใจ: 12
ออฟไลน์
กระทู้: 152
|
|
« ตอบ #1 เมื่อ: 12 กรกฎาคม 2011, 16:52:48 » |
|
รบกวนแสดง code นิดนึงได้ไหมคะ จะได้ดูแบบละเอียดๆ อ่ะค่ะ
|
|
|
บันทึกการเข้า
|
|
|
|
O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 237
ออฟไลน์
กระทู้: 1,432
|
|
« ตอบ #2 เมื่อ: 12 กรกฎาคม 2011, 16:53:59 » |
|
post ตัวอย่างโค๊ดด้วยครับ
|
|
|
บันทึกการเข้า
|
|
|
|
xfiles
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 74
ออฟไลน์
กระทู้: 1,531
|
|
« ตอบ #3 เมื่อ: 12 กรกฎาคม 2011, 16:57:05 » |
|
รบกวนแสดง code นิดนึงได้ไหมคะ จะได้ดูแบบละเอียดๆ อ่ะค่ะ
อันนี้ CODE FORM <form method="POST" action="ok.php" > <input type="text" name="name"> <input type="submit" value="Submit"/> </form> อันนี้รับค่ามา ok.php <?php include("config.php"); $s=$_POST['name']; $sql="SELECT * FROM $t1 WHERE title LIKE '%$s%'"; $dbquery=mysql_db_query($db,$sql);
$row=mysql_num_rows($dbquery); $fil=mysql_num_fields($dbquery); echo "คำค้นหาคือ $name"; while($total=mysql_fetch_array($dbquery)){ $name=$total['title']; echo $name; } mysql_close(); ?> อันนี้ไฟล์ config <?php $host="localhost"; $user="root"; $password="123"; $db="yg_user"; $t1="info"; $t2="user"; $link=mysql_connect($host,$user,$password,$db); mysql_select_db($db,$link) ||die("ไม่สามารถเลือกฐานข้อมูลได้"); mysql_query("SET NAMES utf8"); ?> table ชื่อ info ฟิลที่ค้นหาชื่อ title ขอบคุณมากครับ
|
|
|
บันทึกการเข้า
|
|
|
|
honghong
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 114
ออฟไลน์
กระทู้: 1,267
|
|
« ตอบ #4 เมื่อ: 12 กรกฎาคม 2011, 17:02:20 » |
|
ลองใช้
$s=$HTTP_POST_VARS['name'];
แทน $s=$_POST['name'];
ใน ok.php ดูนะครับ
|
|
« แก้ไขครั้งสุดท้าย: 12 กรกฎาคม 2011, 17:02:50 โดย honghong »
|
บันทึกการเข้า
|
|
|
|
GillBate
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 160
ออฟไลน์
กระทู้: 1,236
|
|
« ตอบ #5 เมื่อ: 12 กรกฎาคม 2011, 17:03:44 » |
|
DB table นั้น เป็นประเภท text หรือเปล่า ผมเคยปวดหัวเพราะใช้ varchar แล้วมันค้นไม่ได้ ต้องเปลี่ยนเป็น text
ที่เขาแนะนำมาก็ใช่ครับ ลองใช้
โค๊ด:
$s=$HTTP_POST_VARS['name'];
แทน $s=$_POST['name'];
ใน ok.php ดูนะครับ
|
|
|
บันทึกการเข้า
|
|
|
|
xfiles
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 74
ออฟไลน์
กระทู้: 1,531
|
|
« ตอบ #6 เมื่อ: 12 กรกฎาคม 2011, 17:05:48 » |
|
ลองใช้
$s=$HTTP_POST_VARS['name'];
แทน $s=$_POST['name'];
ใน ok.php ดูนะครับ
ขอบคุณมากครับ +1 DB table นั้น เป็นประเภท text หรือเปล่า ผมเคยปวดหัวเพราะใช้ varchar แล้วมันค้นไม่ได้ ต้องเปลี่ยนเป็น text
ที่เขาแนะนำมาก็ใช่ครับ ลองใช้
โค๊ด:
$s=$HTTP_POST_VARS['name'];
แทน $s=$_POST['name'];
ใน ok.php ดูนะครับ
ขอบคุณมากเช่นกัน + 1 ขอไปแก้แปบนะครับ
|
|
|
บันทึกการเข้า
|
|
|
|
xfiles
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 74
ออฟไลน์
กระทู้: 1,531
|
|
« ตอบ #7 เมื่อ: 12 กรกฎาคม 2011, 17:09:46 » |
|
นิ่งสนิท เปลี่ยนเป็นชนิด TEXT แว้ว พลาดอะไรไปน้อ
|
|
|
บันทึกการเข้า
|
|
|
|
O.o!!
Verified Seller
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 237
ออฟไลน์
กระทู้: 1,432
|
|
« ตอบ #8 เมื่อ: 12 กรกฎาคม 2011, 17:27:20 » |
|
echo "คำค้นหาคือ $name";
1. คำค้นหาไม่ใช่ $s เหรอ ทำไมเป็น $name ซะงั้น
2. ลอง echo $row ดู
3. ลอง แก้
$dbquery=mysql_db_query($db,$sql); เป็น
$dbquery=mysql_db_query($db,$sql) or die(mysql_error());
จะได้รู้ว่ามี เออเร่อไหม
|
|
|
บันทึกการเข้า
|
|
|
|
xfiles
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 74
ออฟไลน์
กระทู้: 1,531
|
|
« ตอบ #9 เมื่อ: 12 กรกฎาคม 2011, 17:34:13 » |
|
echo "คำค้นหาคือ $name";
1. คำค้นหาไม่ใช่ $s เหรอ ทำไมเป็น $name ซะงั้น
2. ลอง echo $row ดู
3. ลอง แก้
$dbquery=mysql_db_query($db,$sql); เป็น
$dbquery=mysql_db_query($db,$sql) or die(mysql_error());
จะได้รู้ว่ามี เออเร่อไหม
อ่อตอนแรกผมไม่ได้เขียน $s=$_POST['name']; ส่งตรงเข้าไป query เลย ลองแล้วไม่มี error เลยครับ ถ้าผม พิม $sql="SELECT * FROM $t1 WHERE title LIKE '% คีเวิด%'"; มันก็แสดงผล โอเคอ่ะครับ + ให้แล้วนะครับ ของคุณมาก ยังไม่ได้อ่ะครับ รบกวนช่วยเช็คหน่อยครับ
|
|
|
บันทึกการเข้า
|
|
|
|
mozziimomo
Newbie
พลังน้ำใจ: 4
ออฟไลน์
กระทู้: 60
|
|
« ตอบ #10 เมื่อ: 12 กรกฎาคม 2011, 18:01:13 » |
|
<?php include("config.php"); $s=$_POST['name']; $sql="SELECT * FROM $t1 WHERE title LIKE '%$s%'"; $dbquery=mysql_db_query($db,$sql);
$row=mysql_num_rows($dbquery); $fil=mysql_num_fields($dbquery); echo "คำค้นหาคือ $name"; while($total=mysql_fetch_array($dbquery)){ $name=$total['title']; echo $name; } mysql_close(); ?> echo "คำค้นหาคือ $name";
1. คำค้นหาไม่ใช่ $s เหรอ ทำไมเป็น $name ซะงั้น
2. ลอง echo $row ดู
3. ลอง แก้
$dbquery=mysql_db_query($db,$sql); เป็น
$dbquery=mysql_db_query($db,$sql) or die(mysql_error());
จะได้รู้ว่ามี เออเร่อไหม
ถามก่อนว่า $name ตัวนี้คืออะไร มาจากไหนครับ
|
|
|
บันทึกการเข้า
|
|
|
|
nst_nk
Verified Seller
เจ้าพ่อบอร์ดเสียว
พลังน้ำใจ: 385
ออฟไลน์
กระทู้: 3,396
|
|
« ตอบ #11 เมื่อ: 12 กรกฎาคม 2011, 18:04:16 » |
|
ก่อนอื่นลอง echo $s; ดูก่อนครับ =========================================== ลองเปลี่ยน name="name" เป็นอย่างอื่นครับ เช่น name="searchname" ไม่แน่ใจว่า name มันเป็นคำต้องห้ามเอาไปตั้งชื่อเป็นตัวแปรไม่ได้หรือเปล่า ( เดาล้วนๆนะ )
|
|
« แก้ไขครั้งสุดท้าย: 12 กรกฎาคม 2011, 18:07:09 โดย nst_nk »
|
บันทึกการเข้า
|
◤◤ รับเขียนระบบต่างๆครับ เช่น ระบบ Shipping , ร้านค้าออนไลน์ , อสังหาริมทรัพย์ , ระบบจัดการหลังบ้านทุกประเภท สอบถามได้ครับ Line : bigznst ◥◥
|
|
|
mozziimomo
Newbie
พลังน้ำใจ: 4
ออฟไลน์
กระทู้: 60
|
|
« ตอบ #12 เมื่อ: 12 กรกฎาคม 2011, 18:10:03 » |
|
Wait a minute
|
|
« แก้ไขครั้งสุดท้าย: 12 กรกฎาคม 2011, 18:18:18 โดย mozziimomo »
|
บันทึกการเข้า
|
|
|
|
yosima
Verified Seller
ก๊วนเสียว
พลังน้ำใจ: 109
ออฟไลน์
กระทู้: 494
|
|
« ตอบ #13 เมื่อ: 12 กรกฎาคม 2011, 18:29:29 » |
|
ไม่มีไรทำ รอ amazon อัพมาเห็นพอดีเลยไปลองให้ ลองแก้เอาละกันครับ ผมมั่วๆ hard code มาไปแก้เองนะครับ -- phpMyAdmin SQL Dump -- version 2.10.3 -- http://www.phpmyadmin.net -- -- Host: localhost -- Generation Time: Jul 12, 2011 at 07:25 PM -- Server version: 5.1.54 -- PHP Version: 5.2.6
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
-- -- Database: `test` --
-- --------------------------------------------------------
-- -- Table structure for table `test1` --
CREATE TABLE `test1` ( `test2` varchar(10) NOT NULL, `test3` varchar(10) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- -- Dumping data for table `test1` --
INSERT INTO `test1` VALUES ('value2', 'value3');
<?php $host="localhost"; $user="root"; $password="1234"; $db="test"; $link=mysql_connect($host,$user,$password,$db); mysql_select_db($db,$link) ||die("ไม่สามารถเลือกฐานข้อมูลได้"); mysql_query("SET NAMES utf8");
$sql="SELECT * FROM `test1` WHERE `test2` LIKE 'value2'"; echo $sql; $dbquery=mysql_db_query($db,$sql); $num=mysql_num_rows($dbquery);
while ($row = mysql_fetch_assoc($dbquery)) { echo "<br>".$row["test2"]; echo "<br>".$row["test3"]; }
mysql_close(); ?>
|
|
|
บันทึกการเข้า
|
|
|
|
Infinity
คนรักเสียว
พลังน้ำใจ: 9
ออฟไลน์
กระทู้: 139
|
|
« ตอบ #14 เมื่อ: 12 กรกฎาคม 2011, 18:31:48 » |
|
ตอนนี้ผมสงสัยเรื่อง charactor set ที่สุด
เช่น form เป็น tis-620
แต่ ok.php เป็น utf-8 อะไรประมาณนี้
ลอง echo $s กับ $sql ออกมาเช็คหน่อยครับ
แล้วก็อปผลลัพธ์ของ $sql ไปวางไว้ใน SQL ของ phpMyAdmin แล้วลองรันดู
|
|
|
บันทึกการเข้า
|
|
|
|
mozziimomo
Newbie
พลังน้ำใจ: 4
ออฟไลน์
กระทู้: 60
|
|
« ตอบ #15 เมื่อ: 12 กรกฎาคม 2011, 19:14:20 » |
|
แก้ไฟล์ config.php เป็น $host="localhost"; $user="root"; $password="123"; $db="yg_user"; $t1="info"; $t2="user";
$link = mysql_connect("localhost","$user$db","$password") or die ("Could not Connect"); if(!$link) die("no db"); if(!mysql_select_db("$user$db",$link)) die("No database selected."); ทดสอบแล้วครับ ได้ผล
|
|
|
บันทึกการเข้า
|
|
|
|
xfiles
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 74
ออฟไลน์
กระทู้: 1,531
|
|
« ตอบ #16 เมื่อ: 12 กรกฎาคม 2011, 19:16:10 » |
|
ขอบคุณมากๆ +1 ทุกๆท่าน แต่กี้เดินทางอยู่ เดวลองทำที่บ้านหน่อย แต่เจ้า DB อยู่ที่ทำงาน เดวจำลองเอาล่ะกัน อิอิ
|
|
|
บันทึกการเข้า
|
|
|
|
xfiles
หัวหน้าแก๊งเสียว
พลังน้ำใจ: 74
ออฟไลน์
กระทู้: 1,531
|
|
« ตอบ #17 เมื่อ: 13 กรกฎาคม 2011, 08:58:55 » |
|
ได้แล้วครับ ผมไม่ได้กำหนด charset เป็น utf-8 ที่ฟอร์มรับ ขอบคุณทุกๆท่านมากๆนะครับ
|
|
|
บันทึกการเข้า
|
|
|
|
Infinity
คนรักเสียว
พลังน้ำใจ: 9
ออฟไลน์
กระทู้: 139
|
|
« ตอบ #18 เมื่อ: 13 กรกฎาคม 2011, 12:45:39 » |
|
คร๊าบบผม ยินดีๆ
|
|
|
บันทึกการเข้า
|
|
|
|
|