I am trying to find out whether a string contains any of the strings from a particular table of strings and assigning the string that is found to be a match to a variable and then inserting said variable into a database. However it doesn't seem to be able to find a match even when there clearly is a match. Any help would be appreciated.
This is the code:
$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));
At this point, what would appear in the table is "Test" in the string column. Ideally it should insert the word "Morning" instead which can be found in the table strings
stristr()
Returns all of haystack starting from and including the first occurrence of needle to the end.
You are fetching array form your query. SO need to pass string to your stristr function to match
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
}
}
$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));