使用codeigniter问题,数据库

时间:2017-03-26 19:06:06

标签: php database codeigniter fetch

我试图运行我在php中创建的程序但在这种情况下我想使用codeigniter运行它。

我一直在努力获取表格而没有成功,这是我的旧代码:

    <?php include('connect.php'); 

?>

<html>
<head>

    <script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

</head>
    <body>

    <div class="container"> 
    <div class="row">
    <div class="col-md-12">



    <a href="estudiante.php"><button type="button" class="btn btn-success">AGREGAR</button></a><br /><br />
        <h2 align="center">TABLA:MATERIAS</h2>
        <input id="busqueda_tabla" type="text">
            <table class="table table-hover" align="center" border="1" cellspacing="0" cellpadding="0" width="700" id="tabla_busqueda">
                <thead>
                    <th>id</th>
                    <th>Carrera</th>
                    <th>Nombre</th>
                    <th>Descripcion</th>
                    <th>Carga horaria (hs)</th>
                    <th>Accion</th>
                </thead>

    <?php

                $sql=mysql_query("SELECT s.*, c.nombre AS carrera FROM materias s LEFT JOIN carreras c ON s.carrera_id=c.id");
                $i=1;
                    while($row=mysql_fetch_array($sql)){
                        echo "<tr>
                                <td>".$i."</td>
                                <td>".$row['carrera']."</td>
                                <td>".$row['nombre']."</td>
                                <td>".$row['descripcion']."</td>
                                <td>".$row['carga_horaria']."</td>
                                <td align='center'>
                                    <a href='editar.php?editar=1&iden=".$row['id']."'><button type='button' class='btn btn-primary'>EDITAR</button></a> |
                                    <a href='borrar.php?borrar=1&iden=".$row['id']."'><button type='button' class='btn btn-danger'>BORRAR</button></a>
                                </td>
                        </tr>";
                        $i++;

                    }
                ?>


            </table>    

        </div>
        </div>
        </div>

    </body>



</html>

这是“连接”文件:

    <?php

    $con=mysql_connect('localhost','root','root')OR die('error : '.mysql_error());
    $db=mysql_select_db('desafio');

    if($db){
        echo '';

    }else{
        echo 'Error :' .mysql_error(); 
    }


?>

但我不知道如何使用Codeigniter进行操作,我无法从表“materias”和“carreras”中获取数据。我曾经想过这样的事情(这只是我的Crudmodel的一个例子):

    <?php

    Class Crudmodel extends CI_Model{

        public function getRecords(){
            $query = $this->db->get('materias');

            if($query -> num_rows() > 0){

                return $query->row();
            }

        }

    }


?>

然后,这是我的控制器文件:

    <?php

    class Home extends CI_Controller{

        public function index(){
            $records = $this->Crudmodel->getRecords();
            $this->load->view('home', ['records'=>$records]);

        }

    }


?>

最后,这是我的主文件(应该包含两个表的信息)

    <?php include('header.php'); ?>

<?php include('footer.php'); ?>


    <div class="container"> 
    <div class="row">
    <div class="col-md-12">

        <h2 align="center">TABLA:MATERIAS</h2>
        <input id="busqueda_tabla" type="text">
            <table class="table table-hover" align="center" border="1" cellspacing="0" cellpadding="0" width="700" id="tabla_busqueda">
                <thead>
                    <th>id</th>
                    <th>Carrera</th>
                    <th>Nombre</th>
                    <th>Descripcion</th>
                    <th>Carga horaria (hs)</th>
                    <th>Accion</th>
                </thead>


<?php

                $sql=mysql_query("SELECT s.*, c.nombre AS carrera FROM materias s LEFT JOIN carreras c ON s.carrera_id=c.id");
                $i=1;
                    while($row=mysql_fetch_array($sql)){
                        echo "<tr>
                                <td>".$i."</td>
                                <td>".$row['carrera']."</td>
                                <td>".$row['nombre']."</td>
                                <td>".$row['descripcion']."</td>
                                <td>".$row['carga_horaria']."</td>
                                <td align='center'>
                                    <a href='editar.php?editar=1&iden=".$row['id']."'><button type='button' class='btn btn-primary'>EDITAR</button></a> |
                                    <a href='borrar.php?borrar=1&iden=".$row['id']."'><button type='button' class='btn btn-danger'>BORRAR</button></a>
                                </td>
                        </tr>";
                        $i++;

                    }
                ?>

            </table>

        </div>
        </div>
        </div>

希望你能帮助我:(

2 个答案:

答案 0 :(得分:1)

选择CI做得很好。

我们需要知道您遇到的错误,哪些文件和行,哪些部分不起作用,以及有关错误的更多详细信息。 但是,我可以提供一个清单进行故障排除。

  1. 请确保您的连接字符串/数据库配置正确。
  2. 在您的模型类中,您是否已调用$ this-&gt; load-&gt; database();在构造方法?
  3. 您是否已将模型加载到控制器中。例如:打电话 $这 - &GT;负载&GT;模型( 'Crudmodel'); 你的控制器构造方法?
  4. 这一页上将详细介绍最简单的步骤: http://www.codeigniter.com/user_guide/tutorial/news_section.html

答案 1 :(得分:0)

  <?php

    Class Crudmodel extends CI_Model{

        public function getRecords(){

            $this->db->select('s.*, c.nombre AS carrera')
                     ->from('materias s')
                     ->join('carreras c', 's.carrera_id = c.id', 'left');
            $q = $this->db->get();

            if($q -> num_rows() > 0){

                return $q->result();
            }

            return false;

        }

    }


?>

此?
编辑:包含手册@ https://www.codeigniter.com/userguide3/database/query_builder.html

以下更多编辑:

<?php

    class Home extends CI_Controller{

        public function index(){
            $this->load->model('Crudmodel');
            $data['records'] = $this->Crudmodel->getRecords();
            $this->load->view('home', $data['records']);

        }
    }
?>

视图:

  <table>
    <?php
        $i=1;
        foreach($records as $record) {
            // build your table view here
            echo "<tr>
                      <td>".$i."</td>
                      <td>".$record->carrera."</td>
                      <td>".$record->nombre."</td>
                      <td>".$record->descripcion."</td>
                      <td>".$record->carga_horaria."</td>
                      <td align='center'>
                         <a href='editar.php?editar=1&iden=".$record->id."'><button type='button' class='btn btn-primary'>EDITAR</button></a> |
                         <a href='borrar.php?borrar=1&iden=".$record->id."'><button type='button' class='btn btn-danger'>BORRAR</button></a>
                      </td>
                  </tr>";
        }
        $i++;
    ?>
    </table>