【发布时间】:2014-03-21 13:08:36
【问题描述】:
我不小心删除了我的最后一个帖子,所以又来了:
我有一个小仓库,里面有几个零件,我正在编写一个 jquery、php、mysql 零件查找工具,我有一些零件作为套件提供,其中包含额外的零件编号。
当前查询需要在 mysql 表中有一列显示类似 HasChild 的内容,如果显示为“是”,那么它将显示结果数组中的其他数据。如何将它添加到我当前的结果循环中?
这是我目前正在使用的代码:
<?php
$dbhost = "dbhost";
$dbname = "dbname";
$dbuser = "dbuser";
$dbpass = "dbpass";
global $part_lookup_tool_db;
$part_lookup_tool_db = new mysqli();
$part_lookup_tool_db->connect($dbhost, $dbuser, $dbpass, $dbname);
$part_lookup_tool_db->set_charset("utf8");
if ($part_lookup_tool_db->connect_errno) {
printf("Connect failed: %s\n", $part_lookup_tool_db->connect_error);
exit();
}
$html = '';
$html .= '<li class="result">';
$html .= '<h1 class="btn2"><center> oemprojString</center></h1>';
$html .= '<h2><b>Part Number: functionString</b></h2>';
$html .= '<h4><b>Stock Item Description:</b> nameString</h4>';
$html .= '<h4><b>Stock Type:</b> stocktypeString</h4>';
$html .= '<h4><b>Vendor:</b> vendorString</h4>';
$html .= '</br>';
$html .= '<a target="_blank" href="imageString">';
$html .= '<center><img class="imn" src="imageString" width="50%" height="50%"></center></a>';
$html .= '</br>';
$html .= '<h4><b>Notes:</b> notesString</h4>';
$html .= '</li>';
$search_string = preg_replace("/[^A-Za-z0-9]/", " ", $_POST['query']);
$search_string = $part_lookup_tool_db->real_escape_string($search_string);
if (strlen($search_string) >= 1 && $search_string !== ' ') {
$query = 'SELECT * FROM search WHERE function LIKE "%' . $search_string . '%" OR name LIKE "%' . $search_string . '%"';
$result = $part_lookup_tool_db->query($query);
while ($results = $result->fetch_array()) {
$result_array[] = $results;
}
if (isset($result_array)) {
foreach ($result_array as $result) {
$display_function = preg_replace("/" . $search_string . "/i", "<b class='highlight'>" . $search_string . "</b>", $result['function']);
$display_name = preg_replace("/" . $search_string . "/i", "<b class='highlight'>" . $search_string . "</b>", $result['name']);
$display_image = preg_replace("/" . $search_string . "/i", "" . $search_string . "", $result['image']);
$display_stocktype = preg_replace("/" . $search_string . "/i", "<b class='highlight'>" . $search_string . "</b>", $result['stocktype']);
$display_vendor = preg_replace("/" . $search_string . "/i", "<b class='highlight'>" . $search_string . "</b>", $result['vendor']);
$display_notes = preg_replace("/" . $search_string . "/i", "<b class='highlight'>" . $search_string . "</b>", $result['notes']);
$display_oemproj = preg_replace("/" . $search_string . "/i", "<b class='highlight'>" . $search_string . "</b>", $result['oemproj']);
$output = str_replace('nameString', $display_name, $html);
$output = str_replace('functionString', $display_function, $output);
$output = str_replace('imageString', $display_image, $output);
$output = str_replace('stocktypeString', $display_stocktype, $output);
$output = str_replace('vendorString', $display_vendor, $output);
$output = str_replace('notesString', $display_notes, $output);
$output = str_replace('oemprojString', $display_oemproj, $output);
echo($output);
}
} else {
$output = str_replace('nameString', '<font color="red">No Data Found.</font>', $output);
$output = str_replace('functionString', '<font color="red">No Data Found.</font>', $output);
$output = str_replace('imageString', 'http://i.imgur.com/default.png', $output);
$output = str_replace('stocktypeString', '<font color="red">No Data Found.</font>', $output);
$output = str_replace('vendorString', '<font color="red">No Data Found.</font>', $output);
$output = str_replace('notesString', '<font color="red">No Data Found.</font>', $output);
$output = str_replace('oemprojString', '<font color="red">No Data Found.</font>', $output);
echo($output);
}
}
?>
我做了一些研究,我认为这是我需要添加的内容,但我就是不知道在哪里:
if (isset($result_array)) {
foreach ($result_array as $result) {
if ($result['HasChildren'] == "yes") {
echo $result['ChildParts'];
} elseif ($result['HasChildren'] == "no") {
echo $result['nochildren'];
}
}
}
再次感谢任何帮助我的人,我非常感谢我能得到的所有帮助。
这是 SQLfiddle.com 的link
我希望它使用 PHP 或任何你们认为最适合我提供的代码的方式。 - 再次感谢。
【问题讨论】:
-
您能否举例说明您希望最终输出的外观如何?
-
@PatrickQ 基本上我想显示任何与最终用户搜索字符串匹配的所有结果,但如果它确实有子部分也显示该搜索结果的附加信息,请告诉我你是否不明白我的意思。我会尝试设置一个可以在线玩的示例。
-
"...显示该搜索结果的附加信息..." 什么信息?怎么展示?乍一看,我会说你想要重组你的表,这样你就有一个
kits表,其中包含kitPartID、childPartID和quantity列。或者类似的东西。 -
@PatrickQ 没错,我已经重组了我的表格,并且正在为你制作一个模型,我还会在 Photoshop 中制作一些简单的东西让你看到结果。跨度>
-
@PatrickQ -- 和家人度过了一个长周末,明天 EOD 之前我会为你准备好一切。