Comunidad de diseño web y desarrollo en internet online

consulta a la base de datos/sintaxis

Citar            
MensajeEscrito el 02 Oct 2014 09:11 pm
Hola buenas,

Tengo una duda que es bastante simple yo creo, que tiene que ver con la sintaxis de las consultas MySQL.

Y es que, entiendo que una vez que hemos conectado con el servidor y posteriormente con la base de datos, podemos hacer la consulta a esta última asignando dicha consulta a una variable o no.

Por ejemplo, entiendo que esto es correcto (a mí me funciona al menos):


Código MySQL :

mysql_query("UPDATE tablita
                         SET mail='$_REQUEST[mailnuevo]'
                         WHERE mail='$mail1'",$conexion) or
  die("Problemas en el select:".mysql_error());   



Pero creo que esto es correcto también (también me funciona):


Código MySQL :

   
$registros=mysql_query("UPDATE tablita
                         SET mail='$_REQUEST'
                         WHERE mail='$mail1'",$conexion) or
  die("Problemas en el select:".mysql_error());   


Entiendo que en el segundo caso lo haríamos así por si queremos hacer uso, posteriormente, de algún registro de la tabla, escribiendo, por ejemplo:

Código MySQL :

if ($reg=mysql_fetch_array($registros))
{...   



Entonces, mi duda es, ¿cómo es posible que en el segundo caso se esté haciendo realmente la consulta, cuando, aparentemente, lo que estamos haciendo es "guardarla" en una variable ($registros)? Porque yo lo he visto escrito de esa manera (usando la variable $registros), y concretamente para usar UPDATE, sin el añadido final para "recuperar" algún registro.

¡Gracias de antemano!

Por sharinglanguage

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Oct 2014 06:47 pm
En la variable $registros se guarda el resultado de la function "mysql_query" que es una funcion que hace una consulta.

Si tu quisieras recuperar los datos directamente de esa variable registros, no podrias, por que realmente no los trae la variable registros, en fin te recomiendo jugar :)

para saber que trae una variable escribe este codigo:

Código PHP :

var_dump($variable);



suponiendo el codigo que pones:

Código PHP :

$registros=mysql_query("UPDATE tablita
                         SET mail='$_REQUEST'
                         WHERE mail='$mail1'",$conexion) or
  die("Problemas en el select:".mysql_error());   

var_dump($registros);

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 08 Oct 2014 08:05 pm
Muchas gracias. Utilizaré dicha función para ver qué resultados da, seguro que me ayuda a a resolver la duda.
Aunque ahora mismo mi duda sigue siendo un poco el porqué la función mysql_query se ejecuta cuando aparentemente no la estamos llamando sino que la estamos asignando a la variable $registros.
Pero bueno, aunque no lo veo claro entiendo que sí se llama a la función también (si no no se ejecutaría, digo yo).

Por sharinglanguage

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Oct 2014 09:06 pm
hacer esto es una llamada:

Código PHP :

mysql_query(); 


hacer esto es asignar la respuesta de esa llamada (si la tiene) a una variable:

Código PHP :

$result = mysql_query();


Con el solo hecho de escribir el nombre de la función y sus respectivos paréntesis (y parametros si los lleva), eso hace que se ejecute.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

chrome
Citar            
MensajeEscrito el 08 Oct 2014 09:59 pm
Pues creía que para ejecutar una función había que llamarla.
Podía haber probado algo tan simple como esto:

Código PHP :

<?php
function probar($añado){
return 100+$añado;}
$eso=probar(28);
echo $eso;
?>


para comprobar que, efectivamente, una función se puede ejecutar sin necesariamente llamarla. De todos modos es importante que alguien te lo confirme, así que gracias de nuevo.
Por cierto, ahora que recuerdo, he usado la función var_dump alguna vez, para saber cúal es el tipo de dato en una variable (y el valor, claro).

Por sharinglanguage

21 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Oct 2014 12:12 pm
Lo que la función mysql_query retorna como resultado es un puntero. Un puntero es una variable que contiene una dirección de memoria. Esta función devuelve la posición de memoria donde guardó los registros que se leyeron de la base de datos.

Por eso para recuperar los registros de a uno la función mysql_fetch_array necesita que se le pase como parámetro el puntero (la dirección de memoria) donde están los registros leídos.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 09 Oct 2014 06:22 pm
Muchas gracias. Voy teniendo todo mucho más claro.

Por sharinglanguage

21 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.