Ошибка PHP-кода в PHP MySQL «не может анализировать запрос»

Я пытаюсь получить таблицу для сортировки через заголовок заголовка. Но я получаю запрос на синтаксический анализ. Я что-то делаю неправильно в MySQL?

Я должен заказать таблицу жаргона для работы, которая содержит тысячи записей. Поэтому я просто занимаюсь этим дома, чтобы понять это правильно. Однако на данный момент я, похоже, застрял на этом бите MySQL. Я следил за советами на другом веб-сайте, который имел этот код, но все же застрял в объяснении, почему это не помогает.

<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="../demo.css" rel="stylesheet" type="text/css" /> </head> <body> <?php function makeHeaderLink($value, $key, $col, $dir) { $out = "<a href=\"" . $_SERVER['SCRIPT_NAME'] . "?c="; //set column query string value switch($key) { case "Acronym": $out .= "1"; break; case "Full Name": $out .= "2"; break; case "What": $out .= "3"; break; default: $out .= "0"; } $out .= "&d="; //reverse sort if the current column is clicked if($key == $col) { switch($dir) { case "ASC": $out .= "1"; break; default: $out .= "0"; } } else { //pass on current sort direction switch($dir) { case "ASC": $out .= "0"; break; default: $out .= "1"; } } //complete link $out .= "\">$value</a>"; return $out; } switch($_GET['c']) { case "1": $col = "Acronym"; break; case "2": $col = "Full_Name"; break; case "3": $col = "What"; break; } if($_GET['d'] == "1") { $dir = "DESC"; } else { $dir = "ASC"; } if(!$link = mysql_connect("localhost", "username", "password")) { echo "Cannot connect to db server"; } elseif(!mysql_select_db("nazir_jargon")) { echo "Cannot select database"; } else { if(!$rs = mysql_query("SELECT 'Acronym', 'Full Name', 'What' * FROM jargon1 ORDER BY $col $dir")) { echo "Cannot parse query"; } elseif(mysql_num_rows($rs) == 0) { echo "No records found"; } else { echo "<table class=\"bordered\" cellspacing=\"0\">\n"; echo "<tr>"; echo "<th>" . makeHeaderLink("Acronym", "Acronym", $col, $dir) . "</th>"; echo "<th>" . makeHeaderLink("Full Name", "Full_Name", $col, $dir) . "</th>"; echo "<th>" . makeHeaderLink("What", "What", $col, $dir) . "</th>"; echo "</tr>\n"; while($row = mysql_fetch_array($rs)) { echo "<tr><td>$row[person_id]</td><td>$row[Acronym]</td><td>$row[Full_Name]</td><td>$row[What]</td></tr>\n"; } echo "</table><br />\n"; } } ?> </body> 

Solutions Collecting From Web of "Ошибка PHP-кода в PHP MySQL «не может анализировать запрос»"

Удалите одну цитату & * из запроса, чтобы запрос выглядел ниже. Надеюсь, это сработает.

 SELECT Acronym, Full Name, What FROM jargon1 ORDER BY $col $dir 

Если это не сработает,

Можете ли вы распечатать

 echo "SELECT Acronym, Full Name, What FROM jargon1 ORDER BY $col $dir"; 

и дайте мне знать, что вы получаете?

Примечание. Я думаю, вы хотели использовать обратные элементы (`), однако ошибочно использовали одиночную кавычку.


Редактировать 1

Как видишь

 echo "SELECT Acronym, Full Name, What FROM jargon1 ORDER BY $col $dir"; 

печать

 SELECT Acronym, Full Name, What FROM jargon1 ORDER BY ASC` 

Это означает, что $col не печатает. Пожалуйста, проверьте, что происходит с $col

 SELECT Acronym, Full Name, What FROM jargon1 ORDER BY columnNameMissing ASC` ^^^^^^^^^^^^^^^^^ 

Удалите * из вашего запроса выбора, если вы указываете возвращаемые столбцы. В противном случае верните все с помощью *. Один или другой.