 |
ช่วยดู code Search แบบ join Table หน่อยครับ ผมมือใหม่ทำไม่ได้ชักทีครับ |
|
 |
|
|
 |
 |
|
-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Nov 09, 2010 at 11:18 AM
-- Server version: 5.0.45
-- PHP Version: 5.2.3
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `part_transfer`
--
-- --------------------------------------------------------
--
-- Table structure for table `head`
--
CREATE TABLE `head` (
`Invoice_ID` int(4) NOT NULL auto_increment,
`Pr_No` varchar(20) NOT NULL,
`Number_No` varchar(20) NOT NULL,
`Invoice_No` varchar(20) NOT NULL,
`Receive_Date` date NOT NULL,
PRIMARY KEY (`Invoice_ID`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620 AUTO_INCREMENT=461 ;
--
-- Dumping data for table `head`
--
INSERT INTO `head` VALUES (23, 'fgf', '', 'fgfff', '0000-00-00');
INSERT INTO `head` VALUES (24, 'xcb', '', '1231nvb', '2010-10-10');
INSERT INTO `head` VALUES (25, 'xcvsd', 'dfgsdf', '123fgdf', '2010-10-10');
INSERT INTO `head` VALUES (455, 'cfgsdf', 'zxdcdfas', '122', '2010-10-10');
INSERT INTO `head` VALUES (456, 'bn', 'fg', 'fgh', '0000-00-00');
INSERT INTO `head` VALUES (457, 'gh', 'fgh', 'ghj', '0000-00-00');
INSERT INTO `head` VALUES (458, 'dfg', 'dfgd', 'fgdf', '0000-00-00');
INSERT INTO `head` VALUES (459, '1121221', '2112', '1221', '2010-10-20');
INSERT INTO `head` VALUES (460, 'dfg', 'dfgdfg', 'fgbhfg', '2010-10-21');
-- --------------------------------------------------------
--
-- Table structure for table `item`
--
CREATE TABLE `item` (
`ID` int(5) NOT NULL auto_increment,
`Part_No` varchar(20) NOT NULL,
`Detail` text NOT NULL,
`Qty` int(5) NOT NULL,
`Unit` varchar(15) NOT NULL,
`Price` double NOT NULL,
`Amount` double NOT NULL,
`Remark` text NOT NULL,
`Invoice_ID` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=tis620 AUTO_INCREMENT=55 ;
--
-- Dumping data for table `item`
--
INSERT INTO `item` VALUES (43, 'zxc ', ' czxc ', 10, ' tfy ', 100, 200, ' gfhf ', 0);
INSERT INTO `item` VALUES (1, 'gggg ', ' hhhhh ', 200, ' uu ', 5000, 200, ' gjhg ', 0);
INSERT INTO `item` VALUES (2, 'ghjghj ', ' gjgh ', 200, ' ghj ', 500, 200, ' mhmh ', 0);
INSERT INTO `item` VALUES (3, 'hjhj ', ' hjkh ', 10, ' jhmh ', 20, 200, ' hjmk ', 0);
INSERT INTO `item` VALUES (4, 'jhmk ', ' jhm ', 20, ' jhm ', 500, 500, ' jhmhjmh ', 0);
INSERT INTO `item` VALUES (44, 'jkl ', ' l ', 10, ' kjk ', 100, 100, ' vsd ', 0);
INSERT INTO `item` VALUES (45, 'io ', ' i ', 10, ' 100 ', 100, 10, ' tyu ', 0);
INSERT INTO `item` VALUES (46, 'iuo ', ' uio ', 10, ' lk ', 100, 120, ' gds ', 0);
INSERT INTO `item` VALUES (47, '111111 ', ' 111111 ', 11, ' 111 ', 11, 11, ' 11 ', 459);
INSERT INTO `item` VALUES (48, '2222 ', ' 222 ', 222, ' 22 ', 22, 22, ' 22 ', 459);
INSERT INTO `item` VALUES (49, 'fghfg ', ' hfgh ', 100, ' fgbhfg ', 100, 564, ' ', 460);
INSERT INTO `item` VALUES (50, 'fgh ', ' fgh ', 100, ' fghfg ', 1010, 656, ' ', 460);
INSERT INTO `item` VALUES (51, 'hfg ', ' hfg ', 1010, ' ghfg ', 41212, 65, ' ', 460);
INSERT INTO `item` VALUES (52, 'fgh ', ' fgh ', 10, ' hgfh ', 45, 0, ' ', 460);
INSERT INTO `item` VALUES (53, 'fghfg ', ' hfgh ', 101, ' fgh ', 545, 0, ' ', 460);
INSERT INTO `item` VALUES (54, 'fghfg ', ' fghfg ', 10, ' fgh ', 5343, 0, ' ', 460);
จากdatabase ชื่อ part_transfer มี 2 ตาราง คือ head คือ ส่วนหัวบิล item ส่วนเก็บรายเอียดหรือรายการ
โดย โดย Invioce_ID FK
อยากจะค้นหาแบบว่า
1 Invoice_No หรือ Number_No
สมตินะครับ
Invoice No : 123456 Number No :fff55
มี 3 รายการ
Item Part_No Detail Qty Unit Price Amount Remark
1 123 เหล็กเส้น 10 เส้น 100
2 123 เหล็กเส้น 10 เส้น 100
3 123 เหล็กเส้น 10 เส้น 100
searh.php
<?
ส่วนเชื่อม Database
$host="localhost"; // ¡Ó˹´ host
$username="root"; // ¡Ó˹´ username
$pass_word="root"; // ¡Ó˹´ Password
$db="part_transfer"; // ¡Ó˹´ª×èͰҹ¢éÍÁÙÅ
$Conn = mysql_connect( $host,$username,$pass_word) or die ("µÔ´µèͰҹ¢éÍÁÙÅäÁèä´é");// µÔ´µèͰҹ¢éÍÁÙÅ
mysql_query("SET NAMES utf8",$Conn); // set ¡Ó˹´ÁÒµÃÒ°Ò¹
mysql_select_db($db) or die("àÅ×Í¡°Ò¹¢éÍÁÙÅäÁèä´é"); // àÅ×Í¡°Ò¹¢éÍÁÙÅ
//จบ
?>
<form id="form1" name="form1" method="post" action="search.php">
¤é¹ËÒ <input name="txt_search" type="text" value="<?=$_POST['txt_search']?>" /> <input name="search" type="submit" value="¤é¹ËÒ" />
</form>
<table width="600" border="1" cellspacing="2" cellpadding="2">
<tr>
<td><div align="center">No</div></td>
<td><div align="center">PR No</div></td>
<td><div align="center">Number No</div></td>
<td><div align="center">Invoice No</div></td>
<td><div align="center">Receive Date</div></td>
<td><div align="center">Preview</div></td>
</tr>
<?
//$n=0;
//$sql_show= "select * from head";
if($_POST['Search'])
//if(isset($search))
{
//$sql="select * from head";
$txt_search = $_POST['txt_search'];
$sql_show.="where Invoice_No like '%$txt_search%' or Number_No like '%$txt_search%' ";
$sql_show = "SELECT * FROM head, item WHERE (head.Invoice_ID = item.Invoice_ID) And (head.Invoice_No='$txt_search')";
$result11= mysql_query($sql_show);
echo $sql_show;
//$ff= mysql_query($sql_show)or die(mysql_error());
//echo $sql_show;
}
$n=1;
while($row_show = mysql_fetch_array($result11))
{
$in_id=$row_show["Invoice_ID"];
//echo $in_id;
?>
<tr>
<td><? echo $n;?></td>
<td><?=$row_show['Pr_No']?></td>
<td><?=$row_show['Number_No']?></td>
<td><?=$row_show['Invoice_No']?></td>
<td><?=$row_show['Receive_Date']?></td>
<td><div align="center"><a href="preview_slip.php?in_id=<?=$in_id?>">Preveiw</a></div></td>
</tr>
<?
$n++;
}
?>
</table>
มัน error ผมพึงหัด รบแนะนำด้วยนะครับ
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\part_transfer\search.php on line 40
Tag : PHP
|
|
 |
 |
 |
 |
Date :
2010-11-09 11:31:39 |
By :
dajunkclub |
View :
2532 |
Reply :
5 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใครจาไปนั่งนับบรรทัดที่ 40 ให้คร้าบ ใส่แท็ก php มาให้ด้วยคร้าย จาได้รู้ว่ามันคือบรรทัดไหน ตรง ^ ข้างบนเนี้ยนะจ๊ะ ขอบคุณหลายๆ
|
 |
 |
 |
 |
Date :
2010-11-09 11:49:00 |
By :
monotakari |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
$sql_show = "SELECT * FROM head, item WHERE (head.Invoice_ID = item.Invoice_ID) AND (head.Invoice_No='$txt_search')";
แก้ตามนี้ครับ เปลี่ยนจาก And เป็น AND
MySQL ค่อนข้าง strict เรื่อง Syntax ครับ อะไรที่เป็นคำสั่ง พยามพิมพ์ตัวใหญ่หมด หัดให้ชินครับ
SELECT
FROM
WHERE
AND
OR
ORDER BY
GROUP BY
HAVING
และอื่นๆครับ ถ้าเป็น Command ของ MySQL พิมพ์ตัวใหญ่หมดเลยครับ ชัวร์!!!
|
ประวัติการแก้ไข 2010-11-09 12:02:20 2010-11-09 12:02:42
 |
 |
 |
 |
Date :
2010-11-09 11:54:07 |
By :
adaaugusta |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับ
|
 |
 |
 |
 |
Date :
2010-11-09 15:12:50 |
By :
dajunkclub |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เปลี่ยนจาก And เป็น AND
MySQL ค่อนข้าง strict เรื่อง Syntax ครับ อะไรที่เป็นคำสั่ง พยามพิมพ์ตัวใหญ่หมด หัดให้ชินครับ
^
ตรงนี้มันมั่วนะครับนี่ อิๆ
|
 |
 |
 |
 |
Date :
2010-11-09 15:48:22 |
By :
... |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ตรงนี้ครับ
//$sql="select * from head";
$txt_search = $_POST['txt_search'];
$sql_show.="where Invoice_No like '%$txt_search%' or Number_No like '%$txt_search%' ";
$sql_show = "SELECT * FROM head, item WHERE (head.Invoice_ID = item.Invoice_ID) And (head.Invoice_No='$txt_search')";
จากอันแรก คุณ comment ไปแล้ว แต่
$sql_show.="where Invoice_No like '%$txt_search%' or Number_No like '%$txt_search%' ";
กับ
$sql_show = "SELECT * FROM head, item WHERE (head.Invoice_ID = item.Invoice_ID) And (head.Invoice_No='$txt_search')";
ตัวแปรเหมือนกัน มันน่าจะ
$sql_show แล้วก็ $sql_show. ต่อ น่าจะประมาณนี้นะ แต่ปัญหาก็คือ
$sql_show.="where Invoice_No like '%$txt_search%' or Number_No like '%$txt_search%' "; คือไรอะแล้ว
$sql_show = "SELECT * FROM head, item WHERE (head.Invoice_ID = item.Invoice_ID) And (head.Invoice_No='$txt_search')"; คือไรอะ มัน qury อันเดียวกันอะปะ ลองดูนะ
|
 |
 |
 |
 |
Date :
2011-05-24 22:36:13 |
By :
slurpee55555 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|