2013-10-04 35 views
1

所以我做了一個ScoreBoard系統,但是每當我的添加/更新代碼塊運行時,它就會提取我一個 解析錯誤:語法錯誤,包含mysqli_query()的行上的意外T_VARIABLE;如果它失敗了,這是我的代碼。PHP + SQL記分板問題

<form method="post" action=""> 
<center> 
<font color="green">Your name Max length is 15</font> 
<input type="text" name="username" maxlength="15"> 
<input type="submit" name="submit" value="Submit"> 
</center> 
</form> 
<font color='red'><center> 
<?php 
if (isset($_POST['username'])) 
{ 
$link = mysqli_connect("host","user","pass","db") or die("Error " . mysqli_error($link)); 
// $getname = $_POST['username']; 
$getname = mysqli_real_escape_string($link,$_POST['username']); 
$percentage = "10"; 
$querycheck = ("SELECT * from scoreboard where name = $getname") 
$result = mysqli_query($link, $querycheck); 
if (mysql_num_rows($querycheck) > 0) 
    { 
    $queryexist = ("UPDATE scoreboard set percentage = 20 where name = $getname"); 
    $resultexist = mysqli_query($link, $queryexist); 
    echo "<center><font color='green' size='2'>Your score has been updated successfuly</font></center>"; 
    } 
else 
    { 
    $querydoesnt = ("INSERT INTO scoreboard (name,percent) VALUES ('$getname',$percentage)"); 
    echo "<center><font color='green' size='2'>Your name has been added to the scoreboard successfuly </font></center>!"; 
    } 
?> 
</font></center> 

它獲取我,顯然是說,有什麼問題我mysqli_query線,雖然第一個錯誤。

+0

在'$ querycheck'你忘了','在最後 – JTC

回答

1

你忘了加分號;你也忘了結束您if statement

$querycheck = ("SELECT * from scoreboard where name = $getname"); 
                   ^^^^ 

每個PHP語句以分號結尾(;)。 PHP不會停止讀取語句,直到它達到分號。如果您在行尾留下分號,PHP將繼續閱讀該語句。它讀取兩行作爲一個語句,所以它有一個錯誤信息抱怨,諸如Parse error: parse error in ...

// if statement block 

<font color='red'><center> 
<?php 
    if (isset($_POST['username'])) 
    { 
     // your code 
    } 
</font></center> 

注意

您使用mysqli_語句,所以你需要改變mysql_num_rows()mysqli_num_rows()

if (mysqli_num_rows($querycheck) > 0) { 
    // your code 
} 
+0

我固定它已經,B如果你不介意,我得到這個 警告:mysql_num_rows():提供的參數不是一個有效的MySQL結果資源,它似乎發生在這一行if(mysql_num_rows($ querycheck)> 0 ),介意告訴我爲什麼它沒有工作? –

+0

@AhmedMagdy這是因爲你正在使用'mysqli_'語句。所以我把它改成了mysqli_num_rows' –

+0

好吧我已經做到了,現在我得到了這個,警告:mysqli_num_rows()期望參數1是mysqli_result,同一行給出的布爾值,我嘗試了mysqli_num_rows(mysqli_result($ querycheck)) ,但沒有運氣,對不起,打擾任何方式。 –

1

我想你忘了一個分號該行

$querycheck = ("SELECT * from scoreboard where name = $getname"); 
                   ^
                   HERE 
1
$querycheck = ("SELECT * from scoreboard where name = $getname") ; 

忘了分號