2015-07-14 3 views
0

Я пытаюсь найти строки, содержащие определенную строку. Для этого я использую следующий запрос:Небольшая проблема с поиском определенной строки

SELECT `1` as 'msgTime', 
     `4` as 'shout' 
FROM log.shout_log' WHERE shout LIKE '".$name."' ORDER BY 1 DESC 

я получаю $name от:

$name = $_GET['name']; 

Мой URL: ./shout_log.php?name=Montz

Но я столкнулся со следующей ошибкой:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' WHERE shout LIKE 'Montz' ORDER BY 1 DESC' at line 1

Ev erything, чтобы вернуть сообщение, которое крикнул это имя.

$ms = $row['shout']; 
echo '<span style="color:blue;">'.$ms.'</span>'; 

Что не так с моим запросом?

EDIT:

$name = "%".$_GET['name']."%"; 
    $info = mysql_query("SELECT `1` as 'msgTime', `4` as 'shout' FROM log.shout_log WHERE 'shout' LIKE '$name'") or die(mysql_error()); 
    echo '<table><tr><th>Data</th><th>Menssagem</th></tr>'; 
    while($row = mysql_fetch_object($info)){ 
     echo '<span style="color:blue;">'.htmlspecialchars($row->shout).'</span>'; 
    } 
    echo '</table>'; 
+3

цитата перед заявлением WHERE –

+0

Должен быть слепой, спасибо, но все же ... Я не получаю никаких возвратов. – Monteiro

+0

Показать данные в вашей таблице –

ответ

0

Вы дали свои имена столбцов псевдонимов в запросе, так:

$ms = $row['4']; 

должен быть

$ms = $row['shout']; 

или

$ms = $row['msgTime']; 

все, что вы искали, я не даже знаю, ваша стратегия вычисления имен в числовом столбце смешна

EDIT

ИТАК изменение:

WHERE shout LIKE 

к:

WHERE `4` LIKE 

EDIT2

нормально мое плохое сделать это:

$query = "SELECT `1` as 'msgTime', `4` as 'shout' FROM log.shout_log WHERE 'shout' LIKE '$name'"; 
echo $query; 
$info = mysql_query($query) or die(mysql_error()); 
+0

Да, я знаю, это из игрового источника, который я не могу изменить. Но используя $ ms = $ row ['shout']; дает мне ошибку: Неизвестный столбец 'shout' in 'where clause' – Monteiro

+0

отредактирован снова, теперь у меня нет ошибок, но нет значений – Monteiro

+0

Если я использую 4, '4', крик или '4', я не получаю ошибок, но нет значений: | – Monteiro

0

Как ответили в комментариях, вы имели дополнительный.

Несмотря на это, я хотел указать, что то, что вы делаете, чрезвычайно опасно, поскольку оно подвержено атакам SQL Injection.

Например, если я скажу, меня зовут:

';drop table `shout_log`; -- 

Тогда это будет убить таблицу базы данных.

См. Следующий вопрос: for proper code to avoid SQL injection.

+0

Я отредактировал его, и он все еще ничего не возвращает, но спасибо за эту ссылку – Monteiro

+0

Я считаю, что это потому, что вы написали что-то вроде: 'WHERE shout LIKE 'NAME:". $ Name. "', Так как ваша текстовая строка начинается с NAME: –

+0

«Неизвестный столбец» крик 'in' where clause '' – Monteiro

Смежные вопросы