편집 : 상황에 대한 몇 가지 현재 코드를 포함하도록 업데이트, 여기에 굵은데이터베이스의 모든 테이블을 검색하는 방법은 무엇입니까?
신참에 질문을 추가 :
나는 각 부품의 15,000-100,000 행 가득 제조업체의 20 개 정도 테이블이됩니다 표. PartNumber, Superceding Part Number, List Price, MFG Price, Sale Price 등과 같은 정보는 컬럼으로 저장됩니다. 검색 상자에 부품 번호를 입력하고 지금까지 번호와 일치하는 모든 부품을 표시 한 다음 더 많은 부품 번호를 입력 할 때 부품 번호를 업데이트 할 수 있기를 바랍니다.
나는 현재 '0000'과 같이 몇 개의 숫자를 입력하면 1 000011, 00001300015000023과 같이 0000으로 시작하는 상위 5 개 부분을 반환합니다. , 000025 및 이에 대한 일부 정보가 포함되어 있습니다. 내가 하나 더 번호 '00002'를 입력하면 000023과 000025 만 표시됩니다. 그러나 어떤 제조업체가 그 부품을 제조했는지 알지 못할 경우를 대비하여이 검색을 데이터베이스의 모든 테이블에서 실행하고 싶습니다.
현재 나는 ariens_prices와 briggs_prices라는 두 개의 테이블이있는 taft_test1이라는 데이터베이스를 가지고 있습니다. 각 테이블에는 동일한 열이 포함되지만 모든 항목의 데이터로 채워지지 않을 수도 있습니다.
이 문제를 해결하는 가장 좋은 방법에 대한 아이디어가 있습니까?
일부 사용자는 UNION을 언급했으나 20 개 이상의 노조를 사용해야합니까? 아니면 데이터베이스를 레이아웃하는 더 좋은 방법이 있을까요?
감사합니다. 내가 작업 한
샘플 코드 :
partslookup.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Taft Power Equipment</title>
<script type="text/javascript" language="Javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="js/jquery.horizontalNav.js"></script>
<script>
// When document is ready...
$(document).ready(function() {
$('.full-width').horizontalNav({}); // Call horizontalNav on the navigations wrapping element
});
</script>
<script>
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","livesearch.php?q="+str,true);
xmlhttp.send();
}
</script>
<link rel="stylesheet" type="text/css" href="style.css" />
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="style-ie.css" />
<![endif]-->
</head>
<body>
<div id="page-wrap">
<div id="inside">
<div id="header">
<a href="file:///C:/Users/ryan/Desktop/websites/ryan%20website/index.html"><img src="images/TaftLogo2.png" alt="header" /></a>
</div>
<div id="menu">
<nav class="horizontal-nav full-width horizontalNav-notprocessed">
<ul>
<li><a href="index.html">Home</a></li>
<li><a href="#">Work</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li><a href="partslookup.php">Parts Look Up</a></li>
</ul>
</nav>
</div>
<div id="main-content">
<input id="test" class="auto" type="text" size="25" placeholder="Enter Part Here" onkeyup="showUser(this.value)"
<br><br><br>
<div id="txtHint"><b>Part info will display here.</b></div>
<br><br><br><br>
</div>
<div style="clear: both;"></div>
<div id="footer">
<p>© Copy Right Taft Power Equipment Corp</p>
</div>
</div>
</body>
</html>
livesearch.php
<?php
$q = $_GET['q'];
echo "Part Entered: $q <br><br>";
$dbhost = 'localhost:3306';
$dbuser = 'root';
$dbpass = 'password';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
die('Could not connect: ' . mysql_error());
}
$sql = "SELECT * FROM `briggs_prices` WHERE briggs_prices.Description LIKE '$q%'
UNION
SELECT * FROM `ariens_prices` WHERE ariens_prices.Description LIKE '$q%'
LIMIT 0, 50 ";
mysql_select_db('taft_test1');
$retval = mysql_query($sql, $conn);
if(! $retval)
{
die('Could not get data: ' . mysql_error());
}
echo "<table border='1'>
<tr>
<th>Part#</th>
<th>Description</th>
<th>Price</th>
</tr>";
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "<tr>";
echo "<tr>";
echo "<td>" . $row['Description'] . "</td>";
echo "<td>" . $row['SuperNum'] . "</td>";
echo "<td>" . $row['LIST1'] . "</td>";
echo "</tr>";
}
echo "</table>";
while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
{
echo "Part# :{$row['Description']} ".
"Desc : {$row['SuperNum']} ".
"Cost : {$row['LIST1']} ".
"--------------------------------<br>";
}
//echo "Fetched data successfully\n";
mysql_close($conn);
?>
모든 제조업체를 하나의 테이블에 추가하십시오. – sskoko
쿼리에서 'union'을 사용할 수 있습니다. – bansi
올바르게 이해하면 제조업체의 브랜드 만 구별되는 20 개의 동일한 테이블이 있습니까? 새로운 것을 추가해야한다면? 더 많은 테이블을 생성합니까? 소리 정말 내게 결함이 ... 어쩌면 나는 데이터베이스 디자인의 적절한 이해와 함께 시작 하겠어 .... – walther