Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2011, 15:53
Avatar de ojhernandez03
ojhernandez03
 
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 13 años
Puntos: 0
Pregunta Problema al retornar un dato con un foreach

Hola,

Quisiera que me pudieran ayudar con este script que no logro resolver por que me esta retornando la mitad de mi consulta.

tengo una clase llamada funcionesClass.php
y mi pagina principal es LibrosCRUD.php

lo que hago en LibrosCRUD.php es resivir los datos que me envian desde un formulario por POST asi:

LibrosCRUD.php
Código PHP:
if(isset($_POST['BtnBusquedaAVZ'])) {
            
$array_busqAVZ = array(
                    
'codigo'            =>$_POST['CodigoTxt'],
                    
'titulo'            =>$_POST['Titulo_Txt'],
                    
'autor'             =>$_POST['AutorTxt'],
                    
'codigoeditorial'   =>$_POST['Select_editorial'],
                    
'precio'            =>$_POST['PrecioTxt'],
                    
'cantidad'          =>$_POST['CantidadTxt']
            );

            
$Clase_funci->setVariable_txt($array_busqAVZ);
            
$sql_consulta $Clase_funci->BusquedaAVZ();
            
$Clase_Libros->setsql_string($sql_consulta);
            
$resultado $Clase_Libros->Consultar();

lo que hago en funcionesClass.php es recorrer ese arreglo asi:
Código PHP:
public function BusquedaAVZ() {
        
$where "";
        
$variable_Array $this->getVariable_txt();
        
$aninado "";
        
$sql_Array = array();
        
$and " AND ";
        
$sql "";

        foreach (
$variable_Array as $valor=>$var) {
            
$igual "=";
            
            if(
$variable_Array['codigo'] == "") {
                if(
$valor == 'codigo') {
                    
$valor "";
                    
$and "";
                    
$igual "";
                }
            }
            if(
$variable_Array['titulo'] == "") {
                if(
$valor == 'titulo') {
                    
$valor "";
                    
$igual "";
                    
$and "";
                }
            }
            if(
$variable_Array['autor'] == "") {
                if(
$valor == 'autor') {
                    
$valor "";
                    
$igual "";
                    
$and "";
                }
            }
            if(
$variable_Array['codigoeditorial'] == "") {
                if(
$valor == 'codigoeditorial') {
                    
$valor "";
                    
$igual "";
                    
$and "";
                }
            }
            if(
$variable_Array['precio'] == "") {
                if(
$valor == 'precio') {
                    
$valor "";
                    
$igual "";
                    
$and "";
                }
            }
            if(
$variable_Array['cantidad'] == "") {
                if(
$valor == 'cantidad') {
                    
$valor "";
                    
$igual "";
                    
$and "";
                }
            }

            
$num is_numeric($var);
            
$tex is_string($var);

            if(
$var == $num) {
                
$var $var;
            }else if(
$var == $tex) {
                
$igual " LIKE ";
                
$var "%".$var."%";
            }
            if (empty (
$where)) {
                
$where $this->listar()." WHERE ".$valor.$igual.$var;
            }else {
                
$where $and.$valor .$igual.$var." ";
            }
            
$sql $where;
            return 
$sql;
        }
    } 
entonces cuando el usuario me llena los campos digamos ejemplo:
el campo codigo = 1
y el campo titulo = "tu eres"

al retornar $sql me llega asi el query a LibrosCRUD.php:

SELECT * FROM libros WHERE codigo=1

lo cual quiere decir que no me esta retornando bien o que estoy haciendo mal deberia salirme el query asi:

SELECT * FROM libros WHERE codigo=1 AND titulo LIKE %tu eres%


Si alguien me puede ayudar se lo agradeceria.

GRACIAS POR SU COLABORACION...