2014-02-21 89 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; 
相關問題