2014-11-16 3 views
-1

Я пытался создать панель администратора. Для настроек я хотел запустить все сценарии в одном файле, чтобы он не делал беспорядок в папке. Однако, когда я пытаюсь добавить/отредактировать строку, это не позволит мне.Не удается отправить в базу данных

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

Вот мой код:

<? session_start(); 
include '../database.php'; 
if (!isset($_SESSION['logged'])) { 
header("Location: login.php"); 
} 
if ($_GET['action'] == 'add') { 
if (!isset($_POST['submit'])) { 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="main.css"> 
     <link rel="stylesheet" type="text/css" href="../css/menu.css"> 
     <link rel="stylesheet" type="text/css" href="../css/atasoy.css"> 
     <title>Yönetim Paneli - Berru Perde</title> 
     <meta charset="UTF-8"> 
    </head> 
    <body> 
     <h1>Add Slide</h1> 
     <br> 
     <br> 
     <form action="<?=$_SERVER['PHP_SELF']; ?>" method="post" align="center"> 
     <label for="name">Name</label><br><input type="text" name="name"><br> 
     <label for="link">Image Link (<a href="javascript:void(0);" onclick="window.open('upload1.php', 'Image Upload', 'width=400, height=200');">Upload Image</a>)</label><br> 
     <input name="link"><br><input type="submit" name="submit" value="Add Image"> 
     </form> 
    </body> 
</html> 
<? 
} else { 
    $name = $_POST['name']; 
    $link = $_POST['link']; 

    $query = $mysqli->query("INSERT INTO `carousel` VALUES ('', '$name', '$link')"); 

    header("Location: carousel.php"); 
} 
} elseif ($_GET['action'] == 'edit') { 
    $id = $_GET['id']; 
    $result = $mysqli->query("SELECT * FROM `carousel` WHERE `id` = '$id'"); 
    $fetch = $result->fetch_array(); 
    if (!isset($_POST['submit'])) { 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="main.css"> 
     <link rel="stylesheet" type="text/css" href="../css/menu.css"> 
     <link rel="stylesheet" type="text/css" href="../css/atasoy.css"> 
     <title>Admin Panel</title> 
     <meta charset="UTF-8"> 
    </head> 
    <body> 
     <h1>Edit Slide</h1> 
     <br> 
     <br> 
     <form action="<?=$_SERVER['PHP_SELF']; ?>" method="post" align="center"> 
     <label for="name">Name</label><br><input type="text" name="name" value="<?=$fetch['name']; ?>"><br> 
     <label for="link">Image Link(<a href="javascript:void(0);" onclick="window.open('upload1.php', 'Image Upload', 'width=400, height=200');">Upload Image</a>)</label><br> 
     <input name="link" value="<?=$fetch['link']; ?>"><br><input type="submit" name="submit" value="Save"> 
     </form> 
    </body> 
</html> 
<? 
} else { 
    $id = $_GET['id']; 
    $name = $_POST['name']; 
    $link = $_POST['link']; 

    $mysqli->query("UPDATE `carousel` SET `name`='$name', `link`='$link' WHERE `id`='$id'"); 
    header("Location: carousel.php"); 
} # Delete script not done yet 
} else { 
?> 
<!DOCTYPE html> 
<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="main.css"> 
     <link rel="stylesheet" type="text/css" href="../css/menu.css"> 
     <link rel="stylesheet" type="text/css" href="../css/atasoy.css"> 
     <title>Admin Panel</title> 
     <meta charset="UTF-8"> 
    </head> 
    <body> 
     <h1>Slideshow Editor</h1> 
     <br> 
     <br> 
     <ul class="addthings"><a href="carousel.php?action=add"><li><img src="http://www.widgetop.com/images/AddWidgets.png">Yeni Carousel Slaytı Ekle</li></a></ul> 
     <table class="listing" align="center"> 
      <tr> 
       <td class="darkblue">ID</td> 
       <td class="darkblue">Name</td> 
       <td class="darkblue">Preview</td> 
       <td class="darkblue">Edit</td> 
       <td class="darkblue">Delete</td> 
      </tr> 
      <? 
      $query = $mysqli->query("SELECT * FROM `carousel` ORDER BY `id`"); 
      while ($fetch = $query->fetch_array()) { 
      $i = $fetch['id']; 
      if ($i % 2 != 0) { 
      echo "<tr class='lightblue'><td>" . $fetch['id'] . "</td>"; 
      echo "<td>" . $fetch['name'] . "</td>"; 
      echo "<td><img src='" . $fetch['link'] . "' width='117.5' height='67.5'></td>"; 
      echo "<td><a href='carousel.php?action=edit&id=" . $fetch['id'] . "'><img src='http://docs.gimp.org/en/images/dialogs/stock-edit-16.png'></a></td>"; 
      echo "<td><a href='carousel.php?action=delete&id=" . $fetch['id'] . "'><img src='https://cdn2.iconfinder.com/data/icons/aspneticons_v1.0_Nov2006/delete_16x16.gif'></a></td></tr>"; 
      } else { 
      echo "<tr class='white'><td>" . $fetch['id'] . "</td>"; 
      echo "<td>" . $fetch['name'] . "</td>"; 
      echo "<td><img src='" . $fetch['link'] . "' width='117.5' height='67.5'></td>"; 
      echo "<td><a href='carousel.php?action=edit&id=" . $fetch['id'] . "'><img src='http://docs.gimp.org/en/images/dialogs/stock-edit-16.png'></a></td>"; 
      echo "<td><a href='carousel.php?action=delete&id=" . $fetch['id'] . "'><img src='https://cdn2.iconfinder.com/data/icons/aspneticons_v1.0_Nov2006/delete_16x16.gif'></a></td></tr>"; 
      } 
      } 
      ?> 
     </table> 
    </body> 
</html> 
<? } ?> 

Что я делаю неправильно?

Любая помощь будет оценена по достоинству.

+0

Итак, вы говорите запрос '$ mysqli-> (« SELECT * FROM carousel WHERE id = '$ id' ");' возвращает результат? Если это так, то если условие else должно начинаться. – symlink

ответ

1

Ваши проблемы, безусловно, связаны с тем, что вы не хотели отделять свои файлы. Теперь у вас есть беспорядок, объединенный в один файл, который сам по себе играет роль модели, представления и контроллера.

Если вы не видите никаких изменений в базе данных, но инструкция INSERT была выполнена, тогда вы увидите ошибку. Что имеется в $mysqli->error? Активация ошибок PHP, помещая это в самого начало вашего скрипта:

ini_set('display_errors', 1); 
error_reporting(E_ALL); 

Я вижу, что ваш ВСТАВИТЬ раздел выполняется только если action == add. Напишите $_REQUEST['action'] вместо $_GET и поместите <input type="hidden" name="action" value="add"> в ваш <form>, потому что вы используете форму POST, и я не уверен, как выглядит ваш URL. Отбросьте action="<?=$_SERVER['PHP_SELF']; ?>", это добавит бесполезную сложность вашему скрипту (действие всегда указывает на текущий URL-адрес, если он не определен).

Надеюсь, я дал вам достаточно материала, чтобы помочь вам отладить ваш код; было бы довольно сложно сделать больше, не имея доступа к базе данных. Происхождение вашей ошибки может быть очень много.

+0

Мой URL-адрес: www.example.com/admin/carousel.php?action=add или carousel.php? Action = edit & id = 1 и наоборот. Я могу добраться до базы данных (слайд-шоу перечислены правильно), я просто не могу писать данные. Я знаю, что запрос выполняется, потому что он выполняет 'header (" Location: carousel.php ");' и перенаправляет меня на главную страницу. Теперь я попытаюсь сообщить об ошибке и поместить результаты в вопрос. Благодарю. – mission712

+0

Спасибо за помощь. Это было плохо. По-видимому, ' 'испортил код. Теперь он отлично работает! Еще раз спасибо! – mission712

Смежные вопросы