2013-10-04 5 views
1

Итак, я создал систему ScoreBoard, но всякий раз, когда выполняется мой блок добавления/обновления кода кода, он вызывает меня Ошибка синтаксиса: ошибка синтаксиса, неожиданный T_VARIABLE в строке, содержащей mysqli_query(); например, если он не работает, вот мой код.Проблема с таблицей 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 ut У меня есть другая ошибка, если вы не возражаете, я получаю это Предупреждение: mysql_num_rows(): предоставленный аргумент не является допустимым ресурсом результата MySQL. Кажется, что это происходит в этой строке if (mysql_num_rows ($ querycheck)> 0), Разум говорит мне, почему это не сработало? –

+0

@AhmedMagdy это потому, что вы используете операторы mysqli_'. поэтому измените 'mysql_num_rows' на' mysqli_num_rows' –

+0

Хорошо, я сделал это уже, теперь я получаю это, Warning: mysqli_num_rows() ожидает, что параметр 1 будет mysqli_result, boolean задан в той же строке, я попробовал mysqli_num_rows (mysqli_result ($ querycheck)) , Но не повезло, Извините за беспокойство. –

1

Я думаю, что вы забыли точкой с запятой на этой строке

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

забыли поставить точку с запятой

Смежные вопросы