Есть код, который я хотел использовать для отображения HTML-таблицы с некоторым PHP в ней. Обновлено: Извините, я думаю, проблема в том, что я не показал вам весь код. Может быть, это что-то меняет.
<!doctype html>
<html>
<head>
<title>Search</title>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet" integrity = "sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin = "anonymous">
<link rel = "stylesheet" href = "styles.css">
</head>
<body>
<?php
include("config.php");
if (isset($_POST['input'])){
$input = $_POST['input'];
$query = "SELECT * FROM videos WHERE location LIKE '{$input}%'
OR FileName LIKE '{$input}%' OR ImageSize LIKE '{$input}%' OR MediaDuration LIKE '{$input}%'
OR VideoFrameRate LIKE '{$input}%' OR CreateDate LIKE '{$input}%' OR author LIKE '{$input}%' OR tags LIKE '{$input}%' OR genre LIKE '{$input}%' OR rating LIKE '{$input}%'";
$result = mysqli_query($con,$query);
$fetchVideos = mysqli_query($con, "SELECT * FROM videos WHERE location LIKE '{$input}%' OR FileName LIKE '{$input}%' OR ImageSize LIKE '{$input}%' OR MediaDuration LIKE '{$input}%'
OR VideoFrameRate LIKE '{$input}%' OR CreateDate LIKE '{$input}%' OR author LIKE '{$input}%' OR tags LIKE '{$input}%' OR genre LIKE '{$input}%' OR rating LIKE '{$input}%'");
while($row = mysqli_fetch_assoc($fetchVideos)){
echo '<?php
$select = "select * from videos";
$result=mysqli_query($con,$select);
?>
<table class = "table table-bordered" style = "margin-top: 50px;">
<tr>
<th> Video </th>
<th> Názov </th>
<th> Autor </th>
<th> Tagy </th>
<th> Žáner </th>
<th> Hodnotenie </th>
<th> Rozlíšenie videa </th>
<th> Počet Snímkov </th>
<th> Dĺžka videa</th>s
<th> Dátum Vytvorenia </th>
</tr>
<?php foreach($result as $rows) { ?>
<tr>
<td><video src = "<?php echo $location; ?>" controls width='320px' height='320px' ></video></td>
<td><?php echo $rows['FileName']; ?></td>
<td><?php echo $rows['author']; ?></td>
<td><?php echo $rows['tags']; ?></td>
<td><?php echo $rows['genre']; ?></td>
<td><?php echo $rows['rating']; ?></td>
<td><?php echo $rows['ImageSize']; ?></td>
<td><?php echo $rows['VideoFrameRate']; ?></td>
<td><?php echo $rows['MediaDuration']; ?></td>
<td><?php echo $rows['CreateDate']; ?></td>
</tr>
<?php } ?>
</table>';
</body>
</html>
У меня проблемы с той частью, где я пытаюсь использовать PHP в функции эха. Я не знаю, где проблема.
<tr>
<td><video src='".$location."' controls width='320px' height='320px' ></video></td>
<td><?php echo $rows['FileName']; ?></td>
<td><?php echo $rows['author']; ?></td>
<td><?php echo $rows['tags']; ?></td>
<td><?php echo $rows['genre']; ?></td>
<td><?php echo $rows['rating']; ?></td>
<td><?php echo $rows['ImageSize']; ?></td>
<td><?php echo $rows['VideoFrameRate']; ?></td>
<td><?php echo $rows['MediaDuration']; ?></td>
<td><?php echo $rows['CreateDate']; ?></td>
</tr>






Это должно работать:
<?php
$select = "select * from videos";
$result=mysqli_query($con,$select);
?>
<table class = "table table-bordered" style = "margin-top: 50px;">
<tr>
<th> Video </th>
<th> Názov </th>
<th> Autor </th>
<th> Tagy </th>
<th> Žáner </th>
<th> Hodnotenie </th>
<th> Rozlíšenie videa </th>
<th> Počet Snímkov </th>
<th> Dĺžka videa</th>
<th> Dátum Vytvorenia </th>
</tr>
<?php foreach($result as $rows) { ?>
<tr>
<td><video src = "<?php echo $location; ?>" controls width='320px' height='320px' ></video></td>
<td><?php echo $rows['FileName']; ?></td>
<td><?php echo $rows['author']; ?></td>
<td><?php echo $rows['tags']; ?></td>
<td><?php echo $rows['genre']; ?></td>
<td><?php echo $rows['rating']; ?></td>
<td><?php echo $rows['ImageSize']; ?></td>
<td><?php echo $rows['VideoFrameRate']; ?></td>
<td><?php echo $rows['MediaDuration']; ?></td>
<td><?php echo $rows['CreateDate']; ?></td>
</tr>
<?php } ?>
</table>
Но я бы посоветовал вам научиться смешивать html с php.
Сначала попробуйте вывести данные только с помощью php (все внутри одного <?php … ?>) и не используя HTML.
Затем на следующем шаге вы можете попробовать смешать html. Идите медленно и шаг за шагом. Таким образом вы заметите, когда допустили синтаксическую ошибку.
Редактировать:
Попробуй это:
<!doctype html>
<html>
<head>
<title>Search</title>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.6.3/jquery.min.js"></script>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet" integrity = "sha384-KK94CHFLLe+nY2dmCWGMq91rCGa5gtU4mk92HdvYe+M/SXH301p5ILy+dN9+nJOZ" crossorigin = "anonymous">
<link rel = "stylesheet" href = "styles.css">
</head>
<body>
<?php
include("config.php");
if (isset($_POST['input'])) {
$input = $_POST['input'];
$select = "SELECT * from VIDEOS";
$result=mysqli_query($con,$select);
?>
<table class = "table table-bordered" style = "margin-top: 50px;">
<tr>
<th> Video </th>
<th> Názov </th>
<th> Autor </th>
<th> Tagy </th>
<th> Žáner </th>
<th> Hodnotenie </th>
<th> Rozlíšenie videa </th>
<th> Počet Snímkov </th>
<th> Dĺžka videa</th>s
<th> Dátum Vytvorenia </th>
</tr>
<?php while($row = $result->mysqli_fetch_assoc()) { ?>
<tr>
<td><video src = "<?php echo $location; ?>" controls width = "320px" height = "320px" ></video></td>
<td><?php echo $row['FileName']; ?></td>
<td><?php echo $row['author']; ?></td>
<td><?php echo $row['tags']; ?></td>
<td><?php echo $row['genre']; ?></td>
<td><?php echo $row['rating']; ?></td>
<td><?php echo $row['ImageSize']; ?></td>
<td><?php echo $row['VideoFrameRate']; ?></td>
<td><?php echo $row['MediaDuration']; ?></td>
<td><?php echo $row['CreateDate']; ?></td>
</tr>
<?php } // end of while loop ?>
</table>';
<?php } // end of if-clause ?>
</body>
</html>
Вы также должны использовать подготовленные операторы в своих SQL-запросах, иначе ваша программа уязвима для sql-инъекций.
@Petco Не окружайте код, который я опубликовал, эхом «…»; . Также прочитайте это
Все еще не работает: / Я обновил изображение синтаксической ошибки выше.
У вас все еще есть все, окруженное оператором эха. Удалите echo ' в первой строке и удалите ': в последней строке.
@Petco Кроме того, вы должны обновить свой исходный вопрос с изменениями, которые вы вносите, чтобы все могли их увидеть. В противном случае этот вопрос будет снят.
Привет, я разместил весь свой код, я думаю, вот в чем проблема.
@Petco Смотрите правку в моем ответе.
Это потому, что вы повторяете $ как комментарий, а не как переменную. Вы должны использовать обратную кавычку (`).
echo `$ >your codes here< $`;
echo `<table class = "table table-bordered" style = "margin-top: 50px;">
<tr>
<?php
$select = "select * from videos";
$result=mysqli_query($con,$select);
?>
<!--<th colspan = "4"><h2>Student Record</h2></th> -->
</tr>
<th> Video </th>
<th> Názov </th>
<th> Autor </th>
<th> Tagy </th>
<th> Žáner </th>
<th> Hodnotenie </th>
<th> Rozlíšenie videa </th>
<th> Počet Snímkov </th>
<th> Dĺžka videa</th>
<th> Dátum Vytvorenia </th>
</tr>
<tr>
<td><video src='".$location."' controls width='320px' height='320px' ></video></td>
<td><?php echo $rows['FileName']; ?></td>
<td><?php echo $rows['author']; ?></td>
<td><?php echo $rows['tags']; ?></td>
<td><?php echo $rows['genre']; ?></td>
<td><?php echo $rows['rating']; ?></td>
<td><?php echo $rows['ImageSize']; ?></td>
<td><?php echo $rows['VideoFrameRate']; ?></td>
<td><?php echo $rows['MediaDuration']; ?></td>
<td><?php echo $rows['CreateDate']; ?></td>
</tr>
<?php
}
?>
</table> `;Привет @Newbee. Спасибо за ответ. Я добавил изображение вашего кода, вызвавшего синтаксическую ошибку.
Здравствуйте, спасибо за ответ. Я отредактировал ваш пост с изображением метода синтаксиса.