Отображение единственной строки в codeigniter, интегрированной с facebox

Я недавно использовал facebox, и все в порядке. Но когда я использую его с codeigniter, это так сложно для меня. В этом коде, который я положил в codeigniter:

<a rel="facebox" href="<?php echo site_url('logincon/vieworders/');?>">View Orders</a>

Я намерен передать его с определенным идентификатором, как этот код ниже, который не работает в CI:

<a rel="facebox" href="echo site_url('logincon/vieworders'))" id='.$row['reservation_id'].' title="Click To View Orders">View Orders</a>

Что есть что?

Вот мои коды:

В моем контроллере:

public function vieworders()
{
// $this->data['date'] = $this->loginmod->getdate();
$data['date'] = $this->loginmod->getdate();
$data['name'] = $this->loginmod->getimage();
$data['order'] = $this->loginmod->getorderdetail();
$data['reservation'] = $this->loginmod->getdesign();

$this->load->view('vieworders', $data);

}

В моей модели:

public function getdate(){
$q=$this->db->get('orders_date');
if($q->num_rows()>0){
return $q->result_array();
}
}
public function getimage() {
$query = $this->db->get("image");
if($query->num_rows()>0){
return $query->result_array();
}
}
public function getorderdetail() {
$query = $this->db->get("order_detail");
if($query->num_rows()>0){
return $query->result_array();
}
}
public function getdesign()
{
$query = $this->db->get('reservation');
if($query->num_rows()>0){
return $query->result_array();
}
}

И на мой взгляд:

<table cellpadding="1" cellspacing="1" id="resultTable">
<thead>
<tr>
<th  style="border-left: 1px solid #C1DAD7">Order Date </th>
<th>Photo size </th>
<th> Quantity </th>

</tr>
</thead>
<tbody>
<tr class="record">
<?php foreach ($date as $da) { ?>
<td><div align="left"><?php echo $da['date']; ?></div></td>
<?php } ?>

<?php foreach ($name as $images) { ?>
<td style="border-left: 1px solid #C1DAD7;"><?php echo $images['name']; ?> </td>
<?php } ?>

<?php foreach ($order as $detail) { ?>
<td><?php
echo $detail['quantity'];?></td>
<?php } ?>
</tr>
</tbody>

Вывод этих, он показывает всю дату, имя и количество, которые находятся в базе данных. Это моя проблема, я хочу только одну строку или только один вывод на каждый запрос.

1

Решение

Насколько я вижу, метод, который вы используете, трудно поддерживать, когда вы углубляетесь в свой проект, потому что создание функции для каждой таблицы в файле модели не очень хорошая идея, это займет много времени, что если вы напишите обобщенную функцию, которая Лучше работать и легко запомнить.
Теперь доходит до того, что вы создали четыре функции, и я собираюсь создать две универсальные функции вместо четырех, и это будет ценно в вашем проекте и также решит вашу проблему.

  1. модель

Функция для возврата данных одной строки

function get_record($table, $where=NULL)
{
if(!empty($where))
{
$this->db->where($where);
}
$query=$this->db->get($table);
if($query->num_rows>0)
{
return $query->row();
}
else
{
return 0;
}
}

Функция для возврата данных нескольких строк

function get_records($table, $where=NULL)
{
if(!empty($where))
{
$this->db->where($where);
}
$query=$this->db->get($table);
if($query->num_rows>0)
{
return $query->result();
}
else
{
return array();
}
}
  1. контроллер

Теперь зависит от вашей погоды, чтобы получить набор результатов (полные записи) или выбрать только одну строку, чтобы увидеть, насколько это просто.

Для единичных результатов

     $data['date'] = $this->loginmod->get_record('orders_date');
$data['name'] = $this->loginmod->get_record('image');
$data['order'] = $this->loginmod->get_record('order_detail');
$data['reservation'] = $this->loginmod->get_record('reservation');

Теперь для нескольких записей

    $data['date'] = $this->loginmod->get_records('orders_date');
$data['name'] = $this->loginmod->get_records('image');
$data['order'] = $this->loginmod->get_records('order_detail');
$data['reservation'] = $this->loginmod->get_records('reservation');

Посмотреть

Это для нескольких записей, если вы используете функцию get_records, поэтому вы должны использовать foreach для циклического просмотра каждого результата и отображения его здесь.

<tr class="record">
<?php foreach ($date as $da) { ?>
<td><div align="left"><?php echo $da->date; ?></div></td>
<?php } ?>

<?php foreach ($name as $images) { ?>
<td style="border-left: 1px solid #C1DAD7;"><?php echo $images->name; ?> </td>
<?php } ?>

<?php foreach ($order as $detail) { ?>
<td><?php
echo $detail->quantity;?></td>
<?php } ?>
<?php foreach ($reservation as $row) { ?>
<td>
<a rel="facebox" href="<?=site_url('logincon/vieworders')?>" id='<?=$row['reservation_id']?>' title="Click To View Orders">View Orders</a>
</td>
<?php } ?>
</tr>

Но если вы использовали функцию get_record, вам больше не нужен цикл foreach, просто проверьте if (isset ()) и выведите столбец.

    <?php if(isset($name)) { ?>
<td style="border-left: 1px solid #C1DAD7;"><?php echo $name['name']; ?> </td>
<?php } ?>

<?php if(isset($order)) { ?>
<td><?php
echo $order['quantity'];?></td>
<?php } ?><?php if(isset($reservation)) { ?>
<td>
<a rel="facebox" href="<?=site_url('logincon/vieworders')?>" id='<?=$row['reservation_id']?>' title="Click To View Orders">View Orders</a>
</td>
<?php } ?>

Я надеюсь, что это поможет вам в вашем проекте, а также прояснит вашу концепцию создания универсальных функций вместо создания функций для каждой отдельной таблицы.

1

Другие решения

Ваши таблицы базы данных должны быть связаны.

пример:
1) резервирование (rervation_id, name, …)
2) orders_date (date_id, booking_id, …)
3) изображение (image_id, booking_id, …)
4) order_detail (detail_id, booking_id, …)

<table cellpadding="1" cellspacing="1" id="resultTable">
<thead>
<tr>
<th  style="border-left: 1px solid #C1DAD7">Order Date </th>
<th>Photo size </th>
<th> Quantity </th>

</tr>
</thead>
<tbody>
<tr class="record">
<?php

if ( @$reservations )
{
foreach ( $reservations as $reservation )
{
$reservation_date = $reservation_image = $reservation_detail = "";

if ( @$dates )
{
foreach ( $dates as $date )
{
if ( $date->reservation_id == $reservation->reservation_id )
{
$reservation_date = $date->name...(or anything)
}
}
}

if ( @$images )
{
foreach ( $images as $image )
{
if ( $image->reservation_id == $reservation->reservation_id )
{
$reservation_image = $images->name...(or anything)
}
}
}

if ( @$details )
{
foreach ( $details as $detail )
{
if ( $detail->reservation_id == $reservation->reservation_id )
{
$reservation_detail = $detail->name...(or anything)
}
}
}echo '<tr class="record">'
. '<td><div align="left">'.$reservation_date.'</div></td>'
. '<td style="border-left: 1px solid #C1DAD7;">'.$reservation_image.'</td>'
. '<td>'.$reservation_detail.'</td>'
.'</tr>';

}
}

?>
</tr>
</tbody>

и сделал это

<a rel="facebox" href="echo site_url('logincon/vieworders'))" id='.$row['reservation_id'].' title="Click To View Orders">View Orders</a>

использование

<?= anchor(site_url('logincon/vieworders'), 'View Orders', 'id='.$row["reservation_id"].' title="Click To View Orders"') ?>

редактировать:

модель

<?php

public function getdate()
{
$q=$this->db->get('orders_date');

$q = $this->db->query("SELECT field1, field2, date AS field3");

if ( $q->num_rows() > 0 )
{
return $q->result_array();
}
}

?>

Посмотреть

<tbody>
<tr class="record">
<?php foreach ($date as $da) { ?>
<td><div align="left"><?php echo $da['field3']; ?></div></td>
<?php } ?>
...
</tr>
</tbody>
0

По вопросам рекламы [email protected]