2014-02-21 39 views
1

这是我的代码。如何检索并显示joomla模块中的数据结果集。

我想要显示的名字电话号码,但我的代码只显示1号

我想获取和显示从数据库中的一系列数字与forwhile

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; 
     } 

    } 
} 
?> 
+0

你的数据库查询正在使用东西比如'WHERE name ='$ name'',所以也许只有1个名字是匹配的,因此为什么只有1个数字被显示。你还应该使用最新的数据库查询编码标准,并且不要使用'$ _POST' – Lodder

+0

你会得到$ results –

+0

你需要使用$ db-> quote($ name) – Elin

回答

0

改变这种像这样的代码,因为里面的foreach回报率将在第一轮被退回

foreach($results as $row){ 
        $tel[$counter] = $row->Telephone; 

        $counter++; 
       } 
return $tel; 
相关问题