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 Iterator, Countable
{
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 ) > 0 ) {
$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_ENTITIES, ENT_NOQUOTES);
$etiquetas = get_html_translation_table(HTML_SPECIALCHARS, ENT_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.