2011-07-14 107 views
0

我的代碼看起來好像沒什麼問題這一點,但我不斷收到以下錯誤:

"Parse error: syntax error, unexpected $end in /home/txclanco/public_html/hotmuze/addSong.php on line 21"

這是一個腳本,在輸入需要從一種形式,檢查重複,如果有一個重複,它不會創建一個新行,但只需在'rating'行添加1,其中歌曲名是輸入的歌曲。如果沒有重複,腳本會將數據添加爲新行。這些數據類型是:

  • ID = A_I/INT
  • SONGNAME = VARCHAR
  • 藝術家= VARCHAR
  • 等級= INT

的腳本是下面空白的MySQL數據out:

<? 
    mysql_connect("localhost", "***", "***") or die(mysql_error()); 
    mysql_select_db("***") or die(mysql_error()); 
    $songname = $_POST['songname']; 
    $artist = $_POST['by']; 
    $ratenum = 1; 
    $chkquery = "SELECT * FROM hotmuze WHERE songname='$songname'"; 
    $plusOneQuery = "SELECT * FROM hotmuze WHERE songname='$songname'"; 
    $updateQuery = "UPDATE hotmuze SET rating='$rating2' WHERE songname='$songname'"; 
    $checkdata = mysql_query($chkquery); 
    $checkrows = mysql_num_rows($checkdata); 

    if($checkrows==0) 
    { 
     $insquery = "INSERT INTO hotmuze (id, songname, artist, rating) VALUES('', '$songname', '$artist', '$ratenum'"; 
     $insdata = mysql_query($insquery); 
    } 

    if($checkrows!=0) 
    { 
    $plusData = mysql_query($plusOneQuery); 
    } 

    if(mysql_num_rows($plusData)!=0) 
    { 
    $result = mysql_fetch_assoc($plusData); 
    $rating = $result['ratng']; 
    $rating2 = $rating + 1; 
    mysql_query($updateQuery); 
    echo "Data Inserted"; 
    } 
?> 

第21行是:

if($checkrows!=0) 
{ 
    // The brace is on line 21 
    $plusData = mysql_query($plusOneQuery); 
} 

任何想法什麼可能是錯誤的腳本?我知道意外的$結束錯誤通常意味着有一個不恰當的地方,但這次,它很好?

+0

除了當前的錯誤,您的'$ insquery'似乎被聲明爲在SQL結尾缺少一個括號。 – doppelgreener

+2

在將它們放入查詢之前,您確實需要'mysql_real_escape_string'這些變量:-) – prodigitalson

+0

您的代碼解析得很好。刪除MySQL憑據時是否刪除了語法錯誤? –

回答

0

VALUES打開和關閉 '()' 是需要

$insquery = "INSERT INTO hotmuze (id, songname, artist, rating) 
VALUES('', '$songname', '$artist', '$ratenum')"; 
+0

謝謝,那是一個問題,還有其他問題。我用不同的結構重新編寫了腳本,它的工作原理! :) –

1

改變這種

$insquery = "INSERT INTO hotmuze (id, songname, artist, rating) VALUES('', '$songname', '$artist', '$ratenum'"; 

$insquery = "INSERT INTO hotmuze (id, songname, artist, rating) VALUES('', '$songname', '$artist', '$ratenum')"; 

你已經錯過了)月底

+1

如果您在查詢執行行中有任何錯誤。檢查那根。你會發現錯誤很明顯。此外'意外的$結束'是任何不完全結束 – jeni

+0

謝謝,這是一個問題,還有其他問題。我用不同的結構重新編寫了腳本,它的工作原理! :) –

0

計數數字o f對於右括號的數目,您需要打開括號。 $ insquery =「INSERT INTO hotmuze(id,songname,artist,rating)VALUES('','$ songname','$ artist','$ ratenum')」;

+1

謝謝,我通常使用Notepad ++來做到這一點,但呃:P我使用的Web編輯器是可怕的:(這不是唯一的問題!無論哪種方式,我用不同的結構重新編寫了整個代碼,並且它工作正常!不管怎麼說,多謝拉! :)C –