mysql — PHP: неопределенное смещение в полосах

Здравствуйте! Я работаю с 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 выбора.

Это вроде работает, но отображает эти ошибки. Кто-нибудь может мне помочь? Спасибо!!

0

Решение

Вот модифицированный скрипт:

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_ устарели.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]