Esta es la función que yo uso para mostrar los resultados de una matriz con PHP. La uso por la psicosis de no dejar las consultas de la base de datos al alcance de los "niños" y para que si hay un error en esta pueda solucionarlo modificando un solo archivo.
- conn/conn.php = este es el archivo donde están los datos de la conexión a tu DB.
- $tabla = nombre de la tabla que quieres mostrar.
- $campoCondicional = cuando quieres que los resultados sean condicionados a que un campo tenga determinado valor.
- $campoValor = el valor del campo condicional
- $orden = ordenar los resultados por este determinado campo
- $inicio = cuando quieras mostrar determinada cantidad de resultados, marcas el inicio
- $cantidad = aca marcas el termino.
Todas las variables son opcionales excepto $tabla cuando no uses una variable agrega "" en su lugar, por que si no php marcara un error.
mostrarmatriz.php:
Código :
function mostrarMatriz($tabla,$campoCondicional,$campoValor,$orden,$inicio,$cantidad){ include("conn/conn.php"); $tabla= htmlspecialchars($tabla); $campoCondicional= htmlspecialchars($campoCondicional); $campoValor= htmlspecialchars($campoValor); $orden= htmlspecialchars($orden); $inicio= htmlspecialchars($inicio); $cantidad= htmlspecialchars($cantidad); if( isset($inicio) & $cantidad != null){ $limites = "LIMIT $inicio, $cantidad"; }; if( $campoCondicional !="" && $campoValor !="") { $campoCondicional = "WHERE $campoCondicional = $campoValor "; } if( $orden !="") { $orden= "ORDER BY $orden DESC"; } $sql= "SELECT * FROM `$tabla` $campoCondicional $orden $limites"; $matriz_db = mysql_query($sql, $conn) or die(mysql_error()); for($i=0;$fila= mysql_fetch_assoc($matriz_db); $i++) { for($a= 0;$a<mysql_num_fields($matriz_db);$a++){ $campo = mysql_field_name($matriz_db,$a); $retorno[$i][$campo] = $fila[$campo]; } }; return $retorno; }
conn.php :
Código :
<?php # FileName="Connection_php_mysql.htm" # Type="MYSQL" # HTTP="true" $hostname_conn = "localhost"; $database_conn = "mi_DB"; $username_conn = "mi_user"; $password_conn = "mi_password"; $conn = mysql_connect($hostname_conn, $username_conn, $password_conn) or die(mysql_error()); mysql_select_db($database_conn, $conn); ?>
Ejemplo del uso de una matriz generada con este script:
Tabla comentarios se compone de los campos: id, fecha, id_usuario, comentario.
Código :
$matrizArticulos = mostrarMatriz('comentarios','id_articulo',$_GET['articulo'],'id','',''); for($i=0; $matrizArticulos[$i] != null; $i++){ echo $matrizArticulos[$i]['id']."<br/>". $matrizArticulos[$i]['fecha'] ."<br/>". $matrizArticulos[$i]['id_usuario']."<br/>". $matrizArticulos[$i]['comentario']."<hr/>". };
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por jpcw el 19 de Julio de 2007
mas que tip yo creo que es una forma de listar el contenido de una tabla
Por CarlosN el 19 de Julio de 2007
Por Moussa Kandalaf el 22 de Julio de 2007
Por qué esto?:
# FileName="Connection_php_mysql.htm"
# Type="MYSQL"
# HTTP="true"
Nunca he ocupado cosas asi en PHP, gracias
Por Inyaka el 22 de Julio de 2007
Por vavanero el 22 de Julio de 2007
Por Inyaka el 22 de Julio de 2007
Por Luke el 16 de Octubre de 2007
Una mejora:
Si en $orden= "ORDER BY $orden DESC"; pones $orden= "ORDER BY $orden"; és más facil ordenar la matriz desde la llamada a la funcion.
Por salvador el 14 de Febrero de 2008
Por salvador el 14 de Febrero de 2008
Por charlie el 16 de Abril de 2009
Por Inyaka el 16 de Abril de 2009
¿quien te dijo que php-nuke es un lenguaje?
jovencito estas algo perdido
Por Matias el 29 de Mayo de 2009
primero me decia que la variabla $retorno no existia, la inicializé como un array vvacio y ahora me tira el siguiente error:
Notice: Undefined offset: 0 in C:\wamp\www\preview\noticias.php on line 215
en la linea 215 tengo esto:
for($i=0; $matrizArticulos[$i] != null; $i++)
{
echo $matrizArticulos[$i]['id']."<br/>".
$matrizArticulos[$i]['fecha'] ."<br/>".
$matrizArticulos[$i]['id_usuario']."<br/>".
$matrizArticulos[$i]['comentario']."<hr/>";
}
me podrás dar una mano?
Por Inyaka el 29 de Mayo de 2009
Código :
Por Sara el 25 de Marzo de 2010
indiquemen eso, he probado el codigo pero no sale.
gracias
for($i=0;$fila= mysql_fetch_assoc($matriz_db); $i++) {
for($a= 0;$a<mysql_num_fields($matriz_db);$a++){
Por Adriana el 29 de Junio de 2010
Por mary el 16 de Diciembre de 2010
Gracias si al menos leen esto, pero necesito esto urgente, he probado con varios métodos y nada me funciona
Por Inyaka el 18 de Febrero de 2011
Código :
esto es una sintaxis abreviada de if else
return ($object)? (object) $retorno : $retorno;
y cuando quiero transformar un array en objeto basta con anteponer (object) al array
recuerden que para imprimir un array y ver que contiene basta con usar print_r($array)
Por tooomas el 28 de Abril de 2011
Por halguien el 12 de Mayo de 2011
yo tengo una cosa que encontre por ahi pero en vez de mostrar una matriz toma datito por datito y me estoy volviendo loco... me gustaria muscho poder usar este ejemplo en su lugar, me parece mucho mas simple pero no logro darme cuenta como utilizarlo con mi caso, a lo mejor teniendo un ejemplo de la db y toqueteando un rato el ejemplo que das me logro dar cuenta de como cambiar el mio para que ande mejor
gracias de antemano amigo!!
saludos y suerte!!
Por Jei el 09 de Junio de 2011
"Fatal error: Call to undefined function mostrarMatriz() in E:\wamp\www\conn.php"
Por NyCSolutions el 24 de Enero de 2018
En el select_multiple.php (Formulario):
<?php
//Datos de conexión
include('incl_config.php');
//Datos múltiples a traer
$sql = " select COD_DXS,VALOR_DXS from hc_dxsindromico where ESTADO_DXS='1' ";
$result=@mysql_query($sql);
?>
En el select del formulario:
<select multiple="multiple" size="7" name="dxsindromico[]"> //ojo lleva sí o sí las llaves []
<option value="" selected="selected">Escoja una o mas opciones</option>
<?php
while($row=mysql_fetch_array($result)){
?>
<option value="<?php echo $row['COD_DXS']; ?>" style="color:#F00;"><?php echo $row['VALOR_DXS'];?></option>
<?php } ?>
</select>
//////////// EN EL grabar_mtr.php ///////////////
<?php
include('incl_config.php');
/*Formulario de contacto HTML5, PHP Y Bootstraps
Creado por: www.nycsoluciones.com
Version: 1.1*/
//usamos un foreach para recorrer el arreglo(valores de nuestro select y guardarlos en la tabla dxsindromico_data)
if(isset($_POST['dxsindromico'])){
foreach( $_POST['dxsindromico'] as $insertar ) {
//echo $insertar;
$sqli="insert into dxsindromico_data(DXSINDROMICO_HC) values('$insertar')";
//echo $sqli;
//exit;
$resulti=mysql_query($sqli);
}
} else{
foreach( $_POST['dxsindromico'] as $insertar ) {
//echo $insertar;
$sqli="insert into dxsindromico_data(DXSINDROMICO_HC) values('$insertar')";
$resulti=mysql_query($sqli);
}
}
?>
///// Para refrescar a una pagina .php despues de grabar ///////
<meta http-equiv="refresh" content="0; url=select_multiple.php">