Foros del Web » Programando para Internet » PHP »

Limpiar script

Estas en el tema de Limpiar script en el foro de PHP en Foros del Web. Hola gente, queria saber si alguien me puede ayudar a acomodar este codigo. El codigo esta funcionando, el tema es que como lo hice yo ...
  #1 (permalink)  
Antiguo 20/12/2006, 10:57
 
Fecha de Ingreso: marzo-2005
Mensajes: 171
Antigüedad: 19 años, 1 mes
Puntos: 0
Limpiar script

Hola gente, queria saber si alguien me puede ayudar a acomodar este codigo.
El codigo esta funcionando, el tema es que como lo hice yo (que no tengo ni idea de programacion), me parece que quedo muy sucio (especialmente la parte de los if) y se podria mejorar o achicarlo en lineas.
Les pongo el formulario que hace el envio y luego el script en php.
Explico un poco lo que hace el script, toma un numero y guarda los primeros 2, 3 y 4 digitos en variables distintas. Luego se fija en la base de datos si existe el de 4 digitos, sino el de 3 y sino el de 2.
Agradezco cualquier ayuda posible.

Código HTML:
<html>
<body>
<form method="POST" action=sms.php>
<input type=text name=codarea>
<input type=text name=bloque>
<input type=submit name=send>
</form>
</body>
</html> 
Código PHP:
<?
$number 
$_POST["bloque"];
$codarea $_POST["codarea"];

$dos substr($number,0,2);
$tres substr($number,0,3);
$cuatro substr($number,0,4);


    
//database connection settings
    
define('DB_HOST''localhost'); // database host
    
define('DB_USER''lalalalala'); // username
    
define('DB_PASS''turinturin'); // password
    
define('DB_NAME''queseyo'); // database name

$connect = @mysql_connect(DB_HOST,DB_USER,DB_PASS) or die ("Can't connect to database");
mysql_select_db(DB_NAME,$connect);


$sql4 "SELECT * FROM identificador WHERE indicativo='$codarea' AND bloque='$cuatro'";
$sql3 "SELECT * FROM identificador WHERE indicativo='$codarea' AND bloque='$tres'";
$sql2 "SELECT * FROM identificador WHERE indicativo='$codarea' AND bloque='$dos'";


$qrypub = @mysql_query($sql4,$connect) or die ("Wrong Query");
$row mysql_fetch_array($qrypub);
$porahi $row['BLOQUE'];


if (
$porahi){
$a $row['OPERADOR'];
$aa $row['LOCALIDAD'];
$aaa $row['INDICATIVO'];
$aaaa $row['BLOQUE'];
echo 
"$a - $aa - $aaa - $aaaa <br>";
}
else{



$qrypub = @mysql_query($sql3,$connect) or die ("Wrong Query");
$row mysql_fetch_array($qrypub);
$porahi $row['BLOQUE'];


if (
$porahi){

$a $row['OPERADOR'];
$aa $row['LOCALIDAD'];
$aaa $row['INDICATIVO'];
$aaaa $row['BLOQUE'];
echo 
"$a - $aa - $aaa - $aaaa <br>";


}else{


$qrypub = @mysql_query($sql2,$connect) or die ("Wrong Query");
$row mysql_fetch_array($qrypub);
$porahi $row['BLOQUE'];

if (
$porahi){

$a $row['OPERADOR'];
$aa $row['LOCALIDAD'];
$aaa $row['INDICATIVO'];
$aaaa $row['BLOQUE'];
echo 
"$a - $aa - $aaa - $aaaa <br>";


}else{
echo 
"no hay nada";

}}}

mysql_close($connect);
?>
  #2 (permalink)  
Antiguo 20/12/2006, 11:30
 
Fecha de Ingreso: octubre-2004
Ubicación: Barcelona
Mensajes: 195
Antigüedad: 19 años, 6 meses
Puntos: 7
Re: Limpiar script

Se puede convertir en un bucle condicional con for:
Código PHP:
<?
$number 
$_POST["bloque"];
$codarea $_POST["codarea"];
$minimo 2;
$maximo 4;
$encontrado false;

//database connection settings
define('DB_HOST''localhost'); // database host
define('DB_USER''lalalalala'); // username
define('DB_PASS''turinturin'); // password
define('DB_NAME''queseyo'); // database name

$connect = @mysql_connect(DB_HOST,DB_USER,DB_PASS) or die ("Can't connect to database");
mysql_select_db(DB_NAME,$connect);

if (
strlen($number) >= $maximo){
    for (
$i $maximo;$i >= $minimo;$i--){
        
$eltexto substr($number,0,$i);
        
$elsql "SELECT * FROM identificador WHERE indicativo='$codarea' AND bloque= '$eltexto'";
        
        
$qrypub = @mysql_query($elsql,$connect) or die ("Wrong Query");
        
$row mysql_fetch_array($qrypub);
        
$porahi $row['BLOQUE'];
        if (
$porahi){
            
$a $row['OPERADOR'];
            
$aa $row['LOCALIDAD'];
            
$aaa $row['INDICATIVO'];
            
$aaaa $row['BLOQUE'];
            echo 
"$a - $aa - $aaa - $aaaa <br>";
            
$encontrado true;
            break;
        }
    }
} else {
    echo 
"numero corto";
}
if (
$encontrado === false) {
    echo 
"no hay nada";
}

mysql_close($connect);
?>
Lo que he añadido también, muy importante, un control para asegurarnos que la cadena tiene la longitud adecuada. También tendrías que comprobar que los datos sean los que esperas, por lo que dices una secuencia de números... siempre tienes que esperar lo inesperado.
  #3 (permalink)  
Antiguo 20/12/2006, 17:22
 
Fecha de Ingreso: marzo-2005
Mensajes: 171
Antigüedad: 19 años, 1 mes
Puntos: 0
Re: Limpiar script

Bueniiiiiiiiisimo!!!!!!!1
Muchisimas gracias. Me costo un poco entender como trabajaba el script, pero despues de leerle 3 veces ya lo entendi.
Te agradezco tu ayuda. Si precisas plata avisame que te tiro unos pesos.
Saludos
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 03:58.