Ошибка синтаксиса PHP, повторяющая таблицу HTML с PHP в ней

Есть код, который я хотел использовать для отображения 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 в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
73
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это должно работать:

<?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 25.04.2023 16:08

@Petco Не окружайте код, который я опубликовал, эхом «…»; . Также прочитайте это

user2740514 25.04.2023 16:48

Все еще не работает: / Я обновил изображение синтаксической ошибки выше.

Petco 25.04.2023 18:20

У вас все еще есть все, окруженное оператором эха. Удалите echo ' в первой строке и удалите ': в последней строке.

user2740514 25.04.2023 20:12

@Petco Кроме того, вы должны обновить свой исходный вопрос с изменениями, которые вы вносите, чтобы все могли их увидеть. В противном случае этот вопрос будет снят.

user2740514 25.04.2023 20:28

Привет, я разместил весь свой код, я думаю, вот в чем проблема.

Petco 25.04.2023 21:04

@Petco Смотрите правку в моем ответе.

user2740514 25.04.2023 21:34

Это потому, что вы повторяете $ как комментарий, а не как переменную. Вы должны использовать обратную кавычку (`).

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. Спасибо за ответ. Я добавил изображение вашего кода, вызвавшего синтаксическую ошибку.

Petco 25.04.2023 16:04

Другие вопросы по теме