Foros del Web » Programando para Internet » PHP »

mostrar valores de MYSQL con "for"

Estas en el tema de mostrar valores de MYSQL con "for" en el foro de PHP en Foros del Web. Hola buenas: tengo esta consulta PHP @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original $campos = $result -> fetch_fields ( ) ;           ...
  #1 (permalink)  
Antiguo 14/12/2011, 11:12
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
mostrar valores de MYSQL con "for"

Hola buenas:

tengo esta consulta PHP

Código PHP:
Ver original
  1. $campos = $result->fetch_fields();
  2.                        
  3.                 echo '<table> <tr>';
  4.                 for($i = 0; $i < count($campos); $i++)
  5.                 {
  6.                 echo '<td>'.$campos[$i]->name.'</td>';
  7.                 }
  8.                 echo '</tr>';
  9.  
  10.                 while ($fila = $result->fetch_row())
  11.                 {
  12.                 echo '<tr>';
  13.                 for($i = 0; $i < count($campos); $i++)
  14.                 {
  15.                 echo '<td>'.$fila[$i].'</td>';     
  16.                 }
  17.                 echo '</tr>';
  18.                 }
  19.                 echo '</table>';

y me saca como resultado todas las columnas de la tabla a consultar, pero me gustaría que me sacasa solo tres columnas es decir titulo texto y fecha.

¿alquien me podria echar un cable? Que estoy atascado gracias
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #2 (permalink)  
Antiguo 14/12/2011, 12:12
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 705
Antigüedad: 12 años, 7 meses
Puntos: 140
Respuesta: mostrar valores de MYSQL con "for"

Y la consulta?
puedes arrojar las columnas que quieras.

Ejemplo:
SELECT * FROM tabla

Otendrás toda la tabla en un array.
Luego, devuelves las columnas que quieras.

$query = mysql_query(SELECT * FROM tabla)
while($fila = mysql_fetch_assoc($query)) {
echo $fila('titulo');
echo $fila('texto');
y lo que quieras.
}

Saludos
  #3 (permalink)  
Antiguo 14/12/2011, 12:29
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: mostrar valores de MYSQL con "for"

Ya... lo que pasa es que estoy haciendo una paginacion con php mysql y ajax, y necesitaria controlar todos los valores de un array para despues limitar el numero de caracteres y maquetarlo mediante css.

Te mustro el codigo de dicha php, me gustaria saber si puedo controlar los valores de un for de manera individual, como si de una variable php se tratase?

Código PHP:
Ver original
  1. <?php
  2.  
  3. $username = $_SESSION['usuario'];
  4.    
  5. define("PagTam",18);
  6.        
  7. if(isset($_GET['pag']))
  8.     $pag = $_GET['pag'];
  9. else
  10.     $pag = 1;
  11.  
  12. $inicio = ($pag-1) * PagTam;
  13.  
  14. $conexion=new mysqli("loquesea","loquesea","loquesea","loquesea");
  15.  
  16. $todos = "select count(*) as num from mensaje WHERE para='".$_SESSION['usuario']."'";
  17. $result = $conexion->query($todos);
  18. $fila = $result->fetch_assoc();
  19. $numRegistros = $fila['num'];
  20.  
  21. $numPags=ceil($numRegistros/PagTam);
  22.  
  23. $sql="select * from mensaje WHERE para='".$_SESSION['usuario']."' LIMIT ". $inicio.",".PagTam;
  24. $result = $conexion->query($sql);
  25.  
  26. ?>
  27.  
  28. <div class="main_container cssParsedBox">
  29.     <div class="bgMail">
  30.         <div class="fixedMail">
  31.             <div class="hspace_70">
  32.             </div>
  33.             <div class="text_b1">
  34.                 MENSAJES
  35.             </div>
  36.             <div class="hspace_20">
  37.             </div>
  38.             <div class="text_g1">
  39.                 Colaboraci&oacute;nes
  40.             </div>
  41.             <div class="text_g1">
  42.                 Proyectos
  43.             </div>
  44.             <div class="text_g1">
  45.                 Bolsa de trabajo
  46.             </div>
  47.             <div class="text_g1">
  48.                 Contactos
  49.             </div>
  50.         </div>
  51.        
  52.         <div class="colMail2">
  53.             <?php
  54.                 $campos = $result->fetch_fields();
  55.                        
  56.                 echo '<table> <tr>';
  57.                 for($i = 0; $i < count($campos); $i++)
  58.                 {
  59.                 //echo '<td>'.$campos[$i]->name.'</td>';
  60.                 }
  61.                 echo '</tr>';
  62.  
  63.                 while ($fila = $result->fetch_row())
  64.                 {
  65.                 echo '<tr>';
  66.                
  67.                 for($i = 0; $i < count($campos); $i++)
  68.                 {
  69.                 echo '<td>'.$fila[$i].'</td>';     
  70.                 }
  71.                 echo '</tr>';
  72.                 }
  73.                 echo '</table>';
  74.  
  75.                 echo '<div class="content-paginacion">';
  76.  
  77.                 if( $numPags > 1)
  78.                 {          
  79.                 for($x = 1; $x <= $numPags; $x++)
  80.                 {
  81.                     if( $pag == ($x) )
  82.                         echo '<script language="javascript">function showPage'.($x).'(){ var variable_post="Mi texto recargado"; $.post("paginacion.php?pag='.($x).'", { variable: variable_post }, function(data){ $("#container").html(data); }); }</script><a href="#" onclick="javascript:showPage'.($x).'();" class= "pag-Actual"> '.($x).'</a> ';
  83.                     else
  84.                         echo '<script language="javascript">function showPage'.($x).'(){ var variable_post="Mi texto recargado"; $.post("paginacion.php?pag='.($x).'", { variable: variable_post }, function(data){ $("#container").html(data); }); }</script><a href="#" onclick="javascript:showPage'.($x).'();"> '.($x).' </a> ';
  85.                 }
  86.  
  87.                 }
  88.                 else
  89.                 //echo '<div class= "paginas" >Pag: 1/1</div> ';
  90.             ?>
  91.         </div>
  92.        
  93.         <center>
  94.             <div class=" font9 grey2 ">
  95.                 Sistema de mensajer&iacute;a privada. Todos los derechos reservados.
  96.             </div>
  97.         </center>      
  98.     </div>
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #4 (permalink)  
Antiguo 14/12/2011, 12:40
Avatar de ElSiniestro  
Fecha de Ingreso: diciembre-2011
Ubicación: Ibagué
Mensajes: 115
Antigüedad: 12 años, 4 meses
Puntos: 23
Respuesta: mostrar valores de MYSQL con "for"

Para evitar sobrecargar la memoria con información inútil, diseña la consulta con los campos que necesitas. Aprovecha que el método fetch_array

Código:
$query= SELECT titulo, texto, fecha FROM tabla;
Código:
$campos= $result->fetch_array();
Y con eso dejas el resto de código igual como lo muestras
  #5 (permalink)  
Antiguo 14/12/2011, 12:47
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: mostrar valores de MYSQL con "for"

Ok voy a probarlo! de todas maneras, los datos que no muestro ahora, los saco en un "popup" jquery esto es como titulo cuatro palabras del texto, quien lo envia y fecha...

Bueno pruebo eso, que le estoy dando vueltas! Gracias!
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #6 (permalink)  
Antiguo 14/12/2011, 12:58
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: mostrar valores de MYSQL con "for"

dicen que para un mejor rendimiento se debe usar fetch_assoc pues te entrega solo el valor asociativo (columna)...

res[$i]["id"];

En cambio con array tienes mas formas de hacerlo..
res[$i]["id"];
res[$i][0]; etc..

y al tener mas formas de recoger el valor, pues es mas lento.

Yo lo hago con fetch_asoc .

Suerte !
  #7 (permalink)  
Antiguo 14/12/2011, 13:03
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: mostrar valores de MYSQL con "for"

Gracias colega! va como un tiro! me has alegrado el dia! muchas gracias!

pongo aqui lo que he hecho por si a alguien le sirve

Código PHP:
Ver original
  1. <div class="colMail2">
  2.             <?php
  3.                
  4.                 //$campos = $result->fetch_fields();
  5.                
  6.                 while ($campos= $result->fetch_array())
  7.                 {
  8.                 echo "$campos[de]";
  9.                 echo "$campos[asunto]";
  10.                 echo "$campos[texto]";
  11.                 echo "$campos[fecha]";
  12.                 echo"<br/>";
  13.                 }      
  14.  
  15.                 echo '<div class="content-paginacion">';
  16.  
  17.                 if( $numPags > 1)
  18.                 {          
  19.                 for($x = 1; $x <= $numPags; $x++)
  20.                 {
  21.                     if( $pag == ($x) )
  22.                         echo '<script language="javascript">function showPage'.($x).'(){ var variable_post="Mi texto recargado"; $.post("paginacion.php?pag='.($x).'", { variable: variable_post }, function(data){ $("#container").html(data); }); }</script><a href="#" onclick="javascript:showPage'.($x).'();" class= "pag-Actual"> '.($x).'</a> ';
  23.                     else
  24.                         echo '<script language="javascript">function showPage'.($x).'(){ var variable_post="Mi texto recargado"; $.post("paginacion.php?pag='.($x).'", { variable: variable_post }, function(data){ $("#container").html(data); }); }</script><a href="#" onclick="javascript:showPage'.($x).'();"> '.($x).' </a> ';
  25.                 }
  26.  
  27.                 }
  28.                 else
  29.                 //echo '<div class= "paginas" >Pag: 1/1</div> ';
  30.             ?>
  31.         </div>

Obviamente esto solo es un boceto para textar que funciona, ahora hay que currárselo!
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #8 (permalink)  
Antiguo 14/12/2011, 13:12
 
Fecha de Ingreso: agosto-2011
Mensajes: 161
Antigüedad: 12 años, 8 meses
Puntos: 7
Respuesta: mostrar valores de MYSQL con "for"

Cita:
Iniciado por ccsaiKo Ver Mensaje
dicen que para un mejor rendimiento se debe usar fetch_assoc pues te entrega solo el valor asociativo (columna)...

res[$i]["id"];

En cambio con array tienes mas formas de hacerlo..
res[$i]["id"];
res[$i][0]; etc..

y al tener mas formas de recoger el valor, pues es mas lento.

Yo lo hago con fetch_asoc .

Suerte !

Para que te quede mas claro !

dicen que para un mejor rendimiento se debe usar fetch_assoc pues te entrega solo el valor asociativo (columna)...

res[$i]["id"];

En cambio con array tienes que pasarle una constante como parametro para indicarle como recuperar el valor.. si no le pasas ningun parametro por default el parametro es la constante MYSQL_BOTH.

Y puedes recuperar los valores con indices numericos :

RES[0];

O como indices asociativos :

ROW['id'];

ej: mysql_fetch_array(MYSQL_ASSOC) o mysql_fetch_array(MYSQL_NUM)

y al tener estas formas de recoger el valor, pues es mas lento.

...

Si quieres recoger el valor como assoc ... de una forma mas eficiente y mas optima

en vez de recogerlo con array y pasarle el parametro assoc, recogelo con fetch_assoc


mysql_fetch_assoc();


ahora si compa... SUERTE..

MAS INFO EN http://cl.php.net/manual/es/function...etch-array.php

Etiquetas: mysql, tabla
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 01:52.