PHP SQL表单 - 如何将值传递给下一个Select

时间:2018-06-01 04:10:35

标签: php wordpress mysqli

您好我已经设法将此脚本放在一起作为newbe。我将脚本分成两部分,每个部分单独工作,但是当把它放在一起时,当我把WHERE作为一个可变的值时,它就不会工作了。

(错误到处的行/ shortcode.php(15)的原因是因为它运行在php wordpress插件上,但正如我所说的那样,各个部分的工作原理)

有人可以告诉我如何传递该值

$myvalue

并在脚本的第二部分中打开连接,而不会在连接部分上出现错误。该值确实超过了varible,但却出错。

以下是我得到的错误:

  

警告:mysqli_query():无法在/home/asports/public_html/calendar/wp-content/plugins/php-everywhere/shortcode.php(15)中获取mysqli:eval()'第34行的代码

     

警告:mysqli_error():无法在/home/asports/public_html/calendar/wp-content/plugins/php-everywhere/shortcode.php(15)中获取mysqli:eval()'第52行的代码

     

错误:无法执行SELECT men_slope FROM allcourses WHERE id =' 3'。

     

警告:mysqli_close():无法在/home/asports/public_html/calendar/wp-content/plugins/php-everywhere/shortcode.php(15)中获取mysqli:eval()' d代码在第56行

//第一部分

<?php 
require_once(
$_SERVER['DOCUMENT_ROOT'].'/calendar/courses/admin/connect.php'); 
?>
<form method=post>
<select name="myvalue">
<?php
// Attempt select query execution
$sql = "SELECT id, Name, color FROM allcourses";
$sql = mysqli_query($link, $sql);
while ($row = $sql->fetch_assoc()){
echo "<option value='".$row['id']."'>".$row['Name'] . " (" . $row['color']. 
")" . "</option>";

}
// Close connection
mysqli_close($link);
$myvalue=$_POST['myvalue'];
$myhdc=$_POST['hdc'];
?>
</select>
<br />
<p>Handicap: </p>
<input class="tex" type="text" name="hdc"\></input>

<br />

<input type=submit>
</form>

//第二部分

<?php


// Attempt select query execution
$sqll = "SELECT men_slope FROM allcourses WHERE id='$myvalue'";
if($result = mysqli_query($link, $sqll)){
if(mysqli_num_rows($result) > 0){
while($row = mysqli_fetch_array($result)){
        echo "<tr>";

            echo "<td>" . $row['men_slope'] . "</td>";

        echo "</tr>";
    }

    // Free result set
    mysqli_free_result($result);
} else{
    echo "No records matching your query were found.";
}
} else{
echo "ERROR: Could not able to execute $sqll. " . mysqli_error($link);
}

// Close connection
mysqli_close($link);
?>

1 个答案:

答案 0 :(得分:1)

问题是您在第一部分中致电mysqli_close($link);。然后,当您尝试在第二部分中执行查询时,链接将关闭,因此您无法再使用它。

IHMO,致电mysqli_close()通常并不重要。脚本结束时,连接将自动关闭。因此,除非您的脚本在完成所有数据库查询后运行了很长时间,否则它将不会长时间闲置。