查询解决方案

时间:2020-01-26 19:00:10

标签: php

启动项目时查询出现问题。就是

解析错误:语法错误,出现意外的'$ sql'(T_VARIABLE) C:\ Users \ ahmed \ Documents \ zadacaveb \ Call 第34行的Center \ Dateof_seminars \ forma.php

当我按下按钮Dodaj(英语,添加)时。我的查询没有出现问题,因此,如果您发现我的查询中有错误,请告诉我。我将显示问题的forma.php代码,以及文件index.php和delete.php中的代码。这两个文档工作正常,但问题出在forma.php

index.php

<?php

require('../util/session.php');
require('../util/db.php');
require('../Frontend/header.php');
require('../Frontend/footer.php');

if(!isset($_SESSION['user'])) {
    header('Location: /Call Center/Login/index.php');
}

$stmt = $db->query('SELECT * FROM dateof_seminars');
$rows = $stmt->fetchAll();

echo $header;

?>


<br/>
<br/>

<div class="container">
    <a href="/Call Center/Dateof_seminars/forma.php" class="btn btn-primary mt-3 mb-3 float-left">Dodaj</a>
    <br/>
    <br/>
    <table class="table">
      <thead>
        <tr>
          <th scope="col">#</th>
          <th scope="col">Počinje datuma</th>
          <th scope="col">Završava datumom</th>
          <th scope="col">Instruktor ID</th>
          <th scope="col">Seminar ID</th>
          <th scope="col">Klijent ID</th>
        </tr>
      </thead>
      <tbody>
        <?php foreach($rows as $row) { ?>
      <tr>
          <th scope="row"><?php echo $row['id']; ?></th>
          <td><?php echo $row['date_from']; ?></td>
          <td><?php echo $row['date_to']; ?></td>
          <td><?php echo $row['instructor_id']; ?></td>
          <td><?php echo $row['seminars_id']; ?></td>
          <td><?php echo $row['clients_id']; ?></td>
          <td>

          <a class="btn btn-primary" href="/Call Center/Dateof_seminars/forma.php?id=<?php echo $row['id']; ?>">Edit</a>

          <a class="btn btn-danger" href="/Call Center/Dateof_seminars/delete.php?id=<?php echo $row['id']; ?>">Delete</a>

        </tr>
        <?php } ?>
      </tbody>
    </table>
    </center>
</div>

<?php
echo $footer;
?> 

forma.php

<?php

require('../util/db.php');
require('../Frontend/header.php');
require('../Frontend/footer.php');

echo $header;

$isEditing = isset($_GET['id']);

if(isset($_POST['date_from']) && isset($_POST['date_to']) && isset($_POST['instructor_id']) && isset($_POST['seminars_id']) && isset($_POST['clients_id']) && is_numeric($_POST['id'])) {

  $dateFrom = $_POST['date_from'];
  $dateTo = $_POST['date_to'];
  $instructorId = $_POST['instructor_id'];
  $seminarsId = $_POST['seminars_id'];
  $clientsId = $_POST['clients_id'];
  $seminarDateId = $_POST['id']; 

  $sql = 'UPDATE dateof_seminars SET date_from = :date_from, date_to = :date_to, instrucrot_id = :instructor_id, seminars_id = :seminars_id, clients = :clients_id WHERE id = :id';
  $stmt = $db->prepare($sql);
  $stmt->execute(['companie_name' => $dateFrom, 'date_to' => $dateTo, 'instructor_id' => $instructorId, 'seminars_id' => $seminarsId, 'clients_id' => $clientsId, 'id' => $seminarDateId]);

  header('Location: /Call Center/Dateof_seminars/index.php');

} else if(isset($_POST['date_from'] && isset($POST['date_to']) && isset($_POST['instructor_id']) && isset($_POST['seminars_id']) && isset($_POST['clients_id']))) {

  $dateFrom = $_POST['date_from'];
  $dateTo = $_POST['date_to'];
  $instructorId = $_POST['instructor_id'];
  $seminarsId = $_POST['seminars_id'];
  $clientsId = $_POST['clients_id']

  $sql = 'INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)';
  $stmt = $db->prepare($sql);
  $stmt->execute(['date_from' => $dateFrom, 'date_to' => $dateTo, 'instructor_id' => $instructorId, 'seminars_id' => $seminarsId, 'clients_id' => $clientsId]);

  header('Location: /Call Center/Dateof_seminars/index.php');
}

if($isEditing) {
  $companieId = $_GET['id'];
  $sql = 'SELECT * FROM dateof_seminars WHERE id = :id';
  $stmt = $db->prepare($sql);
  $stmt->execute(['id' => $seminarDateId]);
  $seminarDate = $stmt->fetch();
}

?>

<br/>
<br/>

<div class="container">
  <div class="row">
    <div class="col-sm-6 mx-auto mt-5">
      <form action="/Call Center/Dateof_seminars/forma.php" method="POST">
        <div class="form-group">
          <label for="name">Dodajte datum seminara</label>
          <br>
          <input type="hidden" name="id" value="<?= @$dateod_seminars['id'] ?>" />

          <label for="name">Datum početka seminara</label>
          <input name="date_from" type="text" class="form-control" value="<?= @$dateof_seminars['date_from'] ?>" id="name" placeholder="početak seminara...">
          <label for="name">Datum završetka seminara</label>
          <input name="date_to" type="text" class="form-control" value="<?= @$dateof_seminars['date_to'] ?>" id="name" placeholder="kraj seminara...">
          <label for="name">Kod instruktora</label>
          <input name="instructor_id" type="text" class="form-control" value="<?= @$dateof_seminars['instructor_id'] ?>" id="name" placeholder="instruktor...">
          <label for="name">Kod seminara</label>
          <input name="seminars_id" type="text" class="form-control" value="<?= @$dateof_seminars['seminars_id'] ?>" id="name" placeholder="seminar...">
          <label for="name">Kod klijenta</label>
          <input name="clients_id" type="text" class="form-control" value="<?= @$dateof_seminars['clients_id'] ?>" id="name" placeholder="tvrtka...">
          <label for="name">Šifra kompanije</label>
        </div>
        <button type="submit" class="btn btn-primary">Dodaj</button> 
      </form>
      <break/>
      <br>
      <br>
    </div>
  </div>
</div>

<?php
echo $footer;
?>

delete.php

<?php

require('../util/db.php');

$seminarDateId = $_GET['id'];
$sql = 'DELETE FROM dateof_seminars WHERE id = :id';
$stmt = $db->prepare($sql);
$stmt->execute(['id' => $seminarDateId]);

header('Location: /Call Center/Dateof_seminars/index.php');

?>

2 个答案:

答案 0 :(得分:1)

您在一行中缺少分号:

$dateFrom = $_POST['date_from'];
$dateTo = $_POST['date_to'];
$instructorId = $_POST['instructor_id'];
$seminarsId = $_POST['seminars_id'];
$clientsId = $_POST['clients_id']  <----

$sql = 'INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)';
$stmt = $db->prepare($sql);

所以下一行的$sql是意外的,编译器也不知道该怎么做。

答案 1 :(得分:0)

在上述第34行(此行:$sql = 'INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)';

您必须用这样的双引号替换单引号

$sql = "INSERT INTO dateof_seminars (date_from, date_to, instructor_id, seminars_id, clients_id) VALUES (:date_from, :date_to, :instructor_id, :seminars_id, :clients_id)";

据我所知,您不能在单引号内使用变量。