Nueva pregunta

Pregunta:

Fecha: 26-07-2018 10:52:18 (En Español)

No registrar número de referencia si existe en la base de datos[No resuelta]

Buenas tardes necesito de su ayuda. tengo mi script al 100% funcional pero tengo un problema y es que quiero que si hay un número de referencia igual no cargue los datos . eso es para ingresar un dato y para registrarlo igualmente.
<?php
session_start();
if (!isset($_SESSION['usuario'])) {
	header('Location: ../index.php');
}
// including the database connection file
include_once("config.php");


if(isset($_POST['update']))
{	
	$id = mysqli_real_escape_string($mysqli, $_POST['id']);
	$nombre = mysqli_real_escape_string($mysqli, $_POST['nombre']);
	$apellido = mysqli_real_escape_string($mysqli, $_POST['apellido']);
	$email = mysqli_real_escape_string($mysqli, $_POST['email']);
	$cedula = mysqli_real_escape_string($mysqli, $_POST['cedula']);
	$telefono = mysqli_real_escape_string($mysqli, $_POST['telefono']);
	$banco = mysqli_real_escape_string($mysqli, $_POST['banco']);	
	$fecha = mysqli_real_escape_string($mysqli, $_POST['fecha']);
	$hora = mysqli_real_escape_string($mysqli, $_POST['hora']);
	$referencia = mysqli_real_escape_string($mysqli, $_POST['referencia']);		
	$monto = mysqli_real_escape_string($mysqli, $_POST['monto']);
	$comentario = mysqli_real_escape_string($mysqli, $_POST['comentario']);
	
	// verificando campos vacíos
	if(empty($nombre) || empty($apellido) || empty($email)|| empty($cedula)|| empty($telefono)|| empty($banco)|| empty($fecha)|| empty($hora)|| empty($referencia)|| empty($monto)) {	
			
		if(empty($nombre)) {
			echo "<font color='red'>El campo de nombre está vacío.</font><br/>";
		}
		
		if(empty($apellido)) {
			echo "<font color='red'>El campo de apellido está vacío.</font><br/>";
		}
		
		if(empty($email)) {
			echo "<font color='red'>El campo de email electrónico está vacío.</font><br/>";
		}	
		if(empty($cedula)) {
			echo "<font color='red'>El campo de cedula está vacío.</font><br/>";
		}
		if(empty($telefono)) {
			echo "<font color='red'>El campo de telefono está vacío.</font><br/>";
		}
		if(empty($banco)) {
			echo "<font color='red'>El campo de banco está vacío.</font><br/>";
		}	
		if(empty($fecha)) {
			echo "<font color='red'>El campo de fecha está vacío.</font><br/>";
		}
		if(empty($hora)) {
			echo "<font color='red'>El campo de hora está vacío.</font><br/>";
		}
		if(empty($referencia)) {
			echo "<font color='red'>El campo de referencia está vacío.</font><br/>";
		}
		if(empty($monto)) {
			echo "<font color='red'>El campo de monto está vacío.</font><br/>";

		}if(empty($comentario)) {
			echo "<font color='red'>El campo de comentario está vacío.</font><br/>";
		}
		
	$result = $conn->query("SELECT 1 FROM pagos_pagina WHERE referencia = '$referencia'") or die($conn->error());

    if($result->num_rows > 0) {
        $_SESSION['message'] = 'El numero de referencia ya existe';
	}else {	

		// actualizar la tabla
		$result = mysqli_query($mysqli, "UPDATE pagos_pagina SET nombre='$nombre',apellido='$apellido',email='$email',cedula='$cedula',telefono='$telefono',banco='$banco',fecha='$fecha',hora='$hora',referencia='$referencia',monto='$monto',comentario='$comentario' WHERE id=$id");//
		
		// redirigir a la página de visualización. En nuestro caso, es index.php
		header("Location: pagos_listos.php");
		}
	}
}


?>
<?php
// obtener ID de url
$id = $_GET['id'];
// seleccionando datos asociados con esta identificación particular
$result = mysqli_query($mysqli, ("SELECT * FROM pagos_pagina WHERE id=$id"));

while($row = mysqli_fetch_array($result))
{
	$nombre = $row['nombre'];
	$apellido = $row['apellido'];
	$email = $row['email'];
	$cedula = $row['cedula'];
	$telefono = $row['telefono'];
	$banco = $row['banco'];
	$hora = $row['hora'];
	$fecha = $row['fecha'];
	$referencia = $row['referencia'];
	$monto = $row['monto'];
	$comentario = $row['comentario'];
}
?>
<html>
<head>	
<meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="Josias Almeida">
    <title>Registrar Pagos</title>
    <!-- Bootstrap Core CSS -->
    <link href="../vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <!-- MetisMenu CSS -->
    <link href="../vendor/metisMenu/metisMenu.min.css" rel="stylesheet">
    <!-- Custom CSS -->
    <link href="../dist/css/sb-admin-2.css" rel="stylesheet">
    <!-- Custom Fonts -->
    <link href="../vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
</head>
<body>
<div id="wrapper">
        <!-- Navigation -->
        <nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                    <span class="sr-only"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="inicio.php">Superconex </a>
            </div>
	<a href="pagos_listos.php"><butoon type="button" class="btn btn-success">Regresar</button></a>
	<br/><br/>
	<form name="form1" method="post" action="edit.php">
		<table border="0">
			<tr> 
				<td>Nombre</td>
				<td><input type="text" name="nombre" value="<?php echo $nombre;?>"></td>
			</tr>
			<tr> 
				<td>Apellido</td>
				<td><input type="text" name="apellido" value="<?php echo $apellido;?>"></td>
			</tr>
			<tr> 
				<td>Email</td>
				<td><input type="text" name="email" value="<?php echo $email;?>"></td>
			</tr>
			<tr> 
				<td>Cedula</td>
				<td><input type="text" name="cedula" value="<?php echo $cedula;?>"></td>
			</tr>
			<tr> 
				<td>Telefono</td>
				<td><input type="text" name="telefono" value="<?php echo $telefono;?>"></td>
			</tr>
			<tr> 
				<td>Banco</td>
				<td><input type="text" name="banco" value="<?php echo $banco;?>"></td>
			</tr>
			<tr> 
				<td>Fecha</td>
				<td><input type="text" name="fecha" value="<?php echo $fecha;?>"></td>
			</tr>
			<tr> 
				<td>Hora </td>
				<td><input type="text" name="hora" value="<?php echo $hora;?>"></td>
			</tr>
			<tr> 
				<td>Referencia</td>
				<td><input type="text" name="referencia" value="<?php echo $referencia;?>"></td>
			</tr>
			<tr> 
				<td>Monto</td>
				<td><input type="text" name="monto" value="<?php echo $monto;?>"></td>
			</tr>
			<tr> 
				<td>Comentario</td>
				<td><input type="text" name="comentario" value="<?php echo $comentario;?>"></td>
			</tr>
			<tr>
				<td><input type="hidden" name="id" value=<?php echo $_GET['id'];?>></td>
				<td><input type="submit" name="update" value="actualizar"></td>
			</tr>
		</table>
	</form>
</body>
</html>
no se como  hacerlo ayudaaaaaa

Etiquetas: MySQL - PHP - Pregunta Votos: 0 - Respuestas: 2 - Vistas: 12 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  •  
      0  
     
    Fecha: 27-07-2018 07:16:40 Hola, aclaro que no se mucho de esto pero puedo sugerirte algo, tal vez te sirva de ayuda.
    veo que haces validaciones si los campos vienen vacios, pero veo que esa validacion no la utilizas mas que para sacar un mensaje en pantalla, es decir por mas que este vacio algun campo igual sigue ejecutando el codigo y realiza la actualizacion, tal vez deberias utilizar esa validacion y llegado al punto donde queres actualizar, preguntarte si algun campo viene vacio directamente salir sin ejecutar la actualizacion.

    Otra cosa que yo haria es comentar el codigo que esta despues de la consulta donde comprobas si la referencia existe y sacar un var_dump por pantalla para ver que resultados te trae y trabajar sobre ellos.
    de esta manera no actualizarias la tabla e irias viendo los resultado te trae segun los datos que vayas pasando.

    la validacion de los campos vacios tal vez la podrias utilizar en conjunto si la referencia existe, es decir si el todos los campos estan llenos (si es necesario segun tu codigo) y no existe la referencia recien hacer la actualizacion.
    Espero no haberte confundido.
    saludos.
      Votos: 0 - Link respuesta
     
  • Fecha: 30-07-2018 09:30:42 Josias Almeida, puedes usar algo como esto a nivel de base de datos;

    ALTER IGNORE TABLE 'TB_TABLE'
    ADD UNIQUE INDEX ('CAMPO O CAMPOS');

    Esto hará que el campo sea único, claro que puedes también validar a nivel de programación pero te dejo algo practico y sencillo.
      Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com