Foros del Web » Programando para Internet » PHP »

Php y Mysql no hacen lo que deberian !

Estas en el tema de Php y Mysql no hacen lo que deberian ! en el foro de PHP en Foros del Web. Ok, no se que estoy haciendo mal, tengo el siguiente codigo. Código PHP: <?php  ini_set ( 'display_errors' , '1' ); ini_set ( 'display_startup_errors' , '1' ...
  #1 (permalink)  
Antiguo 13/10/2009, 08:49
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 14 años, 10 meses
Puntos: 1
Php y Mysql no hacen lo que deberian !

Ok, no se que estoy haciendo mal, tengo el siguiente codigo.
Código PHP:
<?php 
ini_set
('display_errors','1');
ini_set('display_startup_errors','1');
error_reporting (E_ALL E_STRICT); 
include 
'headers.php';

// Verifica si el usuario esta logueado, de no estarlo,
if(!isset($_SESSION['email']) && !isset($_SESSION['passwd']) && !isset($_SESSION['interface'])){
    
// lo redirige a login.php dentro del mismo directorio con ruta absoluta
    
$host  $_SERVER['HTTP_HOST'];
    
$uri   rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
    
$page 'login.php';
    
header("Location: hxxp://$host$uri/$page");
    exit;
}
include 
'configuration/config.php';
include 
'functions.php';

$ResID noSQLi(isset($_GET['id'])? $_GET['id']: '');
$query "SELECT * FROM cas_reservations WHERE reservation_id ='$ResID'";

//Solo para debugin, en produccion debera emitir los errores.
$result mysql_query($query);

if(!
$result){
    die(
'Invalid query: ' mysql_error());
}
$row mysql_fetch_assoc($result);
$ptime =  explode(':',$row['pickupTime'])

?>
El asunto es que al pasarle un $ResID que no esta en la base de datos !! no me hace el die, se sigue ejecutando y la sistanxis esta correcta !! tengo un servidor de desarrollo WAMP con PHP 5.3.0, MySQL 5.1.36 y Apache 2.2.11 que esta haciendo mal, he probado incluso correr el ejemplo de la pagina de php mysql_query y aun asi me ejecuta la consulta.
  #2 (permalink)  
Antiguo 13/10/2009, 08:58
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Php y Mysql no hacen lo que deberian !

Si le pasas un id que no esta en la base de datos, devolvera un resource con 0 resultados, pero la consulta sigue siendo valida, mysql_query solo devuelve false si ocurre un error en la consulta.

Si quieres mostrar un mensaje de error cuando no hay resultados puedes usar mysql_num_rows
  #3 (permalink)  
Antiguo 13/10/2009, 09:54
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Php y Mysql no hacen lo que deberian !

Cita:
Iniciado por darkasecas Ver Mensaje
Si le pasas un id que no esta en la base de datos, devolvera un resource con 0 resultados, pero la consulta sigue siendo valida, mysql_query solo devuelve false si ocurre un error en la consulta.

Si quieres mostrar un mensaje de error cuando no hay resultados puedes usar mysql_num_rows
Si esoty totalmente de acuerdo, se podria hacer algo como
Código PHP:
if($n=mysql_num_rows($result) === FALSE){
exit;

pero, porque en la documentacion de php.net/mysql_query esta ese ejemplo ??


Código PHP:
// CODIGO DE PHP.NET
// Formulate Query
// This is the best way to perform a SQL query
// For more examples, see mysql_real_escape_string()
$query sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
    
mysql_real_escape_string($firstname),
    
mysql_real_escape_string($lastname));

// Perform Query
$result mysql_query($query);

// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if (!$result) {
    
$message  'Invalid query: ' mysql_error() . "\n";
    
$message .= 'Whole query: ' $query;
    die(
$message);

  #4 (permalink)  
Antiguo 13/10/2009, 10:00
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Php y Mysql no hacen lo que deberian !

Porque eso muestra un mensaje de error cuando hay un error en la consulta, como dije antes, aun si tu consulta devuelve 0 resultados sigue siendo valida y mysql_query devuelve el resource, y no FALSE

Y solo para aclarar, con mysql_num_rows seria mas bien algo como
if(mysql_num_rows($result)===0){
//blah
}
  #5 (permalink)  
Antiguo 13/10/2009, 10:12
 
Fecha de Ingreso: junio-2009
Mensajes: 51
Antigüedad: 14 años, 10 meses
Puntos: 1
Respuesta: Php y Mysql no hacen lo que deberian !

sip tienes razon es con ===0 no FALSE grax.. ya he comprendido
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:16.