Nueva pregunta

Pregunta:

Fecha: 11-01-2019 06:52:33 (En Español)

No repetir registros en la base de datos (PHP y Mysql)[No resuelta]

Hola comunidad tengo este código el cual me funciona y me guarda el registro pero necesito que no me lo repita en la base de datos el registro ¿Alguna ayuda en el código que me puedan recomendar? intente poner que sea campo único en la base de datos pero como ya hay registros repetidor no me deja.

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$razonSocial = $_POST["razonsocial"];
$idCliente = $_POST["idCliente"];
$cliente = $_POST["cliente"];
$tipoContenedor = $_POST["tipoContenedor"];
$contenedor1 = trim($_POST["contenedor1"]);
$contenedor1 = strtoupper($contenedor1);
$contenedor2 = trim($_POST["contenedor2"]);
$contenedor2 = strtoupper($contenedor2);
$cartaPorte = $_POST["cartaPorte"];
$referencia = $_POST["referencia"];
$origen = $_POST["origen"];
$destino = $_POST["destino"];
$placa = $_POST["placas"];
$operador = $_POST["operador"];
$tipoOperacion = $_POST["tipoOperacion"];
$fechaAlta = $_POST["fecha"];

if($contenedor2=='X'){
$contenedor2="";
}

$cantCont=1;if($contenedor1<>'' and $contenedor2<>''){$cantCont=2;}

query("INSERT INTO viajes (idCliente, Cliente, idTipoContenedor, Contenedor1, Contenedor2, CantCont,
Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion, FechaAlta) VALUES
(".$idCliente.",'".$cliente."',".$tipoContenedor.",'".$contenedor1."','".$contenedor2."', ".$cantCont.", '".$cartaPorte."',
'".$referencia."','".$origen."', '".$destino."', '".$placa."', '".$operador."', '".$tipoOperacion."', '".$fechaAlta."');");
}
?>

<label class="col-sm-2 control-label">Contenedor 1</label>
<div class="col-sm-4"><input type="text" placeholder="ej: ABCD1234567 sin caracteres ( - , . @)" name="contenedor1" class="form-control m-b" required title="El formato debe tener 4 letras mayúsculas y 7 números" maxlength="11"></div>

<div class="form-group">
<div class="col-sm-4 col-sm-offset-8">
<button class="btn btn-primary" type="submit">Guardar</button>
</div>
</div>
Etiquetas: HTML - PHP Votos: 0 - Respuestas: 12 - Vistas: 14 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 13-01-2019 18:24:47 Hola Isaias:

    Te envío aquí el algoritmo con el código corregido, según mi criterio..! Éxito...

    <?php

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $razonSocial = $_POST["razonsocial"];
    $idCliente = $_POST["idCliente"];
    $cliente = $_POST["cliente"];
    $tipoContenedor = $_POST["tipoContenedor"];
    $contenedor1 = trim($_POST["contenedor1"]);
    $contenedor1 = strtoupper($contenedor1);
    $contenedor2 = trim($_POST["contenedor2"]);
    $contenedor2 = strtoupper($contenedor2);
    $cartaPorte = $_POST["cartaPorte"];
    $referencia = $_POST["referencia"];
    $origen = $_POST["origen"];
    $destino = $_POST["destino"];
    $placa = $_POST["placas"];
    $operador = $_POST["operador"];
    $tipoOperacion = $_POST["tipoOperacion"];
    $fechaAlta = $_POST["fecha"];

    if( $contenedor2=='X' ) { $contenedor2=""; }

    $cantCont=1;

    if( $contenedor1 <> '' and $contenedor2<>'' ) { $cantCont=2; }

    // Primero Ejecuta una Orden de Consulta:
    $consulta = query("SELECT * FROM viajes WHERE idCliente = $idCliente;");

    // Luego cuenta las tuplas o registros resultantes de esa consulta
    // (documenta y usa aquí el método correcto y la sintaxis adecuada...)

    $nrows = num_rows( $consulta );

    // Si hay uno o más de un cliente registrado con ese ID, no se hay la Inserción....
    if ($nrows>=1) {

    echo = 'Ya existe un Cliente con este ID';

    } else {

    // En caso Contrario, SI...

    // Procedimiento para incluir datos en Base de Datos
    ...
    query("INSERT INTO viajes (idCliente, Cliente, idTip
    oContenedor, Contenedor1, Contenedor2, CantCont,
    Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion,
    FechaAlta) VALUES
    (".$idCliente.",'".$cliente."',".$tipoContenedor.",'".$contenedor1."','".$contenedor2."',
    ".$cantCont.", '".$cartaPorte."',
    '".$referencia."','".$origen."', '".$destino."', '".$placa."', '".$operador."',
    '".$tipoOperacion."', '".$fechaAlta."');");
    ...
    // Fin Procedimiento para incluir datos en Base de Datos

    //
    }

    ?>
      Votos: 1 - Link respuesta
     
  • Fecha: 14-01-2019 04:55:44 Que tal Antonio implemente el codigo que me compartiste pero me sale error en el echo = 'Ya existe un Cliente con este ID';

    Error de análisis: error de sintaxis, inesperado '='

    Y si quito el = me sale error en la ultima linea del codigo ¿¿¿???
      Votos: 0 - Link respuesta
     
  • Fecha: 14-01-2019 05:57:54 Ah si: Disculpa Isaias..! Es que normalmente esos mensajes de error para las vistas no los manejo con esa función echo.., sinó con variables para ser mostradas en los formularios de ingreso de datos (que es más complicado).

    La sintaxis correcta, en este caso simple, sería:

    ...

    echo "Ya existe un Cliente con este ID";

    ...

    Recuerda también revisar la sintaxis de los métodos o funciones para hacer la consulta "query" y para contar los registros de esa consulta "num_rows", ya que ellas varían de acuerdo al enfoque (orientado a objetos o a procedimientos) y a los parámetros de conexión a la base de datos..!

    Éxito...
      Votos: 1 - Link respuesta
     
  • Fecha: 14-01-2019 06:26:16 No te preocupes Antonio... te comentaba que si quitaba el "=" en el echo me marcaba error en la ultima linea del codigo que es la etiqueta </html>

    Error de análisis: error de sintaxis, final inesperado del archivo.

    Esto es lo que tengo, cambien en vez de "cliente" fuera "contenedor" no se si afecte algo en eso.

    // Primero Ejecuta una Orden de Consulta:
    $consulta = query("SELECT * FROM viajes WHERE contenedor1 = $contenedor1;");

    $nrows = num_rows( $consulta );

    // Si hay uno o más de un cliente registrado con ese ID, no se hay la Inserción....
    if ($nrows>=1) {

    echo "Ya existe contenedor";

    } else {

    // En caso Contrario, SI...

    // Procedimiento para incluir datos en Base de Datos

    query("INSERT INTO viajes (idCliente, Cliente, idTipoContenedor, Contenedor1, Contenedor2, CantCont,
    Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion, FechaAlta) VALUES
    (".$idCliente.",'".$cliente."',".$tipoContenedor.",'".$contenedor1."','".$contenedor2."', ".$cantCont.", '".$cartaPorte."',
    '".$referencia."','".$origen."', '".$destino."', '".$placa."', '".$operador."', '".$tipoOperacion."', '".$fechaAlta."');");
    }
    ?>
      Votos: 0 - Link respuesta
     
  • Fecha: 14-01-2019 07:55:21 No lo he probado Isaias, ya que lo enviado lo escribí o programé a forma de "algoritmo" (genérico, sin precisar detalles de sintaxis o conexión a la base de datos).

    Entonces, el error que tienes debe ser por algún detalle de esos: Algún punto y coma; corchete o paréntesis faltante... o que está demás por ahí.

    Puedes copiar aquí el archivo completo..? (con el código HTML del formulario de registro).

    Si te es posible, también, favor envíame el código SQL (DML) de la tabla "viajes", para codificarte toda la solución correctamente.

    Saludos...
      Votos: 1 - Link respuesta
     
  • Fecha: 14-01-2019 08:18:36 Esta es la consulta la cual son todas las columnas de la tabla "viajes"

    SELECT idViaje, idCliente, idTipoPoliza,Cliente, idTipoContenedor, Contenedor1, Contenedor2, CantCont, Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion, Pagado, FechaAlta FROM `viajes` WHERE 1

    Asi es como lo tengo el codigo html, si tengo conexion a la base de datos y me agrega la fila con los campos correctos

    <!DOCTYPE html>
    <html>
    <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
        
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
    
        <link rel="shortcut icon" href="favicon.ico" />
        <link href="css/bootstrap.min.css" rel="stylesheet">
        <link href="font-awesome/css/font-awesome.css" rel="stylesheet">
    
        <link href="css/plugins/dataTables/datatables.min.css" rel="stylesheet">
    
        <!-- Toastr style -->
        <link href="css/plugins/toastr/toastr.min.css" rel="stylesheet">
    
        <!-- Gritter -->
        <link href="js/plugins/gritter/jquery.gritter.css" rel="stylesheet">
    
        <link href="css/animate.css" rel="stylesheet">
        <link href="css/style.css" rel="stylesheet">
    </head>
    
    <body class="fixed-sidebar skin-3">
        <div id="wrapper">
        <?php require_once("inc/menu.php"); ?>
    
            <div id="page-wrapper" class="gray-bg dashbard-1">
            <div class="row border-bottom">
            <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
                <div class="navbar-header">
                    <a class="navbar-minimalize minimalize-styl-2 btn btn-success " href="#"><i class="fa fa-bars"></i> </a>
                </div>
                <ul class="nav navbar-top-links navbar-right">
                    <li><span class="m-r-sm text-muted welcome-message">Bienvenido a SE app.</span></li>
                    <li><a href="inc/logout.php"><i class="fa fa-sign-out"></i>Cerrar sesión</a></li>
                </ul>
            </nav>
            </div>
                <div class="row  border-bottom white-bg dashboard-header">
                    <h1 style='font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;font-weight: 400;color: #23282d;font-size: 23px;padding: 9px 0 4px;line-height: 29px;font-weight: 400;'>Nuevo viaje</h1>
                    <ol class="breadcrumb">
                        <li>
                            <a href="index.php">Inicio</a>
                        </li>
                        <li class="active">
                            <strong>Nuevo viaje</strong>
                        </li>
                    </ol>
                </div>
    
                <div class="wrapper wrapper-content animated fadeInRight">
    
    <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        $razonSocial = $_POST["razonsocial"];
        $idCliente = $_POST["idCliente"];
        $cliente = $_POST["cliente"];
        $tipoContenedor = $_POST["tipoContenedor"];
        $contenedor1 = trim($_POST["contenedor1"]);
        $contenedor1 = strtoupper($contenedor1);
        $contenedor2 = trim($_POST["contenedor2"]);
        $contenedor2 = strtoupper($contenedor2);
        $cartaPorte = $_POST["cartaPorte"];
        $referencia = $_POST["referencia"];
        $origen = $_POST["origen"];
        $destino = $_POST["destino"];
        $placa = $_POST["placas"];
        $operador = $_POST["operador"];
        $tipoOperacion = $_POST["tipoOperacion"];
        $fechaAlta = $_POST["fecha"];
        
        if($contenedor2=='X'){
            $contenedor2="";
        }
        
        $cantCont=1;if($contenedor1<>'' and $contenedor2<>''){$cantCont=2;}
        /*echo("INSERT INTO viajes (idCliente, Cliente, idTipoContenedor, Contenedor1, Contenedor2, CantCont,
        Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion, FechaAlta) VALUES
        (".$idCliente.",'".$cliente."',".$tipoContenedor.",'".$contenedor1."','".$contenedor2."', ".$cantCont.", '".$cartaPorte."',
        '".$referencia."','".$origen."', '".$destino."', '".$placa."', '".$operador."', '".$tipoOperacion."', '".$fechaAlta."');");*/
        
        // Primero Ejecuta una Orden de Consulta:	
        $consulta = query("SELECT * FROM viajes WHERE contenedor1 = $contenedor1;");
        
        $nrows = num_rows( $consulta );
    
        // Si hay uno o más de un cliente registrado con ese ID, no se hay la Inserción.... 
        if ($nrows>=1) { 
    
            echo "Ya existe contenedor";
    
        } else {
    
            // En caso Contrario, SI...
    
            // Procedimiento para incluir datos en Base de Datos	
        
        query("INSERT INTO viajes (idCliente, Cliente, idTipoContenedor, Contenedor1, Contenedor2, CantCont,
        Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion, FechaAlta) VALUES
        (".$idCliente.",'".$cliente."',".$tipoContenedor.",'".$contenedor1."','".$contenedor2."', ".$cantCont.", '".$cartaPorte."',
        '".$referencia."','".$origen."', '".$destino."', '".$placa."', '".$operador."', '".$tipoOperacion."', '".$fechaAlta."');");
    }
    ?>
    
                <div class="row">
                    <div class="col-lg-12">
                        <div class="ibox float-e-margins">
                            <div class="ibox-content">
                                <form id="ncliente" name="ncliente" method="post" action="" class="form-horizontal">
                                    <div class="form-group">
                                        <h3 style="margin-left:20px;">Datos del Cliente</h3>
                                        <label class="col-sm-2 control-label">Razon Social</label>
                                        <div class="col-sm-4">
                                            <input name="razonsocial" type="text"  autocomplete="off" required title="Completar campo" class="typeahead_2 form-control" <?php
    if($_COOKIE["lvl"]==2){
        echo 'value="'. $_COOKIE["usuario"] . '" disabled';
    }
    ?> />
                                            <input id="idCliente" name="idCliente" type="hidden" value="<?php
    if($_COOKIE["lvl"]==2){
        echo $_COOKIE["idUsuario"];
    }
    ?>" />
                                        </div>
                                        <label class="col-sm-2 control-label">Fecha</label>
                                        <div class="col-sm-4"><input type="datetime-local" name="fecha" value="<?php echo date('Y-m-d\TH:i');?>" class="form-control"></div>
                                    </div>
    
                                    <div class="hr-line-dashed"></div>
                                    <div class="form-group">
                                        <h3 style="margin-left:20px;">Datos del Contenedor</h3>
                                        <label class="col-sm-2 control-label">Cliente</label>
                                        <div class="col-sm-4"><input type="text" name="cliente" required title="Completar campo" class="form-control m-b" required></div> 
                                        
                                        <label class="col-sm-2 control-label">Tipo de Contenedor</label>
                                        <div class="col-sm-4">
                                            <select name="tipoContenedor" id="tipoContenedor" required title="Seleccionar tipo de contenedor" class="form-control m-b" required>
                                            <option value="0">Selecciona el tipo de contenedor</option><?php $result=query("SELECT * FROM TiposContenedores ORDER BY TipoContenedor ASC;");while($row = mysqli_fetch_array($result)) {?>
                                                <option value="<?php echo $row["idTipoContenedor"]; ?>"><?php echo $row["TipoContenedor"]; ?></option><?php } ?>
                                            </select>
                                        </div>
                                        
                                        <label class="col-sm-2 control-label">Contenedor 1</label>
                                        <div class="col-sm-4"><input type="text" placeholder="ej: ABCD1234567  sin caracteres ( - , . @)" name="contenedor1" class="form-control m-b" required title="El formato debe tener 4 letras mayúsculas y 7 números" maxlength="11"></div>
                                        
                                        <label class="col-sm-2 control-label">Contenedor 2</label>
                                        <div class="col-sm-4"><input type="text" placeholder="ej: ABCD1234567  sin caracteres ( - , . @)" name="contenedor2" class="form-control m-b" ></div>
                                    </div>
    
                                    <div class="hr-line-dashed"></div>
                                    <div class="form-group">
                                        <h3 style="margin-left:20px;">Datos del Viaje</h3>
                                        
                                        <label class="col-sm-2 control-label">No de Carta Porte</label>
                                        <div class="col-sm-4"><input type="text" name="cartaPorte" class="form-control m-b"></div>
                                        <label class="col-sm-2 control-label">No de referencia</label>
                                        <div class="col-sm-4"><input type="text" name="referencia" class="form-control m-b"></div>
    
                                        <label class="col-sm-2 control-label">Origen</label>
                                        <div class="col-sm-4"><input type="text" name="origen" class="form-control m-b"></div>
                                        <label class="col-sm-2 control-label">Destino</label>
                                        <div class="col-sm-4"><input type="text" name="destino" class="form-control m-b"></div>
    
                                        <label class="col-sm-2 control-label">Placas</label>
                                        <div class="col-sm-4"><input type="text" name="placas" class="form-control m-b"></div>
                                        <label class="col-sm-2 control-label">Operador</label>
                                        <div class="col-sm-4"><input type="text" name="operador" class="form-control m-b"></div>
    
                                        <label class="col-sm-2 control-label">Tipo de Operacion</label>
                                        <div class="col-sm-4">
                                            <select name="tipoOperacion" id="tipoOperacion" class="form-control">
                                                <option value="Impo">Impo</option>
                                                <option value="Expo">Expo</option>
                                                <option value="Ambos">Ambos</option>
                                            </select>
                                        </div>
    
                                    </div>
    
                                    <div class="hr-line-dashed"></div>
                                    <div class="form-group">
                                        <div class="col-sm-4 col-sm-offset-8">
                                            <button class="btn btn-primary" type="submit">Guardar</button>
                                        </div>
                                    </div>
                                </form>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
    
            </div>
        </div>
    
        <!-- Mainly scripts -->
        <script src="js/jquery-3.1.1.min.js"></script>
        <script src="js/bootstrap.min.js"></script>
        <script src="js/plugins/metisMenu/jquery.metisMenu.js"></script>
        <script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
        <script src="js/plugins/dataTables/datatables.min.js"></script>
        <!-- Custom and plugin javascript -->
        <script src="js/inspinia.js"></script>
        <script src="js/plugins/pace/pace.min.js"></script>
        <!-- jQuery UI -->
        <script src="js/plugins/jquery-ui/jquery-ui.min.js"></script>
        <script src="js/plugins/typehead/bootstrap3-typeahead.min.js"></script>
        <script src="js/plugins/validate/jquery.validate.min.js"></script>
        <script>
            $(document).ready(function(){
                $.get('inc/json-clientes.php', function(data){
                    $(".typeahead_2").typeahead({ source:data,afterSelect: function (data) {$('#idCliente').val(data.code);}});
                },'json');
    
                $("#ncliente").validate({
                     rules: {
                         razonsocial: {
                             required: true,
                             minlength: 5
                         },
                         cliente: {
                             required: true,
                             minlength: 5
                         },
                         tipoContenedor: {
                             required: true,
                             min: 1
                         },
                         contenedor1: {
                             required: true,
                             minlength: 11
                         }
                         
                     }
                });
            });
        </script>
    </body>
    </html>
      Votos: 0 - Link respuesta
     
  • Fecha: 14-01-2019 11:21:26 Puede intentar creando una llave compuesta pasada en el campo actual y algún otro para que le permita hacer la inserción. Si lo sigue haciendo como hasta ahora nunca se lo va a permitir debido a la duplicidad de datos en el campo.   Votos: 2 - Link respuesta
     
  • Fecha: 14-01-2019 16:52:20 Hola Isaias:

    Te envío el código re-organizado textualmente, para hacerlo más legible.
    En efecto, esto también sirvió para detectar que (tal como te comenté anteriormente) faltaba un corchete o llave en el código php.

    Por otra parte, no me pasaste el código SQL DML (Data definition Language o con el que se crea la tabla) para crear yo la tabla aquí y probar la inserción,
    pero bueno, te lo envío así con el algoritmo corregido.

    Además, veo que la conexión a la base de datos la estás haciendo de manera asíncrona con jQuery y json. Debes verificar, entonces,
    que estos métodos de inserción y consulta que estás usando de esa forma funcionen correctamente;
    así como la función para el contéo de registros de la consulta que se hace antes de la inserción.

    Saludos,

    A. Lemus.

    ********************************

    <?php
    require_once("inc/menu.php");
    ?>

    <?php

    if ($_SERVER["REQUEST_METHOD"] == "POST") {

    $razonSocial = $_POST["razonsocial"];
    $idCliente = $_POST["idCliente"];
    $cliente = $_POST["cliente"];
    $tipoContenedor = $_POST["tipoContenedor"];
    $contenedor1 = trim($_POST["contenedor1"]);
    $contenedor1 = strtoupper($contenedor1);
    $contenedor2 = trim($_POST["contenedor2"]);
    $contenedor2 = strtoupper($contenedor2);
    $cartaPorte = $_POST["cartaPorte"];
    $referencia = $_POST["referencia"];
    $origen = $_POST["origen"];
    $destino = $_POST["destino"];
    $placa = $_POST["placas"];
    $operador = $_POST["operador"];
    $tipoOperacion = $_POST["tipoOperacion"];
    $fechaAlta = $_POST["fecha"];

    if($contenedor2=='X'){ $contenedor2=""; }

    $cantCont=1;

    if($contenedor1<>'' and $contenedor2<>'') { $cantCont=2; }

    /*
    echo("INSERT INTO viajes (idCliente, Cliente, idTipoContenedor, Contenedor1, Contenedor2, CantCont,
    Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion, FechaAlta) VALUES
    (".$idCliente.",'".$cliente."',".$tipoContenedor.",'".$contenedor1."','".$contenedor2."', ".$cantCont.", '".$cartaPorte."',
    '".$referencia."','".$origen."', '".$destino."', '".$placa."', '".$operador."', '".$tipoOperacion."', '".$fechaAlta."');");
    */

    // Primero Ejecuta una Orden de Consulta:
    $consulta = query("SELECT * FROM viajes WHERE contenedor1 = $contenedor1;");

    $nrows = num_rows( $consulta );

    // Si hay uno o más de un cliente registrado con ese ID, no se hace la Inserción....
    if ($nrows>=1) { echo "Ya existe contenedor"; }

    else {
    // En caso Contrario, si no hay clientes registrados con ese ID, se hace la inserción...

    // Procedimiento para incluir datos en Base de Datos
    query("INSERT INTO viajes (idCliente, Cliente, idTipoContenedor, Contenedor1, Contenedor2, CantCont,
    Referencia, CartaPorte, Origen, Destino, Placas, Operador, TipoOperacion, FechaAlta) VALUES
    (".$idCliente.",'".$cliente."',".$tipoContenedor.",'".$contenedor1."','".$contenedor2."', ".$cantCont.", '".$cartaPorte."',
    '".$referencia."','".$origen."', '".$destino."', '".$placa."', '".$operador."', '".$tipoOperacion."', '".$fechaAlta."');");

    }

    }
    //
    ?>
    <!DOCTYPE html>
    <html>

    <head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">

    <link rel="shortcut icon" href="favicon.ico" />
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link href="font-awesome/css/font-awesome.css" rel="stylesheet">

    <link href="css/plugins/dataTables/datatables.min.css" rel="stylesheet">

    <!-- Toastr style -->
    <link href="css/plugins/toastr/toastr.min.css" rel="stylesheet">

    <!-- Gritter -->
    <link href="js/plugins/gritter/jquery.gritter.css" rel="stylesheet">

    <link href="css/animate.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
    </head>

    <body class="fixed-sidebar skin-3">

    <div id="wrapper">

    <div id="page-wrapper" class="gray-bg dashbard-1">

    <div class="row border-bottom">

    <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
    <div class="navbar-header">
    <a class="navbar-minimalize minimalize-styl-2 btn btn-success " href="#"><i class="fa fa-bars"></i> </a>
    </div>
    <ul class="nav navbar-top-links navbar-right">
    <li><span class="m-r-sm text-muted welcome-message">Bienvenido a SE app.</span></li>
    <li><a href="inc/logout.php"><i class="fa fa-sign-out"></i>Cerrar sesión</a></li>
    </ul>
    </nav>

    </div>

    <div class="row border-bottom white-bg dashboard-header">
    <h1 style='font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;font-weight: 400;color: #23282d;font-size: 23px;padding: 9px 0 4px;line-height: 29px;font-weight: 400;'>Nuevo viaje</h1>
    <ol class="breadcrumb">
    <li>
    <a href="index.php">Inicio</a>
    </li>
    <li class="active">
    <strong>Nuevo viaje</strong>
    </li>
    </ol>
    </div>

    <div class="wrapper wrapper-content animated fadeInRight">

    <div class="row">
    <div class="col-lg-12">
    <div class="ibox float-e-margins">
    <div class="ibox-content">

    <form id="ncliente" name="ncliente" method="post" action="" class="form-horizontal">

    <div class="form-group">
    <h3 style="margin-left:20px;">Datos del Cliente</h3>
    <label class="col-sm-2 control-label">Razon Social</label>
    <div class="col-sm-4">
    <input name="razonsocial" type="text" autocomplete="off" required title="Completar campo" class="typeahead_2 form-control"
    <?php
    if($_COOKIE["lvl"]==2){
    echo 'value="'. $_COOKIE["usuario"] . '" disabled';
    }
    ?>
    />

    <input id="idCliente" name="idCliente" type="hidden" value="
    <?php
    if($_COOKIE["lvl"]==2){ echo $_COOKIE["idUsuario"]; }
    ?>
    " />
    </div>

    <label class="col-sm-2 control-label">Fecha</label>

    <div class="col-sm-4"><input type="datetime-local" name="fecha" value="<?php echo date('Y-m-d\TH:i');?>" class="form-control"></div>

    </div>

    <div class="hr-line-dashed"></div>

    <div class="form-group">
    <h3 style="margin-left:20px;">Datos del Contenedor</h3>
    <label class="col-sm-2 control-label">Cliente</label>
    <div class="col-sm-4"><input type="text" name="cliente" required title="Completar campo" class="form-control m-b" required></div>

    <label class="col-sm-2 control-label">Tipo de Contenedor</label>
    <div class="col-sm-4">
    <select name="tipoContenedor" id="tipoContenedor" required title="Seleccionar tipo de contenedor" class="form-control m-b" required>
    <option value="0">Selecciona el tipo de contenedor</option><?php $result=query("SELECT * FROM TiposContenedores ORDER BY TipoContenedor ASC;");while($row = mysqli_fetch_array($result)) {?>
    <option value="<?php echo $row["idTipoContenedor"]; ?>"><?php echo $row["TipoContenedor"]; ?></option><?php } ?>
    </select>
    </div>

    <label class="col-sm-2 control-label">Contenedor 1</label>
    <div class="col-sm-4"><input type="text" placeholder="ej: ABCD1234567 sin caracteres ( - , . @)" name="contenedor1" class="form-control m-b" required title="El formato debe tener 4 letras mayúsculas y 7 números" maxlength="11"></div>

    <label class="col-sm-2 control-label">Contenedor 2</label>
    <div class="col-sm-4"><input type="text" placeholder="ej: ABCD1234567 sin caracteres ( - , . @)" name="contenedor2" class="form-control m-b" ></div>
    </div>

    <div class="hr-line-dashed"></div>
    <div class="form-group">
    <h3 style="margin-left:20px;">Datos del Viaje</h3>

    <label class="col-sm-2 control-label">No de Carta Porte</label>
    <div class="col-sm-4"><input type="text" name="cartaPorte" class="form-control m-b"></div>
    <label class="col-sm-2 control-label">No de referencia</label>
    <div class="col-sm-4"><input type="text" name="referencia" class="form-control m-b"></div>

    <label class="col-sm-2 control-label">Origen</label>
    <div class="col-sm-4"><input type="text" name="origen" class="form-control m-b"></div>
    <label class="col-sm-2 control-label">Destino</label>
    <div class="col-sm-4"><input type="text" name="destino" class="form-control m-b"></div>

    <label class="col-sm-2 control-label">Placas</label>
    <div class="col-sm-4"><input type="text" name="placas" class="form-control m-b"></div>
    <label class="col-sm-2 control-label">Operador</label>
    <div class="col-sm-4"><input type="text" name="operador" class="form-control m-b"></div>

    <label class="col-sm-2 control-label">Tipo de Operacion</label>
    <div class="col-sm-4">
    <select name="tipoOperacion" id="tipoOperacion" class="form-control">
    <option value="Impo">Impo</option>
    <option value="Expo">Expo</option>
    <option value="Ambos">Ambos</option>
    </select>
    </div>

    </div>

    <div class="hr-line-dashed"></div>

    <div class="form-group">
    <div class="col-sm-4 col-sm-offset-8">
    <button class="btn btn-primary" type="submit">Guardar</button>
    </div>
    </div>

    </form>

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

    </div>
    </div>

    <!-- Mainly scripts -->
    <script src="js/jquery-3.1.1.min.js"></script>
    <script src="js/bootstrap.min.js"></script>
    <script src="js/plugins/metisMenu/jquery.metisMenu.js"></script>
    <script src="js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
    <script src="js/plugins/dataTables/datatables.min.js"></script>
    <!-- Custom and plugin javascript -->
    <script src="js/inspinia.js"></script>
    <script src="js/plugins/pace/pace.min.js"></script>
    <!-- jQuery UI -->
    <script src="js/plugins/jquery-ui/jquery-ui.min.js"></script>
    <script src="js/plugins/typehead/bootstrap3-typeahead.min.js"></script>
    <script src="js/plugins/validate/jquery.validate.min.js"></script>
    <script>
    $(document).ready(function(){
    $.get('inc/json-clientes.php', function(data){
    $(".typeahead_2").typeahead({ source:data,afterSelect: function (data) {$('#idCliente').val(data.code);}});
    },'json');

    $("#ncliente").validate({
    rules: {
    razonsocial: {
    required: true,
    minlength: 5
    },
    cliente: {
    required: true,
    minlength: 5
    },
    tipoContenedor: {
    required: true,
    min: 1
    },
    contenedor1: {
    required: true,
    minlength: 11
    }

    }
    });
    });
    </script>
    </body>

    </html>
      Votos: 1 - Link respuesta
     
  • Fecha: 15-01-2019 06:24:23 Que tal antonio efectivamente faltaba la llave, ya me dejo avanzar pero al momento de guardar con un campo ya insertado (para repetirlo) me aparece el siguiente error

    Aviso: Variable no definida: num_rows en C: \ xampp \ htdocs \ app \ nuevo-viaje.php en la línea 94

    Error grave: Error no detectado: el nombre de la función debe ser una cadena en C: \ xampp \ htdocs \ app \ nuevo-viaje.php: 94 Seguimiento de la pila: # 0 {main} arrojado en C: \ xampp \ htdocs \ app \ nuevo- viaje.php en linea 94

    Esta es la estructura de la tabla VIAJES
    7.1. idViaje (primarykey)
    7.1.1. Tipo int (15)
    7.1.2. Cotejamiento (vacio)
    7.1.3. Atributos (vacio)
    7.1.4. Nulo (no)
    7.1.5. Predeterminado (ninguna)
    7.1.6. Comentarios (vacio)
    7.1.7. Extra (AUTO_INCREMENT)
    7.2. idCliente
    7.2.1. Tipo int (15)
    7.2.2. Cotejamiento (vacio)
    7.2.3. Atributos (vacio)
    7.2.4. Nulo (no)
    7.2.5. Predeterminado (ninguna)
    7.2.6. Comentarios (vacio)
    7.2.7. Extras (vacio)
    7.3. idTipoPoliza
    7.3.1. Tipo int (15)
    7.3.2. Cotejamiento (vacio)
    7.3.3. Atributos (vacio)
    7.3.4. Nulo (no)
    7.3.5. Predeterminado (ninguna)
    7.3.6. Comentarios (vacio)
    7.3.7. Extra (vacio)
    7.4. Cliente
    7.4.1. Tipo varchar (50)
    7.4.2. Cotejamiento (latin1_swedish_ci)
    7.4.3. Atributos (vacio)
    7.4.4. Nulo (no)
    7.4.5. Predeterminado (ninguna)
    7.4.6. Comentarios (vacio)
    7.4.7. Extras (vacio)
    7.5. idTipoContenedor
    7.5.1. Tipo int (11)
    7.5.2. Cotejamiento (vacio)
    7.5.3. Atributos (vacio)
    7.5.4. Nulo (no)
    7.5.5. Predeterminado (ninguna)
    7.5.6. Comentarios (vacio)
    7.5.7. Extras (vacio)
    7.6. Contenedor1
    7.6.1. Tipo varchar (45)
    7.6.2. Cotejamiento (latin1_swedish_ci)
    7.6.3. Atributos (vacio)
    7.6.4. Nulo (no)
    7.6.5. Predeterminado (ninguna)
    7.6.6. Comentarios (vacio)
    7.6.7. Extra (vacio)
    7.7. Contenedor2
    7.7.1. Tipo varchar (45)
    7.7.2. Cotejamiento (latin1_swedish_ci)
    7.7.3. Atributos (vacio)
    7.7.4. Nulo (no)
    7.7.5. Predeterminado (ninguna)
    7.7.6. Comentarios (vacio)
    7.7.7. Extra (vacio)
    7.8. CantCont
    7.8.1. Tipo varchar (45)
    7.8.2. Cotejamiento (latin1_swedish_ci)
    7.8.3. Atributos (vacio)
    7.8.4. Nulo (no)
    7.8.5. Predeterminado (ninguna)
    7.8.6. Comentarios (vacio)
    7.8.7. Extra (vacio)
    7.9. Referencia
    7.9.1. Tipo varchar (45)
    7.9.2. Cotejamiento (latin1_swedish_ci)
    7.9.3. Atributos (vacio)
    7.9.4. Nulo (no)
    7.9.5. Predeterminado (ninguna)
    7.9.6. Comentarios (vacio)
    7.9.7. Extra (vacio)
    7.10. CartaPorte
    7.10.1. Tipo varchar (45)
    7.10.2. Cotejamiento (latin1_swedish_ci)
    7.10.3. Atributos (vacio)
    7.10.4. Nulo (no)
    7.10.5. Predeterminado (ninguna)
    7.10.6. Comentarios (vacio)
    7.10.7. Extra (vacio)
    7.11. Origen
    7.11.1. Tipo varchar (45)
    7.11.2. Cotejamiento (latin1_swedish_ci)
    7.11.3. Atributos (vacio)
    7.11.4. Nulo (no)
    7.11.5. Predeterminado (ninguna)
    7.11.6. Comentarios (vacio)
    7.11.7. Extra (vacio)
    7.12. Destino
    7.12.1. Tipo varchar (45)
    7.12.2. Cotejamiento (latin1_swedish_ci)
    7.12.3. Atributos (vacio)
    7.12.4. Nulo (no)
    7.12.5. Predeterminado (ninguna)
    7.12.6. Comentarios (vacio)
    7.12.7. Extra (vacio)
    7.13. Placas
    7.13.1. Tipo varchar (45)
    7.13.2. Cotejamiento (latin1_swedish_ci)
    7.13.3. Atributos (vacio)
    7.13.4. Nulo (no)
    7.13.5. Predeterminado (ninguna)
    7.13.6. Comentarios (vacio)
    7.13.7. Extra (vacio)
    7.14. Operador
    7.14.1. Tipo varchar (45)
    7.14.2. Cotejamiento (latin1_swedish_ci)
    7.14.3. Atributos (vacio)
    7.14.4. Nulo (no)
    7.14.5. Predeterminado (ninguna)
    7.14.6. Comentarios (vacio)
    7.14.7. Extra (vacio)
    7.15. TipoOperacion
    7.15.1. Tipo varchar (45)
    7.15.2. Cotejamiento (latin1_swedish_ci)
    7.15.3. Atributos (vacio)
    7.15.4. Nulo (no)
    7.15.5. Predeterminado (ninguna)
    7.15.6. Comentarios (vacio)
    7.15.7. Extra (vacio)
    7.16. Pegado
    7.16.1. Tipo int (15)
    7.16.2. Cotejamiento (vacio)
    7.16.3. Atributos (vacio)
    7.16.4. Nulo (no)
    7.16.5. Predeterminado (ninguna)
    7.16.6. Comentarios (vacio)
    7.16.7. Extra (vacio)
    7.17. FechaAlta
    7.17.1. Tipo (datetime)
    7.17.2. Cotejamiento (vacio)
    7.17.3. Atributos (vacio)
    7.17.4. Nulo (no)
    7.17.5. Predeterminado (ninguna)
    7.17.6. Comentarios (vacio)
    7.17.7. Extra (vacio)
      Votos: 0 - Link respuesta
     
  • Fecha: 15-01-2019 12:11:23 Si..! Casualmente esa fué una de las cosas de las que te advertí, Isaias, en mis post anterior:
    que debías verificar la sintaxis y uso de esa función para el contéo de registros, que se hace antes de la inserción...

    Favor prueba con "mysqili_num_rows" (en vez de "num_rows").

    Como ella depende del conector (o de la conexión a la base de datos, que no la visualizo en el código que enviaste) debes revisar entonces su documentación en

    http://php.net/manual/es/mysqli-result.num-rows.php

    En caso de que no logres implementarla correctamente (que no te cuente los registros o las tuplas de la consulta previa), sustitúyeya entonces con este "algoritmo" de conteo:

    ...

    $consulta = query("SELECT * FROM viajes WHERE contenedor1 = $contenedor1;");

    $nrows = 0;

    while($row = mysqli_fetch_array($consulta)) {

    $nrows = $nrows + 1;

    ...

    Éxito..!
      Votos: 0 - Link respuesta
     
  • Fecha: 15-01-2019 12:34:18 Intente "mysqili_num_rows" y me sale el mismo error que con "num_rows"

    Con el nuevo algoritmo "while" me da el siguiente error
    Advertencia: mysqli_fetch_array () espera que el parámetro 1 sea mysqli_result, booleano dado en C: \ xampp \ htdocs \ app \ nuevo-viaje.php en la línea 95

    Me podre a revisar el manual que me recomendaste, igual si tienes alguna otra ayuda con ese error te lo agradeceré mucho.
      Votos: 0 - Link respuesta
     
  • Fecha: 17-01-2019 06:23:34 Me di cuenta en el código que requiero de esa función y ahí tiene una función la cual dice que me regresa la cantidad de registros encontrados (linea 45) ¿Sera que por eso me marca como indefinida la variable num_rows?

    <?php
        require_once("inc/functions.php");
        if(!isset($_COOKIE["idUsuario"])) {
            header("Location: login.php");
        }
    ?>
    <!DOCTYPE html>

    ___________________________________________________________________________

    <?php
    //ini_set('display_errors', 1);
    //ini_set('display_startup_errors', 1);
    //error_reporting(E_ALL);
    
    $siteURL = "http://segurosesquivel.com.mx/";
    $emailHost= "mail.segurosesquivel.com.mx";
    $email = "sistema@segurosesquivel.com.mx";
    $emailPass = "nnIPd8N{e2az";
    $emailPort = "465";
    
    //error_reporting(0);
    date_default_timezone_set("America/Mexico_City");
    
    if (!isset($link)) {$link = false;}
    
    // getMyConection()
    function getMyConection($conexion) {
    	global $link;
    	
    	$db_host = "containerallrisk.com";
    	$db_name = "containerallrisk_app";
    	$db_user = "containerallrisk_appsa";
    	$db_pass = "IvAwe{[EI=Rj";
    
    	$link = mysqli_connect($db_host, $db_user, $db_pass, $db_name) or die("No se pudo conectar a la base de datos...");
    	return $link;
    	mysqli_query("SET NAMES utf8");
    
    }
    
    // closeConection()
    function closeConection(){
    	global $link;
    	if($link != false)
    	{
    		mysqli_close($link);
    	}
    	else
    	{
    		$link = false;
    	}
    }
    
    // Muestra la cantidad de registros($result)
    function CantidadRegistros($result)
    {
    	return mysqli_num_rows($result);
    }
    
    // query($query)
    function query($query, $conexion=0)
    {
    	return mysqli_query(getMyConection($conexion), $query);
    }
    
    function sql_special_chars($string)
    {
    	$string = str_replace("\'", "'", $string);
    	$string = str_replace("'", "''", $string);
    	$string = htmlspecialchars($string);
    	return $string;
    }
    
    //obtiene la fecha de formato largo por ejemplo: Jueves, 17 de Mayo de 2012
    function longDateFormat()
    {
    	setlocale(LC_TIME, 'es_MX');
    	
    	$day = strftime('%e', mktime(0,0,0,date("m"),date("d"),date("Y")));
    	$weekday = strftime('%A', mktime(0,0,0,date("m"),date("d"),date("Y")));
    	$monthname = strftime('%B', mktime(0,0,0,date("m"),date("d"),date("Y")));
    	$year = strftime('%Y', mktime(0,0,0,date("m"),date("d"),date("Y")));
      
    	$fecha = "<p>" . ucfirst($weekday) . ", " . $day . " de " . ucfirst($monthname) . " de " . $year . "</p>";
    	
    	return $fecha;
    }
    
    //Genera aleatoriamente una cadena de 12 caracteres (por default) con letras minusculas, mayusculas y numeros
    //Esta funcion es usada para renovar la contraseña una vez que el usuario perdió la suya
    function randomPassword($numberOfCharacters=12) {
        $alphabet = "abcdefghijklmnopqrstuwxyzABCDEFGHIJKLMNOPQRSTUWXYZ0123456789";
        $pass = array(); //remember to declare $pass as an array
        $alphaLength = strlen($alphabet) - 1; //put the length -1 in cache
        for ($i = 0; $i < $numberOfCharacters; $i++) {
            $n = rand(0, $alphaLength);
            $pass[] = $alphabet[$n];
        }
        return implode($pass); //turn the array into a string
    }
    ?>
      Votos: 0 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión