首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询解决方案

查询解决方案
EN

Stack Overflow用户
提问于 2020-01-26 19:00:10
回答 2查看 20关注 0票数 0

当我开始我的项目时,我对查询有一个问题。上面写着

分析错误:语法错误,C中意外的'$sql‘(T_VARIABLE):\User\ahmed\Documents\zadacaveb\调用第34行的Center\Dateof_seminars\forma.php

当我按下按钮Dodaj (恩格尔。加)。我的查询没有问题,所以如果您看到我的查询中哪里有错误,请告诉我。我将展示我的forma.php代码,这是一个问题,以及来自文件index.php和delete.php的代码。这两个文档工作正常,但问题在forma.php中。

index.php

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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');

?>
EN

回答 2

Stack Overflow用户

发布于 2020-01-26 19:06:44

您在一行中遗漏了一个分号,即:

代码语言:javascript
复制
$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
EN

Stack Overflow用户

发布于 2020-01-26 19:08:10

在上面提到的第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)";

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59921689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档