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

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

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

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« เมื่อ: 12 กรกฎาคม 2011, 16:47:02 »

 คือทำระบบค้นหาข้อมูลใน DB ธรรมดาๆ อ่ะครับ ที่นี้พอ ตัวแปร รับค่ามาจากฟอร์มโพส POST มันไม่แสดงอะไรเลยครับ แต่พอ ใส่ค่าเองแบบพิมคำแทนเลยจะแสดงผลออกมาโอเค  wanwan031

ปวดหัวมากมาย งง มึน ตึบ  wanwan031  + 1 ทุกท่านๆ ขอบคุณล่วงหน้าครับ  wanwan017
บันทึกการเข้า

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 นิดนึงได้ไหมคะ จะได้ดูแบบละเอียดๆ อ่ะค่ะ
Cry


อันนี้ 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


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

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 ดูนะครับ

ขอบคุณมากครับ   wanwan017 +1

DB table นั้น เป็นประเภท text หรือเปล่า ผมเคยปวดหัวเพราะใช้ varchar แล้วมันค้นไม่ได้ ต้องเปลี่ยนเป็น text

ที่เขาแนะนำมาก็ใช่ครับ
ลองใช้

โค๊ด:

$s=$HTTP_POST_VARS['name'];


แทน $s=$_POST['name'];

ใน ok.php ดูนะครับ

ขอบคุณมากเช่นกัน + 1

ขอไปแก้แปบนะครับ  Tongue
บันทึกการเข้า

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

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 12 กรกฎาคม 2011, 17:09:46 »

นิ่งสนิท เปลี่ยนเป็นชนิด TEXT แว้ว  wanwan031 พลาดอะไรไปน้อ  Tongue
บันทึกการเข้า

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 '%คีเวิด%'";

มันก็แสดงผล โอเคอ่ะครับ

+ ให้แล้วนะครับ ของคุณมาก ยังไม่ได้อ่ะครับ รบกวนช่วยเช็คหน่อยครับ  wanwan031 wanwan017

บันทึกการเข้า

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; ดูก่อนครับ

===========================================  wanwan008

ลองเปลี่ยน

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 &#39;value2&#39;";
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 อยู่ที่ทำงาน เดวจำลองเอาล่ะกัน อิอิ  Tongue
บันทึกการเข้า

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

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

กระทู้: 1,531



ดูรายละเอียด เว็บไซต์
« ตอบ #17 เมื่อ: 13 กรกฎาคม 2011, 08:58:55 »

ได้แล้วครับ ผมไม่ได้กำหนด charset เป็น utf-8 ที่ฟอร์มรับ  Tongue  ขอบคุณทุกๆท่านมากๆนะครับ  wanwan017
บันทึกการเข้า

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

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

กระทู้: 139



ดูรายละเอียด เว็บไซต์
« ตอบ #18 เมื่อ: 13 กรกฎาคม 2011, 12:45:39 »

คร๊าบบผม ยินดีๆ  Embarrassed
บันทึกการเข้า

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