PHP SQL Form - Как передать значение следующему Select - PullRequest
0 голосов
/ 01 июня 2018

Привет, мне удалось собрать этот сценарий как новичка.Я разделил сценарий на две части, каждая часть работает по отдельности, но при его объединении и создании WHERE в качестве изменяемого значения он не будет работать.

(причина ошибочной строки везде / shortcode.php (15) в том, что она работает на плагине php wordpress, но, как я уже сказал, отдельные части работают)

Может кто-тоскажите мне, как я могу передать это значение

$myvalue

и открыть соединение во второй части сценария, не получая ошибки в соединительной части.Значение передается переменной, но выдает ошибку.

Вот ошибки, которые я получаю:

Предупреждение: mysqli_query (): не удалось получить mysqli в / home /asports / public_html / calendar / wp-content / plugins / php -where / shortcode.php (15): код eval () в строке 34

Предупреждение: mysqli_error (): не удалось получить mysqli в/home/asports/public_html/calendar/wp-content/plugins/php-everywhere/shortcode.php(15): код eval () в строке 52

ОШИБКА: не удалось выполнить SELECT men_slopeОТ всех источников, ГДЕ id = '3'.

Предупреждение: mysqli_close (): не удалось получить mysqli в /home/asports/public_html/calendar/wp-content/plugins/php-everywhere/shortcode.php(15): eval () кодв строке 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 голосов
/ 01 июня 2018

Проблема в том, что вы звоните mysqli_close($link); в первой части.Затем, когда вы пытаетесь выполнить запрос во второй части, ссылка закрывается, поэтому вы больше не можете ее использовать.

IHMO, обычно не важно вызывать mysqli_close().Соединение будет закрыто автоматически, когда скрипт завершится.Таким образом, если ваш скрипт долго не запускается после выполнения всех запросов к базе данных, он не будет простаивать очень долго.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...