避免使用相同数据的记录

时间:2018-06-27 04:42:47

标签: php mysql

如果无法创建两个相同名称的记录,将无法正常工作,您可以创建一个具有重复名称的记录

这是控制器

include_once 'model/solucion.php';

public function Guardar()
{
    $this->model->Duplicado($_POST['Nombre']);
        $name = $this->model->resultado2['Nombre'];
        if($name == $_POST['Nombre']){
       die("No se puede crear una solucion con el mismo nombre");
       }else{
        $solucion = new solucion();    
        $solucion->id = $_REQUEST['id'];

        $solucion->Nombre = $_REQUEST['Nombre'];
        $solucion->Tipo = $_REQUEST['Tipo'];
        $solucion->Descripcion = $_REQUEST['Descripcion'];

        $solucion->Pagina = $_FILES['Pagina']['name'];
        }
    header("Location: index.php");
  }    

这是模型

public $resultado2;

public function Duplicado($Nombre)
{
    try {


        $stm = $this->pdo->prepare("SELECT * FROM fallas WHERE Nombre = '$Nombre'");
        $stm->execute();
        $res=$stm->fetch(PDO::FETCH_ASSOC);
        $this->resultado2 = array();
        $i = 0;
        foreach ($res as $row)
        {
            $this->resultado2[$i]['id'] = $row['id'];

            $this->resultado2[$i]['Nombre'] = $row['Nombre'];
            $this->resultado2[$i]['Tipo'] = $row['Tipo'];
            $this->resultado2[$i]['Descripcion'] = $row['Descripcion'];
            $this->resultado2[$i]['Pagina'] = $row['Pagina'];
            $i++;
        }

        } catch (Exception $ex) {
            die($e->getMessage());
        }
}

这是视图

 <ol class="breadcrumb">
 <li><a href="?c=solucion&a=Paginar">Inicio</a></li>
 <li class="active"><?php echo $solucion->id != null ?
 $solucion->Nombre : 'Nueva Solución'; ?></li>
 </ol>

 <form id="frm-alumno" action="?c=solucion&a=Guardar" method="post" enctype="multipart/form-data">
 <input type="hidden" name="id" value="<?php echo $solucion->id; ?>" />

 <div class="form-group">
    <label>Nombre</label>
    <input type="text" name="Nombre" value="<?php echo $solucion->Nombre; ?>" class="form-control" placeholder="Ingrese su nombre" required>
 </div>

 <div class="form-group">
 <label for="exampleFormControlSelect1">Tipo de fallo</label>
 <select class="form-control" id="exampleFormControlSelect1" name="Tipo" value="<?php echo $solucion->Tipo; ?>">
  <option value="software">software</option>
  <option value="hardware">hardware</option>
  <option value="red">red</option>

</select>
</div>
<div class="form-group">
    <label>Descripcion</label>
    <textarea type="text" name="Descripcion" value="<?php echo $solucion->Descripcion; ?>" class="form-control" rows="10" cols="40" required>
    </textarea>
</div>


<div class="form-group">
    <label>Pagina.php</label>
    <input type="file" name="Pagina" value="<?php echo $solucion->Pagina; ?>" >
</div>

<div class="form-group">
    <label >Imagenes</label>

        <input type="file" class="form-control" id="archivo[]" name="archivo[]" multiple="" >

</div>
<hr />
<br>
<div class="text-right">
    <button class="btn btn-success">Guardar</button>
</div>

为了避免创建具有相同名称的重复记录,我必须在控制器中进行哪些更改?

1 个答案:

答案 0 :(得分:0)

您需要传递数组并检查它是否为空。检查下面的代码并运行它,让我知道是否出现任何错误。

Id  Param1          Param2              Val1        Max_Val1_for_each_Id
1  -5.00138282776   2.04990620034e-08   1.738e-05   1.738e-05
1  -4.80147838593   2.01516989762e-08   1.628e-05
1  -4.60159301758   1.98263165885e-08   1.671e-05
1  -4.40133094788   1.94918392538e-08   1.576e-05
1  -4.20143127441   1.91767686175e-08   
2  -5.00141859055   6.88369405921e-09   5.512e-06   5.964e-06
2  -4.80152130126   6.77335965093e-09   5.964e-06
2  -4.60163593292   6.65415056389e-09
3  -5.00138044357   1.16316911658e-08   4.008e-06   8.446e-06
3  -4.80148792267   1.15515588206e-08   7.347e-06
3  -4.60160970681   1.14048361866e-08   8.446e-06
3  -4.40137386322   1.12357021465e-08