2015-09-21 4 views
1

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

Это код:

$stringToMatch = 'Good Morning'; 
$string_list = "SELECT string FROM strings"; 
$resultStringList = mysqli_query($link, $string_list) or die(mysqli_error($link)); 
$string_name = "Test"; 
while ($row = mysqli_fetch_array($resultStringList)) { 
if (stristr($StringToMatch, $row)) { 
$string_name = $row; 
} 
} 
mysqli_query($link, "INSERT INTO table (string) VALUES ('$string_name')") or die(mysqli_error($link)); 

На данный момент, что бы появиться в таблице «Test» в столбце строки. В идеале он должен вставить слово «Утро», вместо которого можно найти в строках таблицы

+0

$ строка представляет собой массив не является строкой –

ответ

0
stristr() 

Возвращает все стоге сена, начиная с и в том числе первого появления иглы до конца.

Вы извлекаете массив из своего запроса. SO нужно передать строку в вашу функцию stristr, чтобы соответствовать

while ($row = mysqli_fetch_array($resultStringList)) { 
    if (stristr($StringToMatch, $row['string'])) {// need to pass string instead of array 
    $string_name = $row['string'];// here pass string instead if array 
    } 
    } 
+0

Спасибо вам, ребята, это зафиксировал его. – fizjin

0
$stringToMatch = 'Good Morning'; 

$string_list = "SELECT string FROM strings"; 
$resultStringList = mysqli_query($link, $string_list) or die(mysqli_error($link)); 

$string_name = "Test"; 
while ($row = mysqli_fetch_array($resultStringList)) { 
    if(stristr($StringToMatch, $row['string'])){ // Here's your problem 
     $string_name = $row['string']; // and here 
    } 
} 
mysqli_query($link, "INSERT INTO table (string) VALUES ('$string_name')") or die(mysqli_error($link)); 
Смежные вопросы