Foros del Web » Programando para Internet » PHP »

update set da como valor false? o cual es el problema

Estas en el tema de update set da como valor false? o cual es el problema en el foro de PHP en Foros del Web. Hola que tal? espero que todos hayan tenido una linda navidad y que el año nuevo sea aun mejor; mi codigo es el siguiente; es ...
  #1 (permalink)  
Antiguo 28/12/2011, 13:11
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
update set da como valor false? o cual es el problema

Hola que tal? espero que todos hayan tenido una linda navidad y que el año nuevo sea aun mejor;

mi codigo es el siguiente; es muy simple pero no hace lo previsto:

he intentado con if(!$query) y nada; he provado tambien con if($query==false) y nada; siempre me da el texto " Se ha modificado el db"; he buscado un poco sobre el update set, y deberia dar como resultado aunque false;

Gracias de antemano

Código:
function formdb(){
    $email=$_POST["email"];
    $coordenadas=$_POST["coordenadas"];
if((isset($email)) &&(isset($coordenadas)))
    {
        $query=mysql_query("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
        if($query==false)
        {
            echo "<p style='font-size: 18px; margin-top: 20px;'>el e-mail no se encuentra en el database</p>\n";
        }
        else
        {
            echo  "<p style='font-size: 18px; margin-top: 20px;'>se ha modificado el database</p>\n";
        }
    }
}
add_shortcode('formdb','formdb');
  #2 (permalink)  
Antiguo 28/12/2011, 13:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: update set da como valor false? o cual es el problema

Te sugiero leer el manual para saber cuales son los posibles resultados de mysql_query()
http://php.net/mysql_query

Aunque la verdad no entiendo tu problema, si dicha función no te da false es porque simplemente no hay error en la consulta ¡genial!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/12/2011, 13:36
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update set da como valor false? o cual es el problema

$query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
$consulta=mysql_query($query);


if(!$consulta){

falso

}else{

verdadero

}
  #4 (permalink)  
Antiguo 28/12/2011, 13:39
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
Respuesta: update set da como valor false? o cual es el problema

plop!!!

el manual ya lo lei (o mejor dicho ya busque antes de poner la pregunta), y no es la primera vez que uso mysql_query, solamente que es la primera vez que no me da el valor false (o que no me da como resultado lo esperado);

sobre update set el manual dice que o te da un resultado o false, asi que si meto un correo que no se encuentra en el database, al no cumplirse el WHERE, me espero un false; o donde esta el error?
  #5 (permalink)  
Antiguo 28/12/2011, 13:40
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update set da como valor false? o cual es el problema

aaa ya se lo que kieres hacer espera
  #6 (permalink)  
Antiguo 28/12/2011, 13:42
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update set da como valor false? o cual es el problema

$query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
$consulta=mysql_query($query);
$row = mysql_fetch_array($consulta);


if($row['email'] == $email){

verdadero

}else{

falso

}
  #7 (permalink)  
Antiguo 28/12/2011, 13:42
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
Respuesta: update set da como valor false? o cual es el problema

Cita:
Iniciado por webankenovi Ver Mensaje
$query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
$consulta=mysql_query($query);


if(!$consulta){

}
Dices que el "error" estaria en hacer:

$query=mysql_query("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");

en lugar de :

$query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
$consulta=mysql_query($query);

intentare a ver si asi no da el error;

Gracias...
  #8 (permalink)  
Antiguo 28/12/2011, 13:47
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update set da como valor false? o cual es el problema

Cita:
Iniciado por jamie_88 Ver Mensaje
Dices que el "error" estaria en hacer:

$query=mysql_query("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");

en lugar de :

$query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
$consulta=mysql_query($query);

intentare a ver si asi no da el error;

Gracias...
no , no

pero yo lo aria asi

$query2=("SELECT * FROM tabla");
$consulta2=mysql_query($query2);
$row2 = mysql_fetch_array($consulta2);

if($row2['nombre'] == $email){

verdadero al ser iguales entonces si hacemos el update

$query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
$consulta=mysql_query($query);

}else{

echo 'falso , los emails no son iguales';

}
  #9 (permalink)  
Antiguo 28/12/2011, 13:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: update set da como valor false? o cual es el problema

Cita:
Iniciado por jamie_88 Ver Mensaje
[...] al no cumplirse el WHERE, me espero un false; o donde esta el error?
Estás completamente equivocado, la única forma de recibir un FALSE es cuando la consulta provoque un error o simplemente no se ejecute correctamente.

Tu consulta no está mal formulada, por ende no provocará un error.

El hecho de que no encuentre dicho registro no significa que debe dar FALSE, es como si haces un SELECT preguntando por valores que realmente no existen en la tabla.

La consulta se ejecuta pero no así devuelve resultados, que no es lo mismo.

Lo que tu necesitas saber es si hay registros afectados, para eso necesitas usar otras funciones como mysql_num_rows() o mysql_affected_rows()

Por favor, consulta de nuevo el manual.
http://php.net/mysql_affected_rows
http://php.net/mysql_num_rows
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 28/12/2011, 13:52
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update set da como valor false? o cual es el problema

eso es cierto pero con esto le valdria , primero compruebas si existe email y si existe aztualizas muy facil


Código PHP:
Ver original
  1. $query2=("SELECT * FROM tabla");
  2. $consulta2=mysql_query($query2);
  3. $row2 = mysql_fetch_array($consulta2);
  4.  
  5. if($row2['email'] == $email){
  6.  
  7. verdadero al ser iguales entonces si hacemos el update
  8.  
  9. $query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
  10. $consulta=mysql_query($query);
  11.  
  12. }else{
  13.  
  14. echo 'falso , los emails no son iguales';
  15.  
  16. }
  #11 (permalink)  
Antiguo 28/12/2011, 13:52
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
Respuesta: update set da como valor false? o cual es el problema

yo tambien estaba pensando en revisar si la mail esta en el db y espues hacer la query, pero como queria hacerlo "ahorrando" codigo, pense en usar directamente el "false";

en unos momentos hare unas pruebas si no da el resultado esperado, pasare a primero buscar la email y luego hacer el update;

Gracias

Cita:
Iniciado por webankenovi Ver Mensaje
no se mira haber

pero yo lo aria asi

$query2=("SELECT * FROM tabla");
$consulta2=mysql_query($query2);
$row2 = mysql_fetch_array($consulta2);

if($row2['nombre'] == $email){

verdadero al ser iguales entonces si hacemos el update

$query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
$consulta=mysql_query($query);

}else{

echo 'falso , los emails no son iguales';

}
  #12 (permalink)  
Antiguo 28/12/2011, 13:57
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: update set da como valor false? o cual es el problema

Código PHP:
Ver original
  1. function formdb(){
  2.     $email=$_POST["email"];
  3.     $coordenadas=$_POST["coordenadas"];
  4. if((isset($email)) &&(isset($coordenadas)))
  5.     {
  6.         $query=("UPDATE tabla SET coordenadas='$coordenadas' WHERE email='$email'");
  7.         $resultado = mysql_query($query);
  8.        
  9.         if (mysql_num_fields($resultado) == 0) {
  10.   echo "<p style='font-size: 18px; margin-top: 20px;'>el e-mail no se encuentra en el database</p>\n";
  11. }else{
  12.    
  13.      echo  "<p style='font-size: 18px; margin-top: 20px;'>se ha modificado el database</p>\n";
  14.    
  15.     }
  16.  
  17.     }
  18. }
  19. add_shortcode('formdb','formdb');

prueba haber pero van x ay los tiros
mira en el manual

http://es.php.net/manual/es/function...num-fields.php

y como ya te dijieron

http://php.net/mysql_affected_rows
http://php.net/mysql_num_rows

Última edición por webankenovi; 28/12/2011 a las 14:11
  #13 (permalink)  
Antiguo 28/12/2011, 14:17
Avatar de jamie_88  
Fecha de Ingreso: abril-2011
Ubicación: Lima
Mensajes: 161
Antigüedad: 13 años
Puntos: 28
Respuesta: update set da como valor false? o cual es el problema

Gracias a ambos;

resolvi con: if(mysql_affected_rows()==1)

se ve que tengo que perfeccionar el concepto de la diferencia entre una consulta que no se ejecuta y false y una que no da resultado pero true.

Etiquetas: false, set, sql, tabla, update
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 19:10.