mardi 3 janvier 2017

Undefined variable of $error but already defined $error in php

I get an error saying

Notice: Undefined variable: error in C:\xampp\htdocs\songdb\edit.php on line 158

I have already tried putting isset in the $error in the but it still doesn't work. Did I miss something here?

<?php

// connect to the database

$connect = mysql_connect('localhost','root','');
$database = mysql_select_db('songdb');



// 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(isset($_POST['songid'])))

 {

 // get form data, making sure it is valid

    $id = $_POST['songid'];

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

    $edit = "UPDATE songs SET    title='.$title.',artist='.$artist.',genre='.$genre.',language='.$language.',lyrics='.$lyrics.',update='.$update.' where songid=$songid";

 // check that fields are filled in

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

{

// generate error message

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


 }

 else

 {

  // save the data to the database

   mysql_query($edit) or die(mysql_error());



  // once saved, redirect back to the view page

   header("Location: view.php");

 }

 }



  }

 else

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

  {



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

  if (isset($_GET['id']) && is_numeric($_GET['id']) && $_GET['id'] > 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'];

  $language = $row['language'];

 $lyrics = $row['lyrics'];

 $update = $row['update'];


 }

 else

 // if no match, display result

  {

  echo "No results!";

  }

  }

  else

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

  {



  }

  }

  ?>


 <html>

 <head>

 <title>Edit Record</title>

 </head>

 <body>
 <?php
 if (isset($error)!= '')

 {

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

  }
  ?>
 <form action="edit.php" method="post">

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

 <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>
    <td>Updated by<label style="#FF0000;"></label></td>
    <td><input type="text" name="update"></td>
</tr>
<tr style="text-align:center">
    <td colspan="2"><input type="submit" name="submit" value="Submit"></td>
</tr>
</tbody>
</form>

</body>

</html>

Aucun commentaire:

Enregistrer un commentaire