Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/01/2011, 18:29
zonaunlock
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 15 años, 1 mes
Puntos: 0
Pregunta AYUDA CON CONSULTA MYSQL desde php no devuelve longvarchar

hola amigos espero me pudan ayudar tengo este codigo no me esta arrojando o recojiendo las variables almacenadas en mysql ya he probado de todo solo me recoje las variables enteras que son precio y codigo, las otras son long varchar y esas no las recoje no se q este pasando, bueno total aqui les dejo el codigo

clase para mostrar:

Código PHP:
/* supongamos que este es el archivo clases.php*/
class paramostrar{
    var 
$mar,$tipo,$precio,$codigo,$fil;
    function 
paramostrar($marca,$precio,$tipo,$codigo,$fi){
         
$this->mar=$marca;
         
$this->precio=$precio;
         
$this->tipo=$tipo;
         
$this->codigo=$codigo;
         
$this->fil=$fi;
    }
}

class 
conexsql{
  var 
$bd,$host,$user,$pass,$tabla;
      
      function 
conexsql($b,$h,$u,$p,$t){
      
$this->bd=$b;
      
$this->host=$h;
      
$this->user=$u;
      
$this->pass=$p;
      
$this->tabla=$t;
      }
      
}

class 
SStorage implements IteratorCountable  

    private 
$storage = array(); 
    private 
$index 0
  
     function 
rewind() 
     { 
         
rewind($this->storage); 
     } 
      
     function 
valid() 
     { 
         return 
key($this->storage) !== false
     } 
      
     function 
key() 
     { 
         return 
$this->index
     } 
      
     function 
current() 
     { 
         return 
current($this->storage); 
     } 
      
     function 
next() 
     { 
         
next($this->storage); 
         
$this->index++; 
     } 
  
     function 
count() 
     { 
         return 
count($this->storage); 
     } 
  
     function 
contains($obj
     { 
         if (
is_object($obj)) 
         { 
             foreach(
$this->storage as $object
             { 
                 if (
$object === $obj
                 { 
                     return 
true
                 } 
             } 
         } 
         return 
false
     } 
  
     function 
attach($obj
     { 
         if (
is_object($obj) && !$this->contains($obj)) 
         { 
             
$this->storage[] = $obj
         } 
     } 
  
     function 
detach($obj
     { 
         if (
is_object($obj)) 
         { 
             foreach(
$this->storage as $object
            { 
                 if (
$object === $obj
                 { 
                     unset(
$this->storage[$obj]); 
                     
rewind($this->storage); 
                    return; 
                 } 
             } 
         } 
     } 


class 
aobj extends SStorage {
         public function 
borrar() {
                 while( 
$item $this->current() ) {
                        
$this->detach$item );
                        
$item $this->next();
                 }
                 
                 if( 
count$this ) > ) {
                      
$this->detach$this->current() );
                 }
         }

Código PHP:
/*este es el archivo sql_util*/
function filtrar($str){
   if (!isset(
$GLOBALS["carateres_latinos"])){
      
$todas get_html_translation_table(HTML_ENTITIESENT_NOQUOTES);
      
$etiquetas get_html_translation_table(HTML_SPECIALCHARSENT_NOQUOTES);
      
$GLOBALS["carateres_latinos"] = array_diff($todas$etiquetas);
   }
   
$str strtr($str$GLOBALS["carateres_latinos"]);
   return 
$str;
}

function 
conectar($host,$user,$pass){ 
   
$link=mysql_connect($host,$user,$pass) or die ("Error conectando con SQL verifice host,user y passw...");
   return 
$link
}

function 
sdb($db){
    if(
mysql_select_db($db))
    return 
true;
    else return 
false;
    
    } 
Código PHP:
include ("sql_util.php");
include (
"clases.php");

$i=0;
$h='<p><div class="slide">';
$f='</div></p>';
$abro="<div id='fila'>";
$cierro="</div>";
$cc='<div class="clear"></div></div>';

$csql=new conexsql("marks","localhost","root","","items");/*clase incluida en clases.php*/
$link=conectar($csql->host,$csql->user,$csql->pass);
$query="CREATE DATABASE marks";
if(!
sdb($csql->bd)){
   
mysql_query($query,$link);
}
$query="SELECT * FROM items";
$vuelta=mysql_query($query,$link);
$array=new aobj();/*clase incluida en clases.php*/
if(!$vuelta)
exit;

  while(
$fila=mysql_fetch_assoc($vuelta)){

/*aqui el proble que no me recoje la marca pero si le pido precio si*/
    
$out=$fila['marca'];

/*compruebo si esta vacio pero no entra a ninguna d las 2 condiciones*/
      
if(empty($out))
        echo 
"<script>alert('vacio')</script>";
       else
echo 
"<script>alert('no esta vacio mira ".$out." ')</script>";

/*esto es un objeto q tngo en una clase.php y no hay proble*/
       
 
$obj=new paramostrar($fila['marca'],$fila['precio'],$fila['codigo'],$fila['tipo'],$fila['src']);
 
$array->attach($obj);

}

/*esto obvienlo solo verifico que recoji items*/   
$slide=redondear($array->count()/12);

if(
$array->count()<=0){
 echo 
"No hay items para mostrar";
 exit;
}
/*recojo los resultados para comprobar*/
$cab=$array->current();

/*recorro la lista doblemente encadenada que es aobj*/
if($cab.next()!=$cab){
while(
$cab.next()!=$cab){    
$salida.=$cab->current()->marca." ".$cab->current()->precio." ".$cab->current()->marca." ".$cab->current()->tipo." ".$cab->current()->fil;
$cab=$cab.next();
}
}else{
 
$salida.=$cab->current()->marca." ".$cab->current()->precio." ".$cab->current()->marca." ".$cab->current()->tipo." ".$cab->current()->fil;
}

/*imprimo lo que recoji*/
echo filtrar($salida);

/*pero solo imprime los precios y los codigos o sea las variables distintas a varchar longvarchar etc tampoco me muestra que $out esta vacio o algo parecido en el while cuando le pido la marca, ya he verificado la tabla en mysql console y todo bn he hecho la consulta en mysql console SELECT marca FROM items y efectivamente me arroja las marcas*/ 



por favor es urgente como ven esta todo bien en mysql no se que pueda estar pasando por que cuando a $out lo igualo a $fila['precio'] si arroja resultado parece que el problema es con los long varchar en fin agradesco sus prontas opiniones al respecto... un saludo bye.

Última edición por zonaunlock; 16/01/2011 a las 02:24