ขอบคุณมากๆครับ แต่ผมลองใส่ NOT LIKE แล้วข้อมูลออกมาหมดเลยหนะครับ ผมต้องเขียนใส่ไว้ตรงไหนหรอครับ
Code (PHP)
<html>
<head>
<title>ThaiCreate.Com PHP & MySQL Tutorial</title>
</head>
<body>
<form name="frmSearch" method="get" action="<?=$_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>Keyword
<input name="txtKeyword" type="text" id="txtKeyword" value="<?=$_GET["txtKeyword"];?>">
<input type="submit" value="Search"></th>
</tr>
</table>
</form>
<?
if($_GET["txtKeyword"] != "")
{
$objConnect = mysql_connect("localhost","root","11223344") or die("Error Connect to Database");
$objDB = mysql_select_db("destination");
// Search By Name or Email
$strSQL = "SELECT * FROM sourcedestination WHERE
(
room_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or row_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or rack_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or brand_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or brands_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or storage_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or port_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or ports_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or sourcelocation_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or sourceport_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or interface_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or protocol_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or product_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or devicename_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or ipaddress_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or destinationport_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or destinationlocation_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or remark_a NOT LIKE '%".$_GET["txtKeyword"]."%'
or room_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or row_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or rack_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or brand_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or brands_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or storage_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or ports_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or sourcelocation_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or sourceport_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or interface_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or protocol_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or product_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or devicename_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or ipaddress_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or destinationport_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or destinationlocation_b NOT LIKE '%".$_GET["txtKeyword"]."%'
or remark_b NOT LIKE '%".$_GET["txtKeyword"]."%'
)";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
?>
<table width="600" border="1">
<tr>
<td width="58" align="center" valign="middle" bgcolor="#999999" ><strong>Edit|Del</strong></td>
<td width="164" height="26" align="center" valign="middle" bgcolor="#999999"><strong>Source Location</strong></td>
<td width="126" align="center" valign="middle" bgcolor="#999999"><strong>Source Port</strong></td>
<td width="64" align="center" valign="middle" bgcolor="#999999"><strong>Interface</strong></td>
<td width="57" align="center" valign="middle" bgcolor="#999999"><strong>Protocol</strong></td>
<td bgcolor="#FF0000"></td><td width="161" align="center" valign="middle" bgcolor="#999999" ><strong> Product</strong></td>
<td width="132" align="center" valign="middle" bgcolor="#999999" ><strong>Device Name</strong></td>
<td width="95" align="center" valign="middle" bgcolor="#999999" ><strong>IP Address</strong></td>
<td width="127" align="center" valign="middle" bgcolor="#999999" ><strong>Destination Port</strong></td>
<td width="165" align="center" valign="middle" bgcolor="#999999" ><strong>Destination Location</strong></td>
<td width="76" align="center" valign="middle" bgcolor="#999999" ><strong>Remark</strong></td>
</tr>
<?
while($objResult = mysql_fetch_array($objQuery))
{
?>
<tr align="center" valign="middle" bgcolor="<?=$bg?>">
<td height="20" align="center"><a href="phpMySQLEditRecordForm.php?id=<?=$objResult["id"];?>"><img src="image/1378293707_cog_edit.png" width="20" height="20"></a><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='phpMySQLDeleteRecord.php?id=<?=$objResult["id"];?>';}"><img src="image/1378571326_button_cancel.png" width="20" height="20"></a></td>
<td height="20" align="center"><?=$objResult["sourcelocation_a"];?></td>
<td height="20" align="center"><?=$objResult["sourceport_a"];?></td>
<td height="20" align="center"><?=$objResult["interface_a"];?></td>
<td height="20" align="center"><?=$objResult["protocol_a"];?></td><td bgcolor="#FF0000">
<td height="20" align="center"><?=$objResult["product_a"];?></td>
<td height="20" align="center"><?=$objResult["devicename_a"];?></td>
<td height="20" align="center"><?=$objResult["ipaddress_a"];?></td>
<td height="20" align="center"><?=$objResult["destinationport_a"];?></td>
<td height="20" align="center"><?=$objResult["destinationlocation_a"];?></td>
<td height="20" align="center"><?=$objResult["remark_a"];?></td>
</tr>
<tr align="center" valign="middle" bgcolor="<?=$bg?>">
<td height="20" align="center"><a href="phpMySQLEditRecordForm.php?id=<?=$objResult["id"];?>"><img src="image/1378293707_cog_edit.png" width="20" height="20"></a><a href="JavaScript:if(confirm('Confirm Delete?')==true){window.location='phpMySQLDeleteRecord.php?id=<?=$objResult["id"];?>';}"><img src="image/1378571326_button_cancel.png" width="20" height="20"></a></td>
<td height="20" align="center"><?=$objResult["sourcelocation_b"];?></td>
<td height="20" align="center"><?=$objResult["sourceport_b"];?></td>
<td height="20" align="center"><?=$objResult["interface_b"];?></td>
<td height="20" align="center"><?=$objResult["protocol_b"];?></td><td bgcolor="#FF0000">
<td height="20" align="center"><?=$objResult["product_b"];?></td>
<td height="20" align="center"><?=$objResult["devicename_b"];?></td>
<td height="20" align="center"><?=$objResult["ipaddress_b"];?></td>
<td height="20" align="center"><?=$objResult["destinationport_b"];?></td>
<td height="20" align="center"><?=$objResult["destinationlocation_b"];?></td>
<td height="20" align="center"><?=$objResult["remark_b"];?></td>
</tr>
<?
}
?>
</table>
<?
mysql_close($objConnect);
}
?>
</body>
</html>
ค้น a เอาอันที่ไม่ไช่ a หรือ เอาอันที่ไม่มีส่วนประกอบของa ครับ
ถ้าใช้ not like คือไม่เอาอันที่มีส่วนประกอบของคำนี้ >>>> filde not like %text%
ถ้าใช้ <> (อ่านว่าไม่เท่ากับ ) คือไม่เอาอันที่เป็นคำนี้(แบบfulltext) >>>>> filde <> text
DB_A , DB_B คงจะหมายถึง ฟิลล์A , ฟิลล์ B ไช่ไหมครับ *--* คงไม่คิวรี่ข้าม DB นะไม่งั้นเรื่องใหญ่ 5 5 5
ใช้ NOT LIKE แต่!!! จะเชื่อด้วยโอปอเรเตอร์ OR ไม่ได้ครับ .. . เพราะว่ามันเป็นทิศทางตรงข้ามกันกับ LIKE
นิยามมั่วๆ. . . .
ตามหลักคณิตศาสตร์แล้ว ให้ LIKE เท่ากับ "N" มี NOT LIKE เป็นทิศทา่งตรงข้าม LIKE ดังนั้นมันคือ ~N
เมื่อปกติ N OR N แต่เมื่อ ~N ต้องเชื่อมใหม่เป็ฯ ~N AND ~N
สรุปว่าใส่ . . . NOT LIKE แบบข้างบนถูกแล้วครับ แต่ต้องเชื่อมด้วยโอปอเรเตอร์ "AND" ลองดูครับ
select * from table where (B1 LIKE %$text_search%) or (B2 NOT LIKE %$text_search%) or (B3 NOT LIKE %$text_search%) or (B4 NOT LIKE %$text_search%) order by ASC
ในเมื่อจะหาใน A แล้วไม่สน A ก็ลองหาจาก B ไปตรง ๆ ได้เปล่า??
ไม่ได้อะครับ คือข้อมูลมันอยู่ในแถวเดียวกันครับ หัวกับ หาง หัวคือ A หางคือ B คือถ้าเราค้นหาอะไรไปสักอย่างไปติดที่หัวก็คือ A ข้อมูลที่เป็นหางที่เป็น B จะถูกเรียกขึ้นมาแสดงแทนครับ
ลักษณะงานน่าจะเป็นแบบนี้ไช่ไหมครับ
ผู้ใช้งานรู้แต่ข้อมุล A ซึ่งเค้าจะไม่รู้ข้อมูลชนิด B ดังนั้น... ตอนSearch เค้าจึงต้องSearch ข้อมูลประเภท A แต่เราจะโชว์ B ให้เห็น ถูกไหมครับ ถ้าผมคิดถูกมันต้องเป็นแบบนี้
Search A เอา A นั้นเหละ แต่โชว์ข้อมูล B เฉยๆ
ดังนั้นใช้ LIKE แต่่ส่วนการ mysql_fetch_array เรา เอาแค่ข้อมูล _b มาแสดงเฉยๆไม่มีอะไรยุ่งยากเลย :)
เกือบจะใช่เเล้วพี่ คือผู้ใช้งานจะไม่รู้นะครับ ว่าข้อมูลอยู่ใน A หรือ B เพียงแต่ว่า ถ้าค้นหาเเล้วไปตกตรง A ไม่ก็ตกตรง B มันจะโชว์ข้อมูลตรงกันข้ามเท่านั้นหน่ะครับ ผมต้องตัดส่วนไหนเเล้วเพิ่มส่วนไหนหรอ
แบบนี้ครับ
ค้นหาเจอใน A เอา A มาแต่โชว์ B
ค้นหาเจอใน B เอา B มาแต่โชว์ A
$strSQL1 = "SELECT * FROM sourcedestination WHERE ( room _a ทั้งหมด Like อะไรก็ว่ากันไป)";
$objQuery1 = mysql_query($strSQL1) or die ("Error Query [".$strSQL1."]");
$strSQL2 = "SELECT * FROM sourcedestination WHERE ( room _b ทั้งหมด Like อะไรก็ว่ากันไป)";
$objQuery2 = mysql_query($strSQL2) or die ("Error Query [".$strSQL2."]");
ครับไม่เป็นไร สนุกดี 55 แต่
**จะมีปัญหาในการ ORDER BY นะครับ คือข้อมูลที่ fetch จาก Like a จะโชว์ก่อน ข้อมูลที่มาจาก Like b ทั้งหมด
** อาจเกิดปัญหาโชว์ข้อมูลซ้ำซ้อนได้ กรณีที่ ในเรคคอร์ดนั้นๆ มี ฟิลใน _a ดันไปเหมือนกับ _b