Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

AYUDA CON CONSULTA MYSQL desde php no devuelve longvarchar

Estas en el tema de AYUDA CON CONSULTA MYSQL desde php no devuelve longvarchar en el foro de Bases de Datos General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/01/2011, 18:29
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 5 meses
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
  #2 (permalink)  
Antiguo 16/01/2011, 04:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 10
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: AYUDA CON CONSULTA MYSQL desde php no devuelve longvarchar

Bueno ya encontre la solucion me toco hacer mi propia clase de listas aqui se las dejo por si a alguno le sirve ese splobject es una porqueria...

Código PHP:
Ver original
  1. class arrObjetos{
  2.     private $obj= array();
  3.     private $tmp;
  4.     private $flujo;
  5.     var $cab;
  6.     function arrObjetos(){
  7.         $this->tmp=-1;
  8.     }
  9.    
  10.     public function cuantos(){
  11.      return count($this->obj);
  12.     }
  13.    
  14.     public function agrega($obj){
  15.         if(is_object($obj)){
  16.             $this->tmp++;
  17.             $this->obj[]=$obj;
  18.             $this->cab=$this->obj[$this->tmp];
  19.             $this->flujo=$this->tmp;
  20.             return;
  21.         }
  22.         echo "el parametro recibido no es un objeto";
  23.     }
  24.  
  25.     public function  ant(){
  26.         if(($this->flujo-1) > 0){
  27.         $this->cab=$this->obj[($this->tmp-1)]; 
  28.         $this->flujo=$this->flujo-1;
  29.         return $this->obj[$this->flujo];
  30.         }else{ $this->flujo=0;$this->cab=$this->obj[$this->flujo]; return $this->obj[$this->flujo];}
  31.        
  32.         echo "indice Fuera de limites ".$this->tmp--;
  33.     }
  34.    
  35.     public function  sig(){
  36.        
  37.         if($this->tmp++ < count($this->obj)-1){
  38.         $this->flujo=$this->flujo++;   
  39.         $this->cab=$this->obj[($this->flujo)];         
  40.         return $this->obj[$this->flujo];}
  41.         else{$this->flujo=count($this->obj)-1; $this->cab=$this->obj[$this->flujo]; return($this->obj[$this->flujo]);}
  42.                            
  43.         echo "indice Fuera de limites ".$this->tmp++;
  44.     }
  45.    
  46.     public function fin(){
  47.         $this->flujo=count($this->obj)-1;
  48.         $this->cab=$this->obj[$this->flujo];
  49.         return $this->cab;
  50.     }
  51.    
  52.     public function ini(){
  53.         $this->flujo=0;
  54.         $this->cab=$this->obj[$this->flujo];
  55.         return $this->cab;
  56.     }
  57.    
  58.     public function lotengo($obj){
  59.       $tmp=$this->flujo;
  60.       $this->flujo=0;
  61.       if(!is_object($obj)){
  62.         echo("el parametro recibido no es un objeto");
  63.         return;
  64.       }
  65.       $cab=$this->obj[$this->flujo];
  66.        while($this->sig() != $cab){
  67.          if($cab==$obj)
  68.            return true;
  69.         $cab=$this->sig();
  70.       }
  71.       if($cab==$obj){
  72.         return true;
  73.       }
  74.     $this->flujo=$tmp; 
  75.   return false;
  76.  }
  77. }

Etiquetas: longvarchar, php, recibiendo
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 10:12.