Foros del Web » Programando para Internet » PHP »

PHP OO Problema al retornar un dato con un foreach

Estas en el tema de Problema al retornar un dato con un foreach en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 31/05/2011, 15:53
Avatar de ojhernandez03  
Fecha de Ingreso: mayo-2011
Mensajes: 1
Antigüedad: 12 años, 10 meses
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...

Etiquetas: dato, foreach
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 22:58.