elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  ayuda PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda PHP  (Leído 1,681 veces)
Frost

Desconectado Desconectado

Mensajes: 260


go Debian


Ver Perfil WWW
ayuda PHP
« en: 24 Diciembre 2008, 15:27 pm »

Holas
necesito que algien porfavor me ayude a limpiar este codigo, no tengo muchos conocimientos de php y esta fue la unica forma que se me ocurrio  :rolleyes: para hacer consultas en tablas distintas (dentro de la misma db)

Código:
switch ($tabla){

/////////////buscar en tabla 1////////////////
case 1:
if($parte=='')
{
echo "<script>alert('debe ingresar al menos un nombre para realizar la busqueda')</script>";
}else{
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

mysql_select_db($dbname, $conn);

$sql = "SELECT * FROM tabla1 WHERE partes like '%".$parte."%' and year= $year";
$result = mysql_query($sql, $conn);
                       
                        /// esta parte llama al codigo q genera la tabla ///
include("while/indice1.php");
mysql_free_result($result);

mysql_close();
}
break;

/////////////buscar en tabla 2////////////////
case 2:
if($parte=='')
{
echo "<script>alert('debe ingresar al menos un nombre para realizar la busqueda')</script>";
}else{
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

mysql_select_db($dbname, $conn);

$sql = "SELECT * FROM tabla2 WHERE partes like '%".$parte."%' and year= $year ";
$result = mysql_query($sql, $conn);

/// esta parte llama al codigo q genera la tabla ///
                        include("while/indice2.php");
mysql_free_result($result);

mysql_close();
}
break;

etc......
en realidad son 12 tablas pero puse las 2 primeras por que es el mismo metodo para todo, pense en poner como variable solamente esta parte donde selecciona la tabla(n)
Código:
$sql = "SELECT * FROM tabla2 WHERE partes like '%".$parte."%' and year= $year ";
pero por algun motivo no pude, el codigo funciona pero imagino que debe haber otra forma de hacerlo algo mas "descente"
bueno eso es todo gracias
saludos

PD: estoy ocupando bluefish para escribirlo


sorry no habia visto el subforo de php  :P (muevanlo porfas)










En línea

cassiani


Desconectado Desconectado

Mensajes: 978


« Anterior | Próximo »


Ver Perfil WWW
Re: ayuda PHP
« Respuesta #1 en: 24 Diciembre 2008, 15:56 pm »

Varias cosas:

1. No se para que tantas tablas con campos similares, si tienes pensado almacenar información diferente en cada una para procedimientos determinados, solo agrégale un campo extra que diferencie el tipo de registro o a quien va dirigido.

2. Llamar las mismas líneas de código una y otra vez, en ese caso convierte eso en función y pásale como parámetro los valores que diferencian un caso de otro y que te devuelva el nombre del archivo a incluir.

3. Yo no usaría JS para mostrar los mensajes en pantalla.  :P


En línea

Frost

Desconectado Desconectado

Mensajes: 260


go Debian


Ver Perfil WWW
Re: ayuda PHP
« Respuesta #2 en: 24 Diciembre 2008, 16:08 pm »

1.- son varias tablas que no me permiten modificar, lo unico que logre q me dejaran hacer es agregar un campo mas "id" y  en realidad son archivos de exel q pase a mysql

2.- efectivamente era lo que tenia pensado pero no logre,  las 12 consultas solo se diferencia en la tabla que selecciona en esta parte:
Código:
$sql = "SELECT * FROM tabla1 WHERE partes like '%".$parte."%' and year= $year";

3.- q recomiendas algo como un
Código:
echo "debe ingresar al menos un nombre para realizar la busqueda";

Gracias =P
En línea

Frost

Desconectado Desconectado

Mensajes: 260


go Debian


Ver Perfil WWW
Re: ayuda PHP
« Respuesta #3 en: 24 Diciembre 2008, 16:13 pm »

uuuuhhhhhhh     :rolleyes:  esto acortaria el codigo un poco
Código:
if($parte=='')
{
echo "aqui el mensaje";
}else{
$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');
mysql_select_db($dbname, $conn);
   
        ///// y aqui el switch ///////
switch ($sql){

case 1:
$sql = "SELECT * FROM tabla1 WHERE partes like '%".$parte."%' and year= $year";
include("while/indice1.php");
case 2:
$sql = "SELECT * FROM tabla2 WHERE partes like '%".$parte."%' and year= $year";
include("while/indice2.php");
case 3:
$sql = "SELECT * FROM tabla3 WHERE partes like '%".$parte."%' and year= $year";       
include("while/indice3.php");
}
$result = mysql_query($sql, $conn);
                       
                        mysql_free_result($result);

mysql_close();
}
« Última modificación: 24 Diciembre 2008, 16:26 pm por Frost » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines