【问题标题】:How to retrieve and show resultset of data in a joomla module.如何在 joomla 模块中检索和显示数据结果集。
【发布时间】:2014-03-23 02:40:04
【问题描述】:

这是我的代码。

我想显示 firstnamelastname电话号码,但我的代码只显示 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;
       }

   }
}
?>

【问题讨论】:

  • 您的数据库查询正在使用 WHERE name ='$name' 之类的东西,所以可能只有 1 个名称匹配,因此只显示 1 个数字。您还应该为您的数据库查询使用最新的编码标准,并且不要使用$_POST
  • 你将在 $results 上得到什么
  • 你需要使用$db->quote($name)

标签: php joomla foreach while-loop jinput


【解决方案1】:

把这段代码改成这样,因为foreach里面的return会在第一轮返回

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

                   $counter++;
               }
 return $tel;

【讨论】:

    猜你喜欢
    • 2012-12-31
    • 2017-02-18
    • 2016-02-14
    • 2013-12-13
    • 2011-05-01
    • 1970-01-01
    • 2012-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多