2013-05-03 4 views
-8

Эта тема уже была опубликована несколько раз, но решения, размещенные здесь в SO, похоже, не помогают. Я проверил точки с запятой, пробелы и запрос, но я все еще получаю ошибку синтаксического анализа на php всякий раз, когда вызываю subjaccess.php.Ошибка анализа снова и снова

Parse error: syntax error, unexpected T_STRING in /home/a8367888/public_html/subjaccessrequest.php on line 14 

вот мой PHP код:

<?php 
$mysql_hostname = "localhost"; 
$mysql_database = "database"; 
$mysql_user = "username"; 
$mysql_password = "password"; 

//$pass = $_POST['email']; 
$pass = "[email protected]"; 

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) 
or die("Opps something went wrong"); 
mysql_select_db($mysql_database, $bd) or die("Oops something went wrong"); 

$query = "SELECT (a.acode) as "access_id", (s.s_first_name) as "fname",  (s.s_middle_initial) as "mname", (s.s_last_name) as "lname", (a.s_email) as "email", (a.req_subj) as "subjcode" 
FROM access a, student s 
WHERE a.s_email = s.s_email 
AND a.t_email = '$pass' 
AND a.access_status = "pending"; 

$result = mysql_query($query) or die('MySql Error' . mysql_error()); 

while ($row = mysql_fetch_array($result)) 
{ 
$res[]=array('aid'=> $row['access_id'],'fname'=> $row['fname'],'mname'=> $row['mname'], 'lname'=> $row['lname'], 'email'=> $row['email'], 'subj'=> $row['subjcode']); 
} 

echo '$res'; 

$response['request'] = $res; 
print(json_encode($response)); 
?> 

Надеясь на ваши ответы.

+1

Проверьте котировки. Вы лжец, вы сказали, что вы проверили запрос. –

+3

ад, даже подсветка синтаксиса SO показывает ошибку! –

+0

Это ваш настоящий пароль? –

ответ

1

У вас есть двойные кавычки в строке, но она окружена ". Это нарушает ваш PHP-код. Но они вам все равно не нужны. Также вы должны использовать JOIN вместо FROM a, b. И все идентификаторы в запросе должны быть процитированы backtics`. Окончательный запрос должен выглядеть следующим образом:

$query = " 
SELECT 
    `a`.`acode` AS `access_id`, 
    `s`.`s_first_name` AS `fname`, 
    `s`.`s_middle_initial` AS `mname`, 
    `s`.`s_last_name` AS `lname`, 
    `a`.`s_email` AS `email`, 
    `a`.`req_subj` AS `subjcode` 
FROM `access` `a` 
JOIN `students` `s` 
    ON `a`.`s_email` = `s.s_email` 
AND `a`.`t_email` = '$pass' 
AND `a`.`access_status` = 'pending' 
"; 
2

Изменить этот

$query = "SELECT (a.acode) as "access_id", (s.s_first_name) as "fname",  (s.s_middle_initial) as "mname", (s.s_last_name) as "lname", (a.s_email) as "email", (a.req_subj) as "subjcode" 

в

$query = "SELECT (a.acode) as 'access_id', (s.s_first_name) as 'fname',  (s.s_middle_initial) as 'mname', (s.s_last_name) as 'lname', (a.s_email) as 'email', (a.req_subj) as 'subjcode' 
0

Попробуйте эту

$query = "SELECT (a.acode) as " . access_id . ", (s.s_first_name) as " . fname . ",  (s.s_middle_initial) as " . mname . ", (s.s_last_name) as " . lname . ", (a.s_email) as "email", (a.req_subj) as " . subjcode 
Смежные вопросы