Comunidad de diseño web y desarrollo en internet online

PHP - Variables Globales, consulta..

Citar            
MensajeEscrito el 01 Abr 2006 05:11 am
Hola, he creado una funcion en php la cual utilizare en varios casos. Dicha funcion lleva la conexion a la base de datos, la consulta (query), los tipos de resultados (true o false) etc..

La duda viene cuando deseo utilizar variables globales (las cuales llevan la consulta + resultado de la base de datos..)

Ejemplo:

Código :

<?php
function probar()
{
db_conectar();

global $query;
global $envio;
global $resultado;

$query = "consulta sql";
$envio = mysql_query($query);
$resultado = mysql_num_rows($envio);

if(mysql_num_rows($envio) > 0)
return true;
else
return false;
}
?>


Depende del resultado en diferentes casos mostrare diferentes estilos de salidas.. por eso lo hago como funcion.. (para no tener que insertar todo este codigo en cada pagina, etc..)

Pero la pregunta es.. ¿Hago bien en poner como Globales las variables de consulta a sql?

Nta: Otras funciones.. tambien haria lo mismo. en mostrar diferentes estilso de salidas, lo cual.. otra funcion estaria en la misma situacion "con los mismo nombres de variables"

Si estuveise mal en hacer asi.. pues tendria que incluir el codigo de la funcion en cada x sitio.. (y seria cansador)

Gracias y Saludos!

Por zuche

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Abr 2006 06:11 am

Código :

<?php

function query($sql){
  $conex= conectar();  
 if (!$conex){
       return false;
  }
  $result= mysql_query($sql);
  if (!result){
       return false;
  }
  mysql_close();
  return $result;
}
function conectar(){
    $user =      "";
    $pass =   "";
    $server =    "";
    $db = "";
   $conn = mysql_connect($server, $user, $pass);
   if( !$conn ){
            return false;
   }
      if( !mysql_select_db( $db , $conn) ){
            return false;
      }
      return $conn;
}
?>


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 01 Abr 2006 02:16 pm
:roll: Pero que tiene qu ever eso con las variables globales??
Quiza expique mal, lo que digo es si en esos casos como puse el ejemplo.. estaria bien utilizar variables globales para presentar esa funcion en varios casos solo que con diferentes salidas de estilo a mostrar en pantalla.

Ejemplo:

Código :

probar(); //Llamo a la funcion
//Muestro un estilo de salida gracias al resultado.
probar2(); //Funcion parecida que tambien contiene los mismo nombres de variable global
//Muestro otro tipo de estilo de salida gracias al resultado.
probar(); //Llamo otr avez a la misma funcion (primera)
//Muestro otro tipo de estilo de salida gracias al resultado


Como ven, utilizo varias veces una misma funcion lo cual LAS VARIABLES GLOBALES SE REPITEN, surge problemas ?? sobre seguridady eso..??

GRacias y Saludos

Por zuche

46 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Abr 2006 06:08 pm
ergggh no, no hay ningun problema... bueno a ver te explico que hace global en php, no entiendo muy bien tu caso, pero con la explicación te darás respuesta.

Código :

<?php 
$nombre= "Maikel"

function printName(){
     echo $nombre; 
}
function printName2(){
    global $nombre; 
    echo $nombre; 
}
printName();// No imprime nada
printName2();// Imprime Maikel
?>


El uso de variables globales debes evitarlo al maximo, por minimizar el uso de memoria, es mejor trabajar con variables locales, muchos se olvidan de eso, pero es un bueno tenerlo en cuenta.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 02 Abr 2006 02:27 pm
Creo q si mandas por parametro los datos seria mejor...

Concuerdo con Maikel de q las variables globales hay q evitarlas todo lo posible

Por 3w

145 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Abr 2006 07:03 pm
Muchisimas gracias por la info :wink:

Por zuche

46 de clabLevel



 

firefox

 

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