Здравствуйте! Я работаю с AJAX с БД и при попытке отрисовки моего БД в опции и выберите тег, он дает мне «Неопределенная ошибка смещения».
Вот мой код:
$sql = "SELECT word FROM words";
$result = mysql_query($sql);
$response = "";
$size = 0;
if($result === FALSE) {
die(mysql_error());
}
while ($row = mysql_fetch_array($result)) {
for($i = 0; $i < count($row); $i ++) {
$pos = stripos(strtolower($row[$i]), $pattern); //Here marks the error
if(!($pos === false)) {
$size ++;
$word = $row[$i];
$response .= "<option value=\"$word\">$word</option>";
}
}
}
if($size > 0) {
echo "<select id=\"list\" size=$size onclick=\"selectValue()\">$response</select>";
}
Идея этого приложения заключается в том, что вы можете начать вводить любое слово, и оно будет искать слова, совпадающие с вводом, сначала отображая его в теге HTML параметра, а когда больше не будет найдено ни одного параметра, оно будет отображаться в теге HTML выбора.
Это вроде работает, но отображает эти ошибки. Кто-нибудь может мне помочь? Спасибо!!
Вот модифицированный скрипт:
while ($row = mysql_fetch_assoc($result)) {
$pos = stripos(strtolower($row['word']), $pattern);
if(!($pos === false)) {
$size ++;
$word = $row['word'];
$response .= "<option value=\"$word\">$word</option>";
}
}
Но на самом деле следующий скрипт будет работать быстрее:
if ($result = mysql_query("SELECT word FROM words where word like '%".mysql_real_escape_string($pattern)."%'")) {
$response = "";
$size = 0;
while ($row = mysql_fetch_assoc($result)) {
$size ++;
$word = htmlspecialchars($row['word']);
$response .= "<option value=\"$word\">$word</option>";
}
echo "<select id=\"list\" size=$size onclick=\"selectValue()\">$response</select>";
}
И да — используйте mysqli вместо mysql, функции mysql_ устарели.
Других решений пока нет …