Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/08/2011, 05:22
tonimito
 
Fecha de Ingreso: diciembre-2003
Mensajes: 157
Antigüedad: 20 años, 5 meses
Puntos: 1
Foreach dentro de un While

Hola amigos,

Estoy creando una función con una serie de variables que quiero que me compare con los datos de una base de datos, para mostrar los campos o no, según la variable.

El caso es que lo he conseguido, pero al realizar la comparación con las variables predefinidas en array y foreach, me lo repite el número de veces del array construido sobre las variables (en este caso 8). Supongo que viendo el código lo entenderéis mejor:

Código PHP:
function BaseDatos(
    
$Tabla
    
$Campo0,
    
$Campo1,
    
$Campo2,
    
$Campo3,
    
$Campo4,
    
$Campo5,
    
$Campo6,
    
$Campo7){
    
$db mysql_connect($GLOBALS['dbhost'], $GLOBALS['dbuser'], $GLOBALS['dbpassword']) or die("Connection Error: " mysql_error()); mysql_select_db($GLOBALS['dbname']) or die("Error al conectar a la base de datos.");  
    
//MOSTRAMOS TODAS LAS TABLAS  
    
$Sql ="SHOW TABLES";
    
$result mysql_query$Sql ) or die("No se puede ejecutar la consulta: ".mysql_error());
    
$NoCampos = array('C0'=>$Campo0,'C1'=>$Campo1,'C2'=>$Campo2,'C3'=>$Campo3,'C4'=>$Campo4,'C5'=>$Campo5,'C6'=>$Campo6);
        while(
$Rsmysql_fetch_array($result)) {
            
// PARA CADA TABLA DESCRIBIMOS LOS CAMPOS  
            
$Sql2 ="DESCRIBE ".$Rs[0];  
            
$result2 mysql_query$Sql2 ) or die("No se puede ejecutar la consulta: ".mysql_error());
            echo 
'<table width="100%" class="listado_tablas">';
            if(
$Rs[0] == $Tabla){
                echo 
'<tr><th colspan="4">'.$Rs[0].'</th></tr>';
                
//MOSTRAMOS LA INFORMACION DE LOS CAMPOS
                
while($Rs2 mysql_fetch_array($result2)) {
                foreach(
$NoCampos as $v){
                    if((
$Rs2['Field']!=$v)){
                        echo 
'<td width="55%">'.$Rs2['Field'].'</td>';
                        echo 
'<td width="25%">'.$Rs2['Type'].'</td>';
                    }
                }
                echo 
'</tr>';
                }  
                echo 
'</table>';
            }
        }
    } 
Simplemente, no quiero que me lo repita.
¿Alguna ayuda?
__________________
http://www.idilicstudio.com