我一直在查看其他的帖子,比如this和this,但是没有什么适合我的具体案例。
我有一张这样的桌子:
| Name | Reference | Etc... |
|------------|-----------------|--------------|
| John Doe | | Blah blah |
| Jane Doe | John Doe | Blah blah |
| Mike Small | Jane Doe | Blah blah |
| Steve Ex | John Doe | Blah blah |
| Mary White | Mike Small | Blah blah |我希望能够找到哪些名称也是对另一个名称的引用,并将它们转换为链接,这样用户就可以单击它们并获得它所引用的名称的列表。
例如,如果用户单击John,他/她将得到如下所示的表:
| Name | Reference | Etc... |
|------------|-----------------|--------------|
| Jane Doe | John Doe | Blah blah |
| Steve Ex | John Doe | Blah blah |目前我被困在这里:
function find_items_by_ref($ref) {
db_connect();
$query = sprintf("SELECT * FROM items WHERE reference LIKE '%s'", mysql_real_escape_string($ref));
$result = mysql_query($query);
$row = mysql_fetch_array($result);
return $row;
}我试过LIKE,CONTAINS,like '%' || TEXT || '%'等等,但是都没有用。有什么想法吗?
在下面给出的答案中,我正在试验这两种可能性。第一个我有麻烦了。当我想echo从Select获得的数组元素时,我得到一个警告:非法字符串偏移'X' .错误。如果我在其中一个检索到的数组上运行var_dump,这就是我得到的结果。我不太清楚到底是怎么回事。在我看来,这似乎是一个可行的数组:
array (size=16)
0 => string '37' (length=2)
'id' => string '37' (length=2)
1 => string 'Steve Ex' (length=8)
'name' => string 'Steve Ex' (length=8)
2 => string 'John Doe' (length=8)
'reference' => string 'John Doe' (length=8)
3 => string 'Blah blah' (length=9)
'etc' => string 'Blah blah' (length=9)好的。解决了。这个问题太愚蠢了..。猜猜谁觉得自己是个真正的混蛋。无论如何,问题是,如果SQL行为一行,则我试图传递一个数字。我错误地复制了我的选择函数,当用户想要通过它的ID在一行中获取信息时,我使用它。问题一直在那里,我就像一只躲在树后面的大象一样想念它。不管怎么说,这就是..。对此很抱歉。工作守则是:
function find_items_by_ref($ref) {
db_connect();
$query = sprintf("SELECT * FROM items WHERE INSTR(reference,'".mysql_real_escape_string($ref)."')>'0' ORDER BY name ASC");
$result = mysql_query($query);
$result = db_result_to_array($result);
return $result;
}感谢@dimaninc的帮助!
发布于 2013-06-29 22:00:47
function find_items_by_ref($ref) {
db_connect();
$query = "SELECT * FROM items WHERE INSTR(reference,'".mysql_real_escape_string($ref)."')>'0'";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
return $row;
}INSTR比在这种情况下更快
或者,如果你需要,你应该正确地使用它:
$query = "SELECT * FROM items WHERE reference LIKE '%".mysql_real_escape_string($ref)."%'";https://stackoverflow.com/questions/17385052
复制相似问题