У меня есть список ссылок и заголовков в моей таблице ссылок, и я пытаюсь использовать предложение IN для их возврата, но запрос никогда не возвращает более одной строки и всегда минимальную строку набора.
SELECT title, url
FROM opsx_links
WHERE linkid IN('61','60','10','24','15','20','30','47')
Это должно вернуть все 8 ссылок, так как они все существуют, но оно возвращает только информацию для элемента 10. Если я удаляю элемент 10 из списка, тогда он будет возвращать только элемент 15 и т. Д.
Я это теряю или как?
Я погуглил свою задницу и не могу найти никого, кто имел эту проблему.
Спасибо.
-V
хорошо, мой плохой, вот код php
public function getLinks ($data) {
$query = $this->db->Fetch ("SELECT title, url
FROM {$this->prefix}links WHERE linkid IN(" . $data . ")");
$result = $this->db->FetchObject ($query);
foreach ($result as $key => $value):
$result->$key = $this->replace_strings ($value);
endforeach;
$this->db->Free ($query);
return $result;
}
Попробовал это за Джерон
$res = array();
while ($result = $this->db->FetchObject ($query)):
$res['title'] = $result->title;
$res['url'] = $result->url;
endwhile;
Теперь возвращается только первая строка вместо минимальной строки.
Что в мире?
Хорошо, после долгих проб и ошибок и помощи от всех вас, гуру, вот ответ.
public function getLinks ($data) {
$query = $this->db->Fetch ("SELECT title, url
FROM {$this->prefix}links WHERE linkid IN(" . $data . ")");
$res = array ();
while ($results = $this->db->FetchArray ($query)):
$obj = new stdClass;
$obj->title = $results['title'];
$obj->url = $this->replace_strings($results['url']);
$res[] = $obj;
endwhile;
$this->db->Free ($query);
return (object)$res;
}
Спасибо за помощь.