2017-01-09 2 views
0

Я создал файл edit.php. Кажется, что он работает, но он отображает только ошибку из эхо-строки (конец строки). Я не могу найти, где я ошибся или не набрал код.Файл EDIT php показывает только ошибку

This is what it shows.

Что я должен сделать, чтобы исправить это?

<?php 
/* 
EDIT.PHP 
Allows user to edit specific entry in database 
*/ 
// creates the edit record form 
// since this form is used multiple times in this file, I have made it a function that is easily reusable 

function renderForm($songid, $title, $artist, $genre, $lyrics, $language, $error) 

{ 

?> 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<html> 

    <head> 

    <title>Edit Record</title> 

    </head> 

    <body> 

    <?php 

    // if there are any errors, display them 

    if ($error != '') 

    { 

     echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>'; 

    } 

    ?> 

    <form action="" method="post"> 

    <input type="hidden" name="songid" value="<?php echo $songid; ?>"/> 

     <table style="margin-left:auto; margin-right:auto; width:400px;"> 
     <tbody> 
     <tr style="text-align:center"> 
     <td colspan="2"><h2 style="color:#00008b;">Edit song into Music Database</h2><label style="color:#FF0000;"></label></td> 
     </tr> 

    <tr> 
    <td>Title<label style="color:#FF0000;"></label></td> 
    <td><input type="text" name="title"></td> 
    </tr> 
    <tr> 
    <td>Artist<label style="color:#FF0000;"></label></td> 
    <td><input type="text" name="artist"></td> 
    </tr> 
    <tr> 
    <td>Genre<label style="color:#FF0000;"></label></td> 
    <td><input type="text" name="genre"></td> 
    </tr> 
    <tr> 
    <td>Language<label style="#FF0000;"></label></td> 
    <td><input type="text" name="language"></td> 
    </tr> 
    <tr> 
    <td>Lyrics: <label style="#FF0000;"></label></td> 
    <td><textarea name="lyrics" rows="5" cols="50"></textarea></td> 
    </tr> 

    <tr style="text-align:center"> 
    <td colspan="2"><input type="submit" name="submit" value="Submit"></td> 
    </tr> 

    <input type="submit" name="submit" value="Submit"> 



</form> 

</body> 

</html> 

<?php 

    } // continue end of function of renderform 


// connect to the database 

    include('connect-db.php'); 


    // check if the form has been submitted. If it has, process the form and save it to the database 

    if (isset($_POST['submit'])) 

    { 

// confirm that the 'id' value is a valid integer before getting the form data 

if (is_numeric($_POST['songid'])) 

{ 

// get form data, making sure it is valid 

     $songid = (isset($_POST['songid']) ? $_POST['songid'] : null); 

     $title = (isset($_POST['title']) ? $_POST['title'] : null); 
     $artist = (isset($_POST['artist']) ? $_POST['artist'] : null); 
     $genre = (isset($_POST['genre']) ? $_POST['genre'] : null); 
     $lyrics = (isset($_POST['lyrics']) ? $_POST['lyrics'] : null); 
     $language = (isset($_POST['language']) ? $_POST['language'] : null); 



    // check that firstname/lastname fields are both filled in 

    if ($title == '' || $artist == '' || $genre == '' || $lyrics == '' || $language == '') 

    { 

    // generate error message 

    $error = 'ERROR: Please fill in all required fields!'; 

    //error, display form 

    renderForm($songid, $title, $artist, $genre, $lyrics, $language, $error); 

    } 

    else 

    { 

    // save the data to the database 

    mysql_query("UPDATE players SET title='$title', artist='$artist', genre='$genre', lyrics='$lyrics', language='$language' WHERE songid='$songid'") 

    or die(mysql_error()); 

    // once saved, redirect back to the view page 

    header("Location: view.php"); 

    } 

} 

else 

{ 

// if the 'id' isn't valid, display an error 

echo 'Error!'; 

} 

} 

    else 

// if the form hasn't been submitted, get the data from the db and display the form 
    { 

    // get the 'songid' value from the URL (if it exists), making sure that it is valid (checing that it is numeric/larger than 0) 

if (isset($_GET['songid']) && is_numeric($_GET['songid']) && $_GET['songid'] > 0) 

{ 

// query db 

$songid = $_GET['songid']; 

$result = mysql_query("SELECT * FROM songs WHERE songid=$songid") 
or die(mysql_error()); 

$row = mysql_fetch_array($result); 

// check that the 'id' matches up with a row in the databse 

    if($row) 

    { 



     // get data from db 

     $title = $row['title']; 

     $artist = $row['artist']; 

     $genre = $row['genre']; 

     $lyrics = $row['lyrics']; 

     $language= $row['language']; 


     // show form 

     renderForm($songid, $title, $artist, $genre, $lyrics, $language, $error); 

    } 

else 

    // if no match, display result 

{ 

    echo "No results!"; 

} 

} 

else 

// if the 'songid' in the URL isn't valid, or if there is no 'songid' value, display an error 

{ 

echo 'Error!'; 

} 

} 

?> 
+0

Добавили ли вы 'songid' параметр в вашем URL? И действительно ли это число ('is_numeric') и выше 0? –

+0

Есть ошибки в консоли браузера? –

+0

@Frank M Да, я его добавил и да, это больше 0 – Zirah

ответ

0

Пропорционально определенная функция, но не выполнена. Пожалуйста, проверьте его:

<?php 
/* 
EDIT.PHP 
Allows user to edit specific entry in database 
*/ 
// creates the edit record form 
// since this form is used multiple times in this file, I have made it a function that is easily reusable 

renderForm(); 

function renderForm($songid, $title, $artist, $genre, $lyrics, $language, $error) 

{...} 
0

ваш код имеет некоторые синтаксические ошибки, но я установил его и что-то отметить, я убирала свой код и переместить некоторые вещи вокруг также заметил, что вы использовали MySQL, когда он устарел, поэтому я сделал его MySQLI, и я дал вам способ подключения к вашей базе данных, а также при изменении местоположения заголовка предлагается добавить exit(); затем, чтобы остановить остальную часть кода PHP запуск


<?php 
include('connect-db.php'); 
function renderForm($songid, $title, $artist, $genre, $lyrics, $language, $error){ 

} 
if (isset($_POST['submit'])){ 
    if (is_numeric($_POST['songid'])){ 
     $songid = (isset($_POST['songid']) ? $_POST['songid'] : null); 
     $title = (isset($_POST['title']) ? $_POST['title'] : null); 
     $artist = (isset($_POST['artist']) ? $_POST['artist'] : null); 
     $genre = (isset($_POST['genre']) ? $_POST['genre'] : null); 
     $lyrics = (isset($_POST['lyrics']) ? $_POST['lyrics'] : null); 
     $language = (isset($_POST['language']) ? $_POST['language'] : null); 
     if ($title == null || $artist == null || $genre == null || $lyrics == null || $language == null){ 
      $error = 'ERROR: Please fill in all required fields!'; 
     } else { 
      $conn = new mysqli('host', 'username', 'password', 'DB');// This will be located in your connect.php but the refrence variable("$conn") is important if you are going to use this php 
      $conn->query("UPDATE players SET '$title', artist='$artist', genre='$genre', lyrics='$lyrics', language='$language' WHERE songid='$songid''"); 
      header("Location: view.php"); 
      exit(); 

     } 
    } else { 
     $error = "Song Id is not valid"; 
    } 
} 
if (isset($_GET['songid']) && is_numeric($_GET['songid']) && $_GET['songid'] > 0){ 
    $songid = $_GET['songid']; 
    "SELECT * FROM songs WHERE songid=$songid" 
    $result = $conn->query("UPDATE players SET '$title', artist='$artist', genre='$genre', lyrics='$lyrics', language='$language' WHERE songid='$songid''"); 
    $row = $result->fetch_assoc(); 
    if(mysqli_num_rows($result) > 0){ 
     $title = $row['title']; 
     $artist = $row['artist']; 
     $genre = $row['genre']; 
     $lyrics = $row['lyrics']; 
     $language= $row['language']; 
     renderForm($songid, $title, $artist, $genre, $lyrics, $language, $error); // Still not quite sure what you are doing with this function because there is no function made on this current php script 

    } else { 
     $error = "No results!"; 
    } 
} else { 
    $error = "Song id in URL is not valid"; 
} 
?> 
<html> 
    <head> 
    <title>Edit Record</title> 
    </head> 
    <body> 
    <?php 
    if ($error){ 
     echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>'; 
    } 
    ?> 
    <form action="" method="post"> 
    <input type="hidden" name="songid" value="<?php echo $songid; ?>"/> 
     <table style="margin-left:auto; margin-right:auto; width:400px;"> 
     <tbody> 
     <tr style="text-align:center"> 
     <td colspan="2"><h2 style="color:#00008b;">Edit song into Music Database</h2><label style="color:#FF0000;"></label></td> 
     </tr> 
    <tr> 
    <td>Title<label style="color:#FF0000;"></label></td> 
    <td><input type="text" name="title"></td> 
    </tr> 
    <tr> 
    <td>Artist<label style="color:#FF0000;"></label></td> 
    <td><input type="text" name="artist"></td> 
    </tr> 
    <tr> 
    <td>Genre<label style="color:#FF0000;"></label></td> 
    <td><input type="text" name="genre"></td> 
    </tr> 
    <tr> 
    <td>Language<label style="#FF0000;"></label></td> 
    <td><input type="text" name="language"></td> 
    </tr> 
    <tr> 
    <td>Lyrics: <label style="#FF0000;"></label></td> 
    <td><textarea name="lyrics" rows="5" cols="50"></textarea></td> 
    </tr> 

    <tr style="text-align:center"> 
    <td colspan="2"><input type="submit" name="submit" value="Submit"></td> 
    </tr> 

    <input type="submit" name="submit" value="Submit"> 
</form> 
</body> 
</html> 
Смежные вопросы