1
这是我的代码。如何检索并显示joomla模块中的数据结果集。
我想要显示的名字,姓和电话号码,但我的代码只显示1号
我想获取和显示从数据库中的一系列数字与for
和while
。
mod_phonebook.php
<?php
defined('_JEXEC') or die('Restricted access');
$doc = JFactory::getDocument();
$doc->addStyleSheet(JURI::root().'modules/mod_phonebook/css/main.css');
require_once(dirname(__FILE__).DS.'helper.php');
if(isset($_POST['search'])){
$jinput = JFactory::getApplication()->input;
$name = $jinput->get('name','','STRING');
$lname = $jinput->get('lname','','STRING');
$tell = $jinput->get('tell','','INT');
if(myphonebook::searchdata($name,$lname,$tell))
{
echo "<p class='lbl'>$name:نتایج جستجو شامل</p>";
echo "<p class='lbl'>شماره پیدا شده=".myphonebook::searchdata($name,$lname,$tell).'</p><br>';
}
else
{
echo "شماره ای به این نام پیدا نشد";
}
}
else
{
require(JMOduleHelper::getLayoutPath('mod_phonebook'));
}
?>
helper.php
<?php
defined('_JEXEC') or die('Restricted access');
class myphonebook{
public static function searchdata($name,$lname,$tell){
$db = JFactory::getDBO();
$query = "SELECT * from `phonebook` WHERE `name` ='$name' or `Family`='$lname' or `Numberofroom`='$tell'";
$db->setQuery($query);
$results = $db->loadObjectList();
if($db->query())
{
foreach($results as $row){
$tel = $row->Telephone;
return $tel;
$counter++;
}
}
else
{
return false;
}
}
}
?>
你的数据库查询正在使用东西比如'WHERE name ='$ name'',所以也许只有1个名字是匹配的,因此为什么只有1个数字被显示。你还应该使用最新的数据库查询编码标准,并且不要使用'$ _POST' – Lodder
你会得到$ results –
你需要使用$ db-> quote($ name) – Elin