Foros del Web » Programando para Internet » PHP »

Exite esta funcion en php/mysql

Estas en el tema de Exite esta funcion en php/mysql en el foro de PHP en Foros del Web. Saludos, perdon por el titulo pero no sabia que otra cosa poner, el problema es este, tengo un archivo que recibe una variable get y ...
  #1 (permalink)  
Antiguo 04/01/2012, 15:10
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 14 años, 4 meses
Puntos: 3
Exite esta funcion en php/mysql

Saludos, perdon por el titulo pero no sabia que otra cosa poner, el problema es este, tengo un archivo que recibe una variable get y apartir de ahi hace la conexcion,

Si $_GET[campo] siempre tuviera un valor aria esto:

Código:
$result = mysql_query("SELECT * FROM tabla WHERE campo='$_GET[campo]');
Pero muchas veces $_GET[campo] no vale nada y entonces ahi es el problema si dejara el codigo de arriba me marca error, asi que hago esto:

Código:
if($_GET[categoria]=='') { $_GET[categoria] = '[a-zA-Z0-9]'; }

$result = mysql_query("SELECT * FROM tabla WHERE campo='$_GET[campo]');
Le digo que si no vale nada muestre cualquier valor de campo, la cosa es que quisiera saber si existe en mysql una funcion o en php una variable que haga eso si una variable no vale nada entonces que mueste todo, ademas se que lo que estoy haciendo no muy ortodoxo, si no existe eso que pido que otra cosa puedo usar?
  #2 (permalink)  
Antiguo 04/01/2012, 16:06
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 20 años, 7 meses
Puntos: 15
Respuesta: Exite esta funcion en php/mysql

Primero comprueba tu variable si te viene nulo o con algun valor, en cuyo caso creas dinamicamente tu sentencia sql. Ejemplo

Código PHP:
$sql " SELECT * FROM tabla ";
if(
$_GET['categoria'] != '')
    
$sql .= " WHERE campo = '".$_GET['campo']."' ";

$result mysql_query($sql); 
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #3 (permalink)  
Antiguo 04/01/2012, 17:55
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 14 años, 4 meses
Puntos: 32
Respuesta: Exite esta funcion en php/mysql

en el select le pones LIKE eso lo muestra todo y guarda el valor de get en una variable ejemplo


$texto = $_GET["valor"];
$sql = mysql_query("SELECT * FROM tabla WHERE Campo Like '$texto' ORDE BY ID DESC");
  #4 (permalink)  
Antiguo 04/01/2012, 19:11
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Exite esta funcion en php/mysql

Cita:
Iniciado por stone_neo Ver Mensaje
Código PHP:
$sql " SELECT * FROM tabla ";
if(
$_GET['categoria'] != '')
    
$sql .= " WHERE campo = '".$_GET['campo']."' ";

$result mysql_query($sql); 
Un apunte: a partir de (no recuerdo) version de PHP es necesario comprobar si la variable GET o POST esta definida, si no $_GET['categoria'] != '' tiraria error.

Esta seria la forma correcta:
Código PHP:
$sql " SELECT * FROM tabla ";
if(isset(
$_GET['categoria']) && $_GET['categoria'] != '') {
    
$sql .= " WHERE campo = '".$_GET['campo']."' ";
}
$result mysql_query($sql); 
Un saludo ;)
  #5 (permalink)  
Antiguo 04/01/2012, 20:45
 
Fecha de Ingreso: julio-2010
Mensajes: 158
Antigüedad: 14 años, 4 meses
Puntos: 3
Respuesta: Exite esta funcion en php/mysql

Gracias por responder pero creo no me entendieron en los ejemplos que me muesta evaluar si _GET[] vale algo y si vale nada no se ejecuta, lo que yo quiero es que si $_GET[] no vale nada mueste todos los registros, y si vale algo que mueste ese algo.
  #6 (permalink)  
Antiguo 04/01/2012, 20:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Exite esta funcion en php/mysql

Para eso es el ejemplo que te pusieron, la idea es que evalues si tiene algo y así agregas al WHERE tu condición, en caso de que este vacia, solamente haces el SELECT * FROM tabla.
  #7 (permalink)  
Antiguo 04/01/2012, 22:40
 
Fecha de Ingreso: julio-2010
Mensajes: 197
Antigüedad: 14 años, 4 meses
Puntos: 32
Respuesta: Exite esta funcion en php/mysql

es lo mismo solo que le haces una condicion o haces una consulta como mejor quieras y a la consulta le pones una condicion


ej.:



$texto = $_GET["valor"];

$sql = mysql_query("SELECT * FROM tabla WHERE Campo Like '$texto' ORDER BY ID DESC");
$total=mysql_num_rows($sql);

if($total==0){

$sql2 = mysql_query("SELECT * FROM tabla ORDER BY ID DESC");

}else{

$sql2 = mysql_query("SELECT * FROM tabla WHERE Campo Like '$texto' ORDER BY ID DESC");

}

Etiquetas: funcion, mysql, php-mysql, tabla, variables
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 21:37.