Я создаю веб-сайт с использованием php, и у меня возникают проблемы с запросом SQL.
$dataArray = array();
$result = mysql_query("SELECT * FROM test WHERE web_id='$websiteID'")
or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$k = $row['kfoo'];
$v = $row['vbar'];
$dataArray[$k] = $v;
}
Это код, каким он и должен быть, однако он приводит к тому, что страница становится пустой (то есть просто отображается все белое). Я дважды проверил, и web_id
определенно правильное имя и правильный регистр.
Если я изменю web_id
в запросе, например, на «foo» (в основном на что-либо, кроме web_id
), то страница отобразится, но с сообщением об ошибке «Неизвестный столбец« foo »in» где пункт "".
Кто-нибудь знает, что может быть причиной этого? Вот код, где я создаю тест таблицы:
$dataDB = "CREATE TABLE test
(
data_id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(data_id),
web_id INT,
kfoo TEXT,
vbar TEXT
)";
mysql_query($dataDB,$con);
Обновление
Основываясь на некоторых ответах здесь, я удалил кавычки из приблизительно $ websiteID и вывел ошибки, используя
error_reporting(E_ALL);
ini_set('display_errors', 1);
В нем отображалось много ошибок, включая синтаксическую ошибку, ранее исправленную. Тем не менее, многие ошибки остаются, и они не имеют большого смысла для меня. Вот полный код моего метода:
function getOutputSQL($websiteID,$userInput) {
$result = mysql_query("SELECT * FROM websites WHERE websiteID=$websiteID")
or die(mysql_error());
while ($row = mysql_fetch_array($result)){
$url = $row['url'];
$exp = $row['exp'];
$output= $row['textPrint'];
$endUrlStart = $row['outUrlStart'];
$endUrlEnd = $row['outURLEnd'];
$image = $row['image'];
$print = $row['print'];
$post = $row['post'];
$dataSource = $row['dataSource'];
$dataSourceName = $row['dataSourceName'];
}
// construct array of data names and values
$dataArray = array();
$result = mysql_query("SELECT * FROM test WHERE web_id=$websiteID")
or die(mysql_error());
while ($row = mysql_fetch_array($result)) {
$k = $row['kfoo'];
$v = $row['vbar'];
$dataArray[$k] = $v;
}
// construct array of expressions and replacements
$result = mysql_query("SELECT * FROM regex WHERE web_id=$websiteID");
$expArray = array();
while ($row = mysql_fetch_array($result)) {
$e = $row['ex'];
$r = $row['re'];
$expArray[$e] = $r;
}
return getOutput($userInput,$url,$exp,$output,$endUrlStart,
$endUrlEnd,$dataSource,$dataSourceName,$post,$image,$print,
$expArray,$dataArray);
}
Все ошибки, которые я получаю, такие -
Примечание: неопределенная переменная: вывод в /home/daniel/web/resultsTest.php в строке 113 "
Это повторяется несколько раз для url, exp, output, endUrlStart, endUrlEnd, dataSource, dataSourceName, post, image и print. Строка 113 - это большая возвращаемая строка.
Дело в том, что, насколько я могу судить, эти переменные определены, и я знаю, что таблица не пуста, потому что я могу отобразить ее на другой странице.
решаемые
Сортировка. Проблема была на самом деле в другой части моего кода - я неправильно вызывал getOutputSQL, но я исправил это сейчас!