【发布时间】:2014-03-23 02:40:04
【问题描述】:
这是我的代码。
我想显示 firstname、lastname 和 电话号码,但我的代码只显示 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 -
你将在 $results 上得到什么
-
你需要使用$db->quote($name)
标签: php joomla foreach while-loop jinput