Programación php
Email: Password:


¡Regístrate gratis! | ¿Has perdido tu password?

Home
Blog

En él que podrás informarte de todas las noticias relacionadas con el posicionamiento de páginas web.

Ir al Blog de posicionamiento web



Foro de programación en PHP

Responder el mensaje

Comprobacion de registro

Autor: jquintana
Publicado: 21-3-2011 10:12 AM
Buen día, antes de nada agradecer por tomarse un minuto de su tiempo en ayudarme a solventar esta duda; llevo poco tiempo programando en php soy autodidacta pero me estoy planteando seriamente realizar un buen curso. El problema que tengo es un query que realiza un update através de un registro ya existente en una base de datos; el problema esta en que no logro definir la condiciaonal para que en el caso de que no exista la variable me envie un mensaje diciendo que el registro no existe… me envia el mismo mensaje exista o no el registro, logiacamente si no existe no tiene nada que modificar… Aquí coloco el codigo para que me entiendan mejor


<?php

//Variables
$nombre = trim(strip_tags($_POST["nombre">));
$nsolicitud = trim(strip_tags($_POST["nsolicitud2">));
$ndevueltos = trim(strip_tags($_POST["devueltos">));
$inicial = trim(strip_tags($_POST["ndevolucioni">));
$final = trim(strip_tags($_POST["ndevolucionf">));
$fecha = date("d/m/y");
$hora = date ("h:i");
$subject = "Devolucion de Cheques";
$sendTo = "$nombre@contalfa.com";

//conexion
include("conexion.inc");

//Condicionales Numericos
if (! is_numeric($inicial)){exit("<b>Error: Campo inicial no es valor numerico<b>");}
if (! is_numeric($final)){exit("<b>Error: Campo final no es valor numerico<b>");}

//Base de datos
$hostname = "xxxxxx";
$db_user = "xxxxxx";
$db_password = "xxxxxx" ;
$db_table = "entrega";

// Carga base de datos

$db = mysql_connect($hostname, $db_user, $db_password);
$sql = "UPDATE `entrega` SET `devueltos` = '$ndevueltos',`iniciald` = '$inicial',`finald` = '$final' WHERE `solicitud` = '$nsolicitud';";

//Comprobacion Query
$result = mysql_query($sql ,$db);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
echo "<b>Su Devolucion ha sido Procesado con éxito. Muchas gracias.<b>";
Autor: lol32
Publicado: 26-3-2011 08:17 AM
<?php

//Variables
$nombre = $_POST['nombre'];
$nsolicitud = $_POST['nsolicitud2'];
$ndevueltos = $_POST['devueltos'];
$inicial = $_POST['ndevolucioni'];
$final = $_POST['ndevolucionf'];
$fecha = date("d/m/y");
$hora = date ("h:i");
$subject = "Devolucion de Cheques";
$sendTo = "$nombre@contalfa.com";

//conexion
include("conexion.inc");

//Condicionales Numericos
if (! is_numeric($inicial)){exit("<b>Error: Campo inicial no es valor numerico<b>");}
if (! is_numeric($final)){exit("<b>Error: Campo final no es valor numerico<b>");}

//Base de datos
$hostname = "xxxxxx";
$db_user = "xxxxxx";
$db_password = "xxxxxx" ;
$db_table = "entrega";

// Carga base de datos

$db = mysqli_connect($hostname, $db_user, $db_password);
$sql = mysqli_query("UPDATE `entrega` SET `devueltos` = '$ndevueltos',`iniciald` = '$inicial',`finald` = '$final' WHERE `solicitud` = '$nsolicitud';");

//Comprobacion Query
if (!$sql) {
die('Invalid query: ' . mysqli_error());
}
echo '<b>Su Devolución ha sido procesada con éxito. Muchas gracias.<b>';
else { echo '<b>La solicitud no existe.<b>'; }
?>


Te arreglé un poco el código. Usa mysqli_*, ya que es mucho más seguro que mysql_* y no está obsoleto. No necesitas proteger las variables y están contra SQL injection.
Tampoco necesitas escribir tanto código, esto es bastante sencillo.