2017-01-03 6 views
-2

ですでに定義された$エラーは、私はすでに$errorisset()を入れて試してみましたが、それはまだ動作しません

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

というエラーを取得します。

編集:! 私はすでに削除=ちょうどISSET($エラー)を使用しますが、私にこの

パースエラーを与えるには:構文エラー、予期しない '{' はC:\ xamppの\ htdocsに\ songdb \編集。ライン上でPHP 158

edited2:

私が追加した$エラー= ''; isset($error)を使用してください。ただし、すべてのフィールドに入力せずに[送信]ボタンをクリックすると動作しますが、エラーメッセージが表示されませんでした。

は3編集:

私は$エラーの後に= '、関数renderForm($ songid、$タイトル、$作家、$ジャンル、$言語、$歌詞、$更新)$接続して、$データベースの後に追加されましたエラー:すべての必須フィールドに記入してください! ';ある場合は、\ xamppの\ htdocsに\ songdb \个人设定ライン218

上:構文エラー、C内のファイルの予期しない終わり:及び($行)であれば後が、それは私にこのエラー

パースエラーを与えますこのコードには解決策がありません。edit.phpファイルのコーディングの代わりとなる/別の解決策を教えてください。どうもありがとうございました。メンバーからの以前の回答に、私を助けてくれてありがとう。

<?php 
// connect to the database 
$connect = mysql_connect('localhost','root',''); 
$database = mysql_select_db('songdb'); 

function renderForm($songid, $title, $artist, $genre, $language, $lyrics, $update) 
// 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 
     $error = ''; 
     $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!'; 
      renderForm($songid, $title, $artist, $genre, $language, $lyrics, $update); 
     } 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']; 

      renderForm($songid, $title, $artist, $genre, $language, $lyrics, $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> 
       </table> 
      </form> 
    </body> 
</html> 
+1

[ 'songid'];'置く '$エラー= '';!'、代わりに 'ISSET($エラー)の= '''(場合 '書きます!空($エラー)) ' –

+0

isset($ error)!= 'これは何ですか? –

+0

@KrisRoofeそれは問題なく動作します –

答えて

4

ちょうど私はあなたが$id = $_POST['songid']; befor $error = ''を定義する必要があると思うisset($error)(ライン158で!=を除く)

1

を使用しています。このような

何か: -

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

{ 

    // get form data, making sure it is valid 
    $error = ''; 
    $id = $_POST['songid']; 

    ...... 
    ...... 

も変更します。

if(!empty($error)) 
{ 
    echo '<div style="padding:4px; border:1px solid red;  color:red;">'.$error.'</div>'; 

} 
1

PHPが変数を取得していないためにエラーが発生しています($error)ので、未定義の変数が表示されます。

スクリプトの開始時に定義します。ます$ id = $ _POST `前

$error='';

+0

他の人が何かを教えているのですか? –