У вас есть ошибка в вашем синтаксисе SQL;- и неопределенная ошибка переменной - возможно, подключена - PullRequest
0 голосов
/ 26 мая 2018

Я довольно новичок в программировании на php и SQL, поэтому у меня, вероятно, будет много вопросов.Но, как говорится в заголовке, я получаю эту ошибку ...

В вашем синтаксисе SQL есть ошибка;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с '' в строке 1

. Я не уверен, к чему это относится.Я просмотрел код столько, сколько смог, но не могу найти синтаксическую ошибку.Может быть, это то, что я просто еще не знаю.

<?php 
// including the database connection file
include_once("config.php");

if(isset($_POST['update']) && isset($_GET['site']))
{    
$sitenumber = $_POST['sitenumber'];
$videolink = $_POST['videolink'];
$daynight = $_POST['daynight'];
$maxtents = $_POST['maxtents'];
$maxpersons = $_POST['maxpersons'];
$geography = $_POST['geography'];
$view = $_POST['view'];
$forestcover = $_POST['forestcover'];
$waterfront = $_POST['waterfront'];
$firepit = $_POST['firepit'];
$description = $_POST['description'];
$reslink = $_POST['reslink'];   

// checking empty fields
if(empty($sitenumber) || empty($videolink) || empty($daynight) || 
empty($maxtents) || empty($maxpersons) || empty($geography) || 
    empty($view) || empty($forestcover) || empty($waterfront) || 
empty($firepit) || empty($description) || empty($reslink)) {                
    if(empty($sitenumber)) {
        echo "<font color='red'>Site Number field is empty.</font><br/>";
    }

    if(empty($videolink)) {
        echo "<font color='red'>YouTube Link field is empty.</font><br/>";
    }

    if(empty($daynight)) {
        echo "<font color='red'>Day or overnight field is empty.</font> 
<br/>";
    }        

    if(empty($maxtents)) {
        echo "<font color='red'>Maximum Tents field is empty.</font><br/>";
    }

    if(empty($maxpersons)) {
        echo "<font color='red'>Maximum Persons field is empty.</font> 
 <br/>";
    }        

    if(empty($geography)) {
        echo "<font color='red'>Geography field is empty.</font><br/>";
    }

    if(empty($view)) {
        echo "<font color='red'>View field is empty.</font><br/>";
    }        

    if(empty($forestcover)) {
        echo "<font color='red'>Forest Cover field is empty.</font><br/>";
    }

    if(empty($waterfront)) {
        echo "<font color='red'>Waterfront Access field is empty.</font> 
 <br/>";
    }  

    if(empty($firepit)) {
        echo "<font color='red'>Firepit field is empty.</font><br/>";
    }        

    if(empty($description)) {
        echo "<font color='red'>Description field is empty.</font><br/>";
    }

    if(empty($reslink)) {
        echo "<font color='red'>Reservation Link Access field is empty. 
 </font><br/>";
    }       
} else {    
    //updating the table
    $result = mysqli_query($mysqli, "UPDATE sites SET 
 sitenumber='$sitenumber',videolink='$videolink',daynight='$daynight',
     maxtents='$maxtents',maxpersons='$maxpersons',geography='$geography', 
     view='$view',forestcover='$forestcover',waterfront='$waterfront', 
     firepit='$firepit',description='$description',reslink='$reslink' WHERE 
 sitenumber=$sitenumber");

    //redirectig to the display page. In our case, it is index.php
    //header("Location: index.php");
}
}
            echo mysqli_error($mysqli);
 ?>
<?php
//getting id from url
$sitenumber = $_GET['site'];

//selecting data associated with this particular id
$result = mysqli_query($mysqli, "SELECT * FROM sites WHERE 
sitenumber=$sitenumber");

while($res = mysqli_fetch_array($result))
{
$sitenumber = $res['sitenumber'];
$videolink = $res['videolink'];
$daynight = $res['daynight'];
$maxtents = $res['maxtents'];
$maxpersons = $res['maxpersons'];
$geography = $res['geography'];
$view = $res['view'];
$forestcover = $res['forestcover'];
$waterfront = $res['waterfront'];
$firepit = $res['firepit'];
$description = $res['description'];
$reslink = $res['reslink'];
}
            echo mysqli_error($mysqli);
?>
<html>
<head>    
<title>Edit Data</title>
</head>

<body>
<a href="index.php">Home</a>
<br/><br/>

<form name="form1" method="post" action="edit.php">
    <table border="0">
    <tr> 
            <td>Site Number</td>
            <td><input type="number" name="sitenumber" value="<?php echo 
$sitenumber;?>"></td>
        </tr>
        <tr> 
            <td>YouTube Link</td>
            <td><input type="url" name="videolink" value="<?php echo 
$videolink;?>"></td>
        </tr>
        <tr> 
            <td>Day or Overnight</td>
            <td><select name="daynight" value="<?php echo $daynight;?>">
            <option value="Day">Day</option>
            <option value="Overnight">Overnight</option></td>

        </tr>
                    <tr> 
            <td>Maximum Tents</td>
            <td><input type="number" name="maxtents" value="<?php echo 
$maxtents;?>"></td>
        </tr>
                    <tr> 
            <td>Maximum Persons</td>
            <td><input type="number" name="maxpersons" value="<?php echo 
$maxpersons;?>"></td>
        </tr>
                    <tr> 
            <td>Geography</td>
            <td><input type="text" name="geography" value="<?php echo 
$geography;?>"></td>
        </tr>
                    <tr> 
            <td>View</td>
            <td><input type="text" name="view" value="<?php echo $view;?>"> 
 </td>
        </tr>
                    <tr> 
            <td>Forest Cover</td>
            <td><input type="text" name="forestcover" value="<?php echo 
  $forestcover;?>"></td>
        </tr
                    <tr> 
            <td>Waterfront Access</td>
            <td><select name="waterfront" value="<?php echo $waterfront;?>">
            <option value="Yes">Yes</option>
            <option value="No">No</option></td>
        </tr>
                    <tr> 
            <td>Firepit Availability</td>
            <td><select name="firepit" value="<?php echo $firepit;?>">
            <option value="Yes">Yes</option>
            <option value="No">No</option></td>
        </tr>
                    <tr> 
            <td>Site Description</td>
            <td><input type="text" name="description" value="<?php echo 
$description;?>"></td>
        </tr>
                    <tr> 
            <td>Reservation Link</td>
           <td><input type="url" name="reslink" value="<?php echo $reslink;? 
>"></td>
        </tr>
            <td><input type="hidden" name="site" value="<?php echo 
$_GET['site'];?>"></td>
            <td><input type="submit" name="update" value="Update"></td>
        </tr>
    </table>
</form>
</body>
</html>

Извините за длинный код здесь, но я чувствовал, что было немного необходимо увидеть полный контекст здесь.

Также есть разрыв где-то с переменными.Переменная sitenumber не обновляется, и каждая переменная после этого получает эту ошибку ...

Примечание: неопределенная переменная: videolink в C: \ wamp \ www \ code \ edit.php в строке 124

Итак, это как бы двойная проблема.Помощь будет принята с благодарностью.

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Ваш SQL-запрос кажется хорошим, но проблема может быть связана со значениями ваших переменных.

Поскольку ваш запрос не экранирован должным образом (и он должен быть для большей безопасности ),Я бы посоветовал вам отладить ваш запрос перед выполнением.Таким образом, вы сможете понять, что будет выполняться в вашей базе данных.

Если вы не используете xdebug , вы можете просто поместить свой запрос в переменную и затем вывести дамписпользуя var_dump.

Затем откройте phpmyadmin (по крайней мере, я полагаю, что у вас есть к нему доступ) и вставьте значение вашей переменной (которая является вашим запросом) в редактор SQL.Затем выполните его, и у вас должно появиться сообщение, объясняющее, где находится ошибка.Это поможет вам понять, почему важно использовать подготовленное утверждение, увидев, какая переменная имеет неправильное значение (например, оно включает ' или ").

Надеюсь, это поможет

0 голосов
/ 26 мая 2018

Исправьте это:

$result = mysqli_query($mysqli, "SELECT * FROM sites WHERE sitenumber='".$sitenumber."' ");

И это:

$result = mysqli_query($mysqli, "UPDATE sites SET 
sitenumber='$sitenumber',videolink='$videolink',daynight='$daynight',
maxtents='$maxtents',maxpersons='$maxpersons',geography='$geography', 
view='$view',forestcover='$forestcover',waterfront='$waterfront', 
firepit='$firepit',description='$description',reslink='$reslink' WHERE 
sitenumber='$sitenumber'");
...