2017-11-08 23 views
0

以下私はデータベースのエントリを更新するはずのコードを持っています。送信ボタンをクリックすると、フォームは消えますが、何も置き換えられず、重要なことにデータベースを更新しません。私はエラーがどこにあるのか分かりませんし、どんな助けにも大いに感謝しています。PHPは送信ボタンをクリックして空白の画面を表示します

The update page before submitting

The update page after submitting

<?php 
define('TITLE', 'Quotes Entry!'); 
// Include the header: 
include('header.php'); 
include('mysqli_connect.php'); 
// Leave the PHP section to display lots of HTML: 
?> 
<?php // 

mysqli_set_charset($dbc, 'utf8'); 

if (isset($_GET['id']) && is_numeric($_GET['id'])) { // Display the entry in a form: 
    // Define the query: 
    $query = "SELECT title, entry FROM Salinger WHERE entry_id={$_GET['id']}"; 
    if ($r = mysqli_query($dbc, $query)) { // Run the query. 

     $row = mysqli_fetch_array($r); // Retrieve the information. 

     //make the form 
     print '<form action = "edit_entry.php" method = "post"> 
       <p> Entry Titles <input type= "text" name = "title" size = "40" maxsize = "100" value = "' . htmlentities($row['title']) . '" /></p> 
       <p>Entry Text <textarea name = "entry" cols = "40" rows = "5">'. htmlentities($row['entry']).'</textarea></p> 
       <input type = "hidden" name = "id" value = "'.$_GET['id'] .'" /> 
       <input type = "submit" name = "submit" value = "Update This Entry!" /> 
       </form>'; 
    } else { // Couldn't get the information. 
     print '<p style="color: red;">Could not retrieve the blog entry because:<br />' . mysqli_error($dbc) . '.</p><p>The query being run was: ' . $query . '</p>'; 
    } 

} elseif (isset($_POST['id']) && is_numeric($_POST['id'])) { // Handle the form. 
    $problem = "false"; 
    if(!empty($_POST['title']) && !empty($_POST['entry'])){ 
     $title = mysqli_real_escape_string($dbc, trim(strip_tags($_POST['title']))); 
     $entry = mysqli_real_escape_string($dbc, trim(strip_tags($_POST['entry']))); 
    } else{ 
     print '<p style="color: red;">Could not retrieve the blog entry because:<br />' . mysqli_error($dbc) . '.</p><p>The query being run was: ' . $query . '</p>'; 
     $problem = true; 
    } 
    if(!problem){ 
     $query = "UPDATE Salinger SET title = '$title', entry = '$entry' WHERE entry_id = {$_POST['id']}"; 
     $r = mysqli_query($dbc, $query); //execute the query 

     if(mysqli_affected_rows($dbc) == 1){ 
      print'<p> The blog entry has been updated.</p>'; 

      // Report on the result: 
     } else { 
      print '<p style="color: red;">Could not retrieve the blog entry because:<br />' . mysqli_error($dbc) . '.</p><p>The query being run was: ' . $query . '</p>'; 
     } 
    } 
} else{ 
    print '<p style="color: red;">Could not retrieve the blog entry because:<br />' . mysqli_error($dbc) . '.</p><p>The query being run was: ' . $query . '</p>'; 
} 



mysqli_close($dbc); // Close the database connection. 
include('footer.php'); // Need the footer. 
?> 
+2

そうなパースエラーではないでしょうか? 'if(!problem)' => 'if(!$ problem)'です。 (Forbsが以下に言及しているように、文字列の代わりにキーワードfalseを使用する) –

答えて

1

あなたは$problem = "false"を設定しているので、あなたは$problem= false;

"false"に設定する必要が偽

そして!問題でなければなりません!$の問題

+0

これは問題であるように見えますが、時間の終わりまで$が私の悩みになるとはかなり確信しています。ありがとう! – bunkkin

関連する問題