gpt4 book ai didi

php - 将 php 变量从选择器传递到搜索数据库

转载 作者:行者123 更新时间:2023-12-01 08:41:54 25 4
gpt4 key购买 nike

我正在为一个类开发一个项目,但在从所选选择器传递变量时遇到问题。我很好地传递了 $inst 变量,但是 $focus 变量给了我这个:

Undefined index: chzn2 in C:\xampp\htdocs\phptest\results.php on line 20.

仅供引用:我在数据库中允许为空

这是选择器的代码。

    $sql = "SELECT institutionName, instID FROM institutions";
$dropq = mysqli_query($conn, $sql);
echo "<select data-placeholder='Select an Institution' name='chzn1' class='chzn-select' standard='true' style='width:250px;'>";
while ($row = mysqli_fetch_array($dropq)) {
echo "<option></option><option value='" . $row['instID'] . "'>" . $row['institutionName'] . "</option>";
}
echo "</select>";

$sql1 = "SELECT orgFocus FROM communityOrgs";
$dropq = mysqli_query($conn, $sql1);

echo "<select data-placeholder='Select Focus Area' name='chzn2' class='chzn-select' multiple='true' style='width:250px;'>";
while ($row1 = mysqli_fetch_array($dropq)) {
echo "<option></option>
<option value='" . $row1['orgFocus'] . "'>" . $row1['orgFocus'] . "</option>";
}
echo "</select>";

这是结果代码

if (isset($_POST['submit-search'])) {
if(empty($_POST['chzn1']) && empty($_POST['chzn2'])){
echo "Please enter at least one value!";
}
else if(!empty($_POST['chzn1']) || !empty($_POST['chzn2'])) {

// Grabbing variables from User Inputs
$inst = $_POST['chzn1'];
$focus = $_POST['chzn2'];


$query = "SELECT * FROM partnerships WHERE instID = '$inst' OR orgFocus = '$focus'";

$result = mysqli_query($conn, $query);
$queryResults = mysqli_num_rows($result);

if($queryResults > 0) {
while ($row = mysqli_fetch_array($result)) {
echo "<div class='results-container'>
<h3>".$row['instName']."</h3>
<p>".$row['orgName']."</p>
<p>".$row['orgFocus']."</p>
</div>";
;}
}

最佳答案

正如错误所示:

Undefined index: chzn2

根据您的逻辑,可以传递两个值中的一个,从而可以取消设置其中一个值,从而引发错误 - 正如它应该的那样。

您需要检查是否有一个 $_POST 键单独存在,并分别将它们的值设置为传递的值或 null。

示例

<?php
$chzn1 = null;
$chzn2 = null;

if (!empty($_POST['chzn1']))
$chzn1 = $_POST['chzn1'];

if (!empty($_POST['chzn2']))
$chzn1 = $_POST['chzn2'];
?>

现在它们都有默认值,因此不会抛出错误。

注意:当您使用mysqli_*时,请使用准备好的语句。

更新#1

可能是由于格式错误,但您还有一个 float 分号 ;:

;}

关于php - 将 php 变量从选择器传递到搜索数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46100397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com