Título: problemas con array multidimencional
Publicado por: Zeroql en 30 Junio 2011, 03:13 am
Jejej yo de nuevo molestando por el foro, pero nose que sucede esta matriz multidimencional funciona bien con 1 valor, cuando ingreso 3 o mas valores solo me imprime el ultimo valor, el resto me los muestra como errores de lineas, aqui un ejemplo de lo que me imprime Notice: Undefined offset: 0 in C:\xampp\htdocs\agsiscom\oferts.php on line 46 bueno aqui el code. y no puede ser por la consulta, por k la ejecute en phpmyadmin y me dio perfectamente. <?php include ('adm/conexion.php'); $link=conectarse(); $rs=mysql_query("SELECT * FROM items WHERE oferta='Si' AND estado='Disponible' ORDER BY fechaoferta DESC LIMIT 6"); $msg=NULL; $idx=0; if ($rs) { $idx=>array('cod'=>trim($row['codigo']), "img"=>trim($row['imgurl']), "dc"=>trim($row['descuento']), "title"=>trim($row['search']), "val"=>trim($row['valor']) ) ); $idx++; } } else { $msg="Actualmente no hay Ofertas de productos."; } ?>
bueno y aqui el code que uso para imprimirla... <? if ($msg!=NULL) { echo $msg; exit(); }?> <table width="578" height="295" border="0" cellpadding="1"> <tr> <td width="180" style="color:#00F; font-style:italic"><b><? echo $datos[0]['title']; ?></b></td> <td width="180" style="color:#00F; font-style:italic"><b><? echo $datos[1]['title']; ?></b></td> <td width="180" style="color:#00F; font-style:italic"><b><? echo $datos[2]['title']; ?></b></td> </tr> <tr> <td height="180"><img src="<? echo $datos[0]['img']; ?>" width="180" height="180"></td> <td height="180"><img src="<? echo $datos[1]['img']; ?>" width="180" height="180"></td> <td height="180"><img src="<? echo $datos[2]['img']; ?>" width="180" height="180"></td> </tr> <tr> <td height="76"><b><font size="-1"> Codigo: <? echo $datos[0]['cod']; ?><br/> Valor $: <? echo $datos[0]['val']; ?><br/> Descuento: <? echo $datos[0]['dc']; ?> %<br/></font><font color="#FF0000" style="font-style:oblique"> Precio $: <? echo ($datos[0]['val']-($datos[0]['val']*($datos[0]['dc']/100))); ?></font></b></td> <td height="76"><b><font size="-1"> Codigo: <? echo $datos[1]['cod']; ?><br/> Valor $: <? echo $datos[1]['val']; ?><br/> Descuento: <? echo $datos[1]['dc']; ?> %<br/></font><font color="#FF0000" style="font-style:oblique"> Precio $: <? echo ($datos[1]['val']-($datos[1]['val']*($datos[1]['dc']/100))); ?></font></b></td> <td heigth="76"><b><font size="-1"> Codigo: <? echo $datos[2]['cod']; ?><br/> Valor $: <? echo $datos[2]['val']; ?><br/> Descuento: <? echo $datos[2]['dc']; ?> %<br/></font><font color="#FF0000" style="font-style:oblique"> Precio $: <? echo ($datos[2]['val']-($datos[2]['val']*($datos[2]['dc']/100))); ?></font></b></td> </tr> <tr> <td><input type="submit" class="button3" value="Ver mas" style="float:right" onClick="showitem.php?cod='<? echo $datos[0]['codigo']?>'"><hr color="#000099" size="1px"/></td> <td><input type="submit" class="button3" value="Ver mas" style="float:right" onClick="showitem.php?cod='<? echo $datos[1]['codigo']?>'"><hr color="#000099" size="1px"/></td> <td><input type="submit" class="button3" value="Ver mas" style="float:right" onClick="showitem.php?cod='<? echo $datos[2]['codigo']?>'"><hr color="#000099" size="1px"/></td> </tr> </table>
por fa colaboracion...
Título: Re: problemas con array multidimencional
Publicado por: cassiani en 30 Junio 2011, 06:00 am
si no me equivoco, es porque en esta linea: <td><input type="submit" class="button3" value="Ver mas" style="float:right" onClick="showitem.php?cod=' <? echo $datos[X]['codigo']?>'"><hr color="#000099" size="1px"/></td> no existe $datos[X]['codigo'], cambialo por $datos[X]['cod'] y avisa como te va. saludos!!
Título: Re: problemas con array multidimencional
Publicado por: Shell Root en 30 Junio 2011, 06:23 am
Puedes hacer uso de la función que uso en mis aplicaciones, function connection($host = "127.0.0.1", $db = "dbGoogleMaps", $user = "postgres", $pass = "root"){ /** * Función para conectar a la base de datos. * * @param $host Servidor. * @param $db Base de datos. * @param $user Usuario. * @param $pass Contraseña. * * @Autor Alex Jurado - Shell Root. **/ try{ $cnn = new PDO("pgsql:host= '$host' port=5432 dbname='$db' user='$user' password='$pass'"); $cnn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); return $cnn; }catch(PDOException $ex){ print $ex->getMessage(); return NULL; } } function execQuery($sql, $return = TRUE){ /** * Función para ejecutar una query con o sin * retorno de datos. * * @param $sql Sentencia SQL para ejecutar. * @param $return FALSE: Ejecución directa. * TRUE : Con retorno de datos. * ONE : Existencia de registro. * * @Autor Alex Jurado - Shell Root. **/ $cnn = connection(); try{ $query = $cnn->query($sql); }catch(PDOException $ex){ print $ex->getMessage(); return FALSE; } if($return){ while ($rows = $query->fetch(PDO::FETCH_ASSOC)){ $dataReturn[] = $rows; } return $dataReturn; }elseif(!$return){ return TRUE; }elseif($return == "ONE"){ return ($query->fetchColumn())? TRUE : FALSE; }else{ print "WTF! :D"; return FALSE; } }
Título: Re: problemas con array multidimencional
Publicado por: Zeroql en 30 Junio 2011, 14:40 pm
Hola que tal a todos! bueno acabe de arreglar el inconveniente que cassiani me ha dicho, pero el problema no va en eso va en que la matriz solo me toma el ultimo valor. no me toma los otros valores - y [1] solo me imprime el ultimo!!!
que tengo de malo!!!!
Título: Re: problemas con array multidimencional
Publicado por: cassiani en 30 Junio 2011, 16:12 pm
listo, el problema esta en como armas el array, cambia esto: $datos=array( $idx=>array('cod'=>trim($row['codigo']), "img"=>trim($row['imgurl']), "dc"=>trim($row['descuento']), "title"=>trim($row['search']), "val"=>trim($row['valor']) ) ); por esto: $datos[] = array ( 'cod' => trim($row['codigo']), 'img' => trim($row['imgurl']), 'dc' => trim($row['descuento']), 'title' => trim($row['search']), 'val' => trim($row['valor']) ); y avisa como te va. siempre puedes verificar el contenido del arreglo usando un: echo '<pre>',print_r($datos),'</pre>';
Título: Re: problemas con array multidimencional
Publicado por: Nakp en 30 Junio 2011, 16:45 pm
mmmm por que no haces algo como <?php foreach ($datos as $imagen) { echo '<td height="180"><img src="'.$imagen['img'].'" width="180" height="180"></td>'; } ?>
y lo mismo para los otros datos de la sig columna, asi no recorres indices inexistentes
Título: Re: problemas con array multidimencional
Publicado por: Zeroql en 30 Junio 2011, 23:30 pm
cassiani gracias, la arme asi por que era una matriz multidimencional, pero implemente tu ejercicio y me dio perfectametne.
Nakp voy a implementar tu code, la verdad yo habia pensado en esto pero para todo junto no separado...
igual gracias
les aviso como me fue?
Título: Re: problemas con array multidimencional
Publicado por: Zeroql en 1 Julio 2011, 00:03 am
OK implemente el code de Nakp y anda perfecto gracias a todos por su colaboracion
|