2014-02-21 6 views
1

이것은 내 코드입니다.joomla 모듈에서 데이터의 결과 집합을 검색하고 표시하는 방법.

은 내가 FIRSTNAME, LASTNAME전화 번호를 표시하려면,하지만 내 코드는 한 수 내가 얻을 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

$ 결과에 무엇을 가져갈 지 –

+0

$ db-> quote ($ name)를 사용해야합니다. – Elin

답변

0

변화 같은 코드, foreach는 내부 수익률 처음 차례로 반환되기 때문에

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

        $counter++; 
       } 
return $tel;