У меня есть таблица movies в которой 20 фильмов. Когда я произвожу поиск фильма по его названию, выводится все фильмы и echo $sql; возвращает только SELECT * FROM movies WHERE 1=1; без значения movie_title. В то время как поиск по году выпуска и рейтингу работает. В чем ошибка, не могу понять. Помогите пожалуйста! Что выводиться при поиске по movie_title:
Вот мой код:
<html>
<head>
<title>Search Results</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
<link href="stylesheets/film_style.css" rel="stylesheet" type="text/css" />
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<a class="navbar-brand" href="index.php"><?php require("../private/share/header.php") ?></a>
</div>
<ul class="nav navbar-nav">
<li><a href="index.php">Top</a></li>
<li><a href="movies.php">Movies</a></li>
<li class="login"><a href="../private/login.php">Login</a></li>
<li class="login"><a href="../private/add_admin.php">Signin</a></li>
<li class="login"><a href="../private/admin.php">Admin</a></li>
</ul>
</div>
</nav>
</head>
<body>
<div class="container" style="margin-top:30px">
<?php
$servername = "localhost";
$username = "webuser";
$password = "secret1234";
$dbname = "movies_db";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
else{
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$sql= "SELECT * FROM movies ";
$sql.=" WHERE 1=1 ";
if(isset($_POST['movie_title']) && strlen( $_POST['movie_title'])){
$sql.="AND movie_title='".$_POST['movie_title']."'";
}
if(isset($_POST['movie_rating']) && strlen( $_POST['movie_rating'])){
$sql.="AND movie_rating='".$_POST['movie_rating']."'";
}
if(isset($_POST['movie_release_date']) && strlen( $_POST['movie_release_date'])){
$sql.="AND movie_release_date LIKE '%".$_POST['movie_release_date']."%';";
}
}
echo $sql;
$res2 = mysqli_query($conn,$sql);
if (mysqli_num_rows($res2) > 0) {
//echo "we have some results";
//we will generate some dymaic sql
while($row = mysqli_fetch_assoc($res2)) {
echo "<div class='topic_info'>";
echo "<div class='topic_info_wrapper'>";
echo "<div class='topic_info_search>";
echo "<div class='title'>";
echo "<h1 class='title' itemprop='name'>Title: </h1>";
echo htmlspecialchars("{$row['movie_title']} ");
echo "</div>";
echo "<ul class='tag_wrapper'>";
echo "<ul class='search_tags'>";
echo "<li><strong>Runtime: </strong></li>";
echo htmlspecialchars("{$row['movie_runtime']} ");
echo "</ul>";
echo "</ul>";
echo "<ul class='tag_wrapper'>";
echo "<strong>Release Date: </strong>";
echo htmlspecialchars("{$row['movie_release_date']} ");
echo "</ul>";
echo "<ul class='tag_wrapper'>";
echo "<strong>Description: </strong>";
echo htmlspecialchars("{$row['movie_description']} ");
echo "</ul>";
echo "<ul class='tag_wrapper'>";
echo "<strong>Rating: </strong>";
echo htmlspecialchars("{$row['movie_rating']} ");
echo "</ul>";
echo "</div>";
echo "</div>";
echo "<br/>";
}
}
}
mysqli_close($conn);
?>
</div>
</body>
<footer>
<div class="footerStyle">
<?php require("../private/share/footer.php") ?>
</div>
</footer>
</html>
Нашла решение проблеммы. Переменная не передовалась из-за неправильного название пременной в самой форме поиска. Код поиска:
<?php
$servername = "localhost";
$username = "webuser";
$password = "secret1234";
$dbname = "movies_db";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
else{
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$sql= "SELECT * FROM movies ";
$sql.=" WHERE 1=1 ";
if(isset($_POST['movie_title']) && strlen( $_POST['movie_title'])){
$sql.="AND movie_title LIKE '%".$_POST['movie_title']."%';";
}
if(isset($_POST['movie_rating']) && strlen( $_POST['movie_rating'])){
$sql.="AND movie_rating='".$_POST['movie_rating']."'";
}
if(isset($_POST['movie_release_date']) && strlen( $_POST['movie_release_date'])){
$sql.="AND movie_release_date LIKE '%".$_POST['movie_release_date']."%';";
}
}
echo $sql;
$res2 = mysqli_query($conn,$sql);
if (mysqli_num_rows($res2) > 0) {
//echo "we have some results";
//we will generate some dymaic sql
while($row = mysqli_fetch_assoc($res2)) {
echo "<div class='topic_info'>";
echo "<div class='topic_info_wrapper'>";
echo "<div class='topic_info_search'>";
echo "<div class='title'>";
echo "<h1 class='title'><strong>Title: </strong></h1>";
echo htmlspecialchars("{$row['movie_title']} ");
echo "</div>";
echo "<ul class='tag_wrapper'>";
echo "<ul class='search_tags'>";
echo "<li><strong>Runtime: </strong></li>";
echo htmlspecialchars("{$row['movie_runtime']} ");
echo "</ul>";
echo "</ul>";
echo "<ul class='tag_wrapper'>";
echo "<strong>Release Date: </strong>";
echo htmlspecialchars("{$row['movie_release_date']} ");
echo "</ul>";
echo "<ul class='tag_wrapper'>";
echo "<strong>Description: </strong>";
echo htmlspecialchars("{$row['movie_description']} ");
echo "</ul>";
echo "<ul class='tag_wrapper'>";
echo "<strong>Rating: </strong>";
echo htmlspecialchars("{$row['movie_rating']} ");
echo "</ul>";
echo "</div>";
echo "</div>";
echo "</div>";
echo "<br/>";
}
}
}
mysqli_close($conn);
?>
Код формы:
<html>
<head>
<title>Detailed Search</title>
</head>
<body>
<div>
<form method="POST" action="search.php" class="admin_form">
<fieldset>
<legend>Search</legend>
<div class="container">
<label for='movie_title'>Title:</label><br />
<input type='text' id='movie_title' name='movie_title' size='45'><br />
</div>
<div class="container">
<label for="rating">Rating:</label><br />
<select name="movie_rating">
<option disabled selected value> -- select an option -- </option>
<option value='G'>G</option>
<option value='PG'>PG</option>
<option value='PG-13'>PG-13</option>
<option value='R'>R</option>
<option value='14A'>14A</option>
<option value='18A'>18A</option>
</select><br />
</div>
<div class="container">
<label for="release_date">Release Date</label><br />
<input type='text' id='movie_release_date' name='movie_release_date' size='45'><br />
</div>
<div class='container'>
<input type='submit' name='Submit' value='Submit' class="my_btn btn-outline-info" />
</div>
</fieldset>
</form>
</div>
</body>
</html>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пытаюсь совместить эффект параллакса и вот текст, но что-то не особо выходитВесь текст не влезает, а дальше страница не прокручивается
У меня есть html страница, в ходе работы с которой и исходя из того что выбирает юзер на ней появляются селекты, инпуты(оооочень много)