2011-10-30 6 views
-2

En utilisant codeigniters mvc, j'ai créé un modèle pour ma requête de recherche et je voudrais le renvoyer sous la forme d'un tableau.Retour php en tant que tableau

Je suis un peu perdu, j'ai créé une instruction foreach afin que je puisse exécuter une fonction sur chacune des chaînes. . (Je ne sais pas si elle est la bonne façon de faire, et voudrait maintenant passer comme un tableau à ma variable de données $

Quelqu'un pourrait-il me diriger dans la bonne direction et mettre en évidence ce que je l'ai fait mal:

<?php 

class Search_model extends CI_Model { 

      function search($searchquery) 
    { 

       function supertruncate($text, $searchquery, $characters_before, $characters_after){ 
        $pos = strpos($text, $searchquery); 
    $start = $characters_before < $pos ? $pos - $characters_before : 0; 
    $len = $pos + strlen($word) + $characters_after - $start; 
        $text = substr($text, $start, $len); 
        $last = strrpos($text, ' '); 

        return str_ireplace($word, '<span class="highlight" style="background: #E6E6E6;">' . $word . '</span>', $text); 
} 

    $this->db->from('content'); 
$this->db->like('title', $data); 
$this->db->or_like('content', $data); 
$query = $this->db->get(); 

$characters_before="120"; 
$characters_after="120"; 

foreach ($query ->result() as $row) 
{ 
    $title = strip_tags($row->title); 
    $text = supertruncate(strip_tags($row->content), $searchquery, $characters_before, $characters_after); 

} 

    return $data; 

    } 

} 

Répondre

0
modèle

:

... 
$results = Array(); 
foreach ($query->result() as $row) 
{ 
    $results[] = Array(
     'title' => strip_tags($row->title), 
     'text' => upertruncate(strip_tags($row->content), $searchquery, $characters_before, $characters_after) 
    ); 
} 
return $results; 
... 
contrôleur

:

$this->load->model('Search'); 
$data['search_results'] = $this->Search->Search('Invest'); 
$this->load->view('template', $data); 

vue:

<div id="search_results"> 
    <?php foreach($search_results as $result): ?> 
    <h1><?php echo $result['title']; ?></h1> 
    <div><?php echo $result['text']; ?></div> 
    <?php endforeach; ?> 
</div> 
+0

Génial merci Peter – hairynuggets