douna1895 2012-04-28 16:40
浏览 19
已采纳

CakePHP 2.0搜索数据库错误

Hi Im trying to create a function that searches my Uploads model and displays the information that is in the that table.

 Notice (8): Undefined variable: uploads [APP/View/Uploads/search.ctp, line 28]
 Warning (2): Invalid argument supplied for foreach() [APP/View/Uploads/search.ctp, line 28]

Before I am even allowed to search I get this error,

This is my search.ctp

        <?php $uploads = $this->requestAction('uploads/search'); 
       ?>

     <div id="search">
  <?php echo $this->Form->create('Upload',array('action'=>'search'));?>
   <fieldset>
    <legend><?php __('Upload Search');?></legend>
    <?php
    echo $this->Form->input('searchupload', array('label' => false, 'class'=>'searchinput')); 

    $options = array(
                     'label' => '',
                     'value' => 'Search',
                     'class' => 'searchbutton'
                            );
    echo $this->Form->end($options);


?>
</fieldset>



    </div>
    <div id="contentbox">
<table>
    <?php foreach($uploads as $upload) : ?>  
        <tr>
            <td><?php echo $upload['Upload']['name'] ?></td>
            <td><?php echo $upload['Upload']['eventname'] ?></td>
        </tr>
    <?php endforeach; ?>
</table>
    </div>

and this is the function in the uploads controller:

   function search() {

        if (!empty($this->data)) {
    $searchstr = $this->data['Upload']['search'];
    $this->set('searchstring', $this->data['Upload']['search']);
    $conditions = array(
        'conditions' => array(
        'or' => array(
            "Upload.name LIKE" => "%$searchstr%",
            "Upload.eventname LIKE" => "%$searchstr%"
        )
        )
    );
   $this->set('uploads', $this->Upload->find('all', $conditions));
     }
        }

Any help would be greatly appreciated!

Thanks in advance

  • 写回答

2条回答 默认 最新

  • dongying195959 2012-04-29 10:50
    关注
        <?php if(!empty($uploads)) : ?>
        <?php foreach($uploads as $upload) : ?>  
            <tr>
                <td><?php echo $upload['Upload']['name'] ?></td>
                <td><?php echo $upload['Upload']['eventname'] ?></td>
            </tr>
        <?php endforeach; ?>
        <?php else : ?>
    
     <div>
       No search matches found
       </div>
    
         <?php endif; ?>
    

    This ensures that if an empty set is found then the no search match found is thrown into the webpage

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算