2013-09-25 10 views
1

Я работаю над настраиваемой CMS, чтобы попытаться изучить некоторые вещи на PHP. Я основываю свой опыт на некоторых учебниках, которые я вижу/читаю.UPDATE php function not working

Итак, у меня есть таблица table_hem, где сохраняются все данные. Затем я повторяю его по текстовым полям по всей странице, которая на данный момент является моим index.php. Все работает отлично, особенно если я вставляю данные из PHP MyAdmin.

Но теперь я создаю форму редактирования, и все больше не работает. Я все еще могу повторить все в текстовые поля, чтобы изменить текст, но когда я нажимаю кнопку «сохранить», мои переменные не обновляются в базе данных, несмотря на то, что я получаю сообщение об успешном завершении. Я не знаю, является ли проблема на странице редактирования или в синтаксическом коде ... Я не получаю никаких ошибок, даже когда я Firebugging ... Кто-нибудь может мне помочь?

Вот страница редактирования:

<?php 
require_once "../scripts/connect_to_mysql.php"; 
// Determine which page ID to use in our query below 

if (!$_GET['pid']) { 
    $pageid = '1'; 
} else { 
    $pageid = ereg_replace("[^0-9]", "", $_GET['pid']); // filter everything but numbers for security 
} 

// Query the body section for the proper page 
$sqlCommand = "SELECT text1, text2 FROM page_hem WHERE id='$pageid' LIMIT 1"; 
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error()); 
while ($row = mysqli_fetch_array($query)) { 
    $body1 = $row["text1"]; 
    $body2 = $row["text2"]; 
} 
mysqli_free_result($query); 
?> 
<!DOCTYPE html> 

<head> 
    <meta charset="UTF-8"> 

</head> 

<body> 

<div class="container"> 

<div class="home-page main"> 
    <section class="grid-wrap" > 
     <header class="grid col-full"> 
      <hr> 

     <form id="form" name="form" method="post" action="page_edit_parse.php"> 

     <div class="grid col-two-thirds mq2-col-full"> 
      <label>Titel:</label> 
      <textarea name="body1" id="body1" cols="3" rows="2"><?php echo $body1 ?></textarea> 
      <label>Meddelande</label> 
      <p><textarea name="body2" id="body2" cols="6" rows="10"><?php echo $body2 ?></textarea></p><br> 
     </div> 


     <input type="submit" name="button" id="button" value="Update!" /> 
    </form> 

    </section> 
</body> 
</html> 

А вот page_edit_parse.php

<?php 
// You may want to obtain refering site name that this post came from for security purposes here 
// exit the script if it is not from your site and script 
    $body1 = $_POST["text1"]; 
    $body2 = $_POST["text2"]; 

include_once "../scripts/connect_to_mysql.php"; 
// Add the updated info into the database table 
$query = mysqli_query($myConnection, "UPDATE page_hem SET text1='$body1', text2='$body2', lastmodified='now()' WHERE id='$pid'") or die (mysqli_error($myConnection)); 

echo 'Updated, yeah! <br /><br /><a href="kpanel.php">Go back!</a>'; 
exit(); 
?> 

P.S. - Возможно, в html могут возникнуть некоторые незначительные ошибки из-за того, что я отредактировал его, чтобы оно было короче.

Заранее спасибо!

+1

Я не вижу, где вы определяете '$ pid' –

+0

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

+0

1. 'if (! $ _ GET ['pid']) {' use isset. 2. 'ereg_replace' устарел. Я не уверен, почему вы не получаете уведомление. включить отчет об ошибках может быть? 3. в 'page_edit_parse.php', вы не определили' pid' – itachi

ответ

0

Вы ошибка в вашем запросе на выборке:

SELECT text1, text2, FROM page_hem WHERE id='$pageid' LIMIT 1 
       ^^^ here remove the semicolon 
+0

Извините, это была ошибка, точки с запятой не существует – viriato

+0

всегда копирует/вставляет ваш код. не __write__ это. – itachi

+0

Я сделал, но я удалил некоторые вещи, чтобы код не был бесконечным. F.I: У меня 10 "$ body" переменных ... – viriato