我的PHP代码如下:
//$menutype is defined in this point, and no problem with it
$sql = "SELECT struct FROM menutype WHERE id=$menutype;";
$result = mysql_query($sql);
list($struct) = mysql_fetch_row($result);
$menu = explode("\n", $struct); //Explode to make an array with each line
foreach ($menu as $index => $value)
{
//$barid is defined in the top of the document and no issue with it
creatabla($barid, $value);
}
function creatabla($barid, $tipo)
{
$tipo = trim($tipo, ' '); //trim to delete unwanted spaces
$sql = "SELECT name FROM products WHERE tipo LIKE '%$tipo%' AND restaurante='$barid';";
$result = mysql_query($sql);
while(list($name) = mysql_fetch_row($result))
{
echo "$name";
}
}
类似'结构'行结构:
Line1
Line2
Line3
Line4AndLastLine
在Last Line之后没有回车。
嗯,代码通常可以正常工作,但如果我修改了' Struct'行,有些行不会被读取,所以我通常需要在phpmyadmin的advaced编辑器中编辑struct行。
我该怎么做才能解决这个问题?我可以在sql语句中尝试其他类型的过滤器吗?我该怎么做才能改进修剪或爆炸功能来解决这个问题?
提前感谢你们。
答案 0 :(得分:1)
我想我已经开始理解这个问题了,我猜你是对的 - 我猜最后会有一个\ r \ n字符。
现在你称之为:
trim($tipo, ' ');
删除 ONLY 空格。如果您将其更改为:
trim($tipo);
然后它会删除更多类型的空格,包括(但不限于)\ r \ n字符。
See HERE了解有关trim()
功能的更多信息。