作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我忙于复选框搜索并上传某些数据。我正在使用 wordpress 并且为了存储数据,我使用了一个简单的插件,该插件创建了一个数据库并可以在特定的表/列中插入数据。
我创建了一个自定义复选框搜索功能,允许用户使用复选框提交来获取数据。尽管该功能工作正常,但使用复选框上传的数据存在问题(因此这不是使用复选框进行搜索,而是上传)。问题是我的foreach($_POST['columns']
函数获取我用来查询的数据。但是,当使用复选框(因此可能有多个值)提交数据时,它在数据库中的字符串是一个非常奇怪的字符串,查询(WHERE)无法理解,因此它什么也不返回。
为了更清楚一点,请参见下面的代码:
HTML:
<form method="post">
<div id="list3" class="dropdown-check-list">
<span class="anchor">Select theme of Living Lab</span>
<ul class="items">
<li><input type="checkbox" name="columns[]" value="Independent_living" />Independent living</li>
<li><input type="checkbox" name="columns[]" value="Chronic_heart_failure" />Chronic heart failure</li>
<li><input type="checkbox" name="columns[]" value="Dementia" />Dementia</li>
<li><input type="checkbox" name="columns[]" value="Prevention" />Prevention</li>
<li><input type="checkbox" name="columns[]" value="Other" />Other</li>
</ul>
</div>
<div id="list4" class="dropdown-check-list">
<span class="anchor">Select stage of Living Lab</span>
<ul class="items">
<li><input type="checkbox" name="columns[]" value="Starting_phase" />Starting phase</li>
<li><input type="checkbox" name="columns[]" value="Running_phase" />Running phase</li>
<li><input type="checkbox" name="columns[]" value="Completed" />Completed</li>
</ul>
</div>
<input type="submit" name="go" value="Submit"/>
</form>
if(!empty($_POST['columns'])) { // empty() checks if the value is set before checking if it's empty.
foreach($_POST['columns'] as $key_post=>$value_post){
// Runs mysql_real_escape_string() on every value encountered.
$clean_criteria = array_map('mysql_real_escape_string', $_REQUEST['columns']);
// Convert the array into a string.
$criteria = implode("','",$clean_criteria);
}
$tmp = $wpdb->get_results("
SELECT
name_of_living_lab, location_of_living_lab, type_of_living_lab, theme_of_living_lab, stage_of_living_lab, living_lab_document
FROM
wp_participants_database
WHERE
theme_of_living_lab IN ('$criteria')
ORDER BY
name_of_living_lab ASC
");
}
else {
//SOME ELSE ACTION - SHOW EVERYTHING
}
echo "<table>
<tr>";
echo "<th>Name of Living Lab</th>";
echo "<th>Location of Living Lab</th>";
echo "<th>Type of Living Lab</th>";
echo "<th>Theme of Living Lab</th>";
echo "<th>Stage of Living Lab</th>";
echo "<th>Living Lab document</th>";
echo "</tr>";
if(count($tmp)>0){
for($i=0;$i<count($tmp);$i++){
echo "<tr>";
foreach($tmp[$i] as $key=>$value){
echo "<td>" . $value . "</td>";
}
echo "</tr>";
}
}
echo '</table>';
最佳答案
也许您正在尝试这样做:
foreach($_POST['columns'] as $key_post=>$value_post){
// Runs mysql_real_escape_string() on every value encountered.
// $clean_criteria = array_map('mysql_real_escape_string', $_REQUEST['columns']);
$clean_criteria[] = mysql_real_escape_string($value_post); // <---
// Convert the array into a string.
// $criteria = implode("','",$clean_criteria);
}
$criteria = implode("','",$clean_criteria);
关于php - 如何通过查询从我的数据库中获取复选框插入的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25644721/
我是一名优秀的程序员,十分优秀!