Foros del Web » Programando para Internet » PHP »

Listar valores de forma específica.

Estas en el tema de Listar valores de forma específica. en el foro de PHP en Foros del Web. Saludos... Tengo una consulta a MySQL de la siguiente manera: Código PHP: $sql  =  "SELECT pais, codigo, ventas FROM tabla_01 ORDER BY ventas DESC limit 20;" ; $result  =  mysql_query ( $sql ) or die ( mysql_error ());     while ( ...
  #1 (permalink)  
Antiguo 12/08/2010, 06:49
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 7 meses
Puntos: 5
Listar valores de forma específica.

Saludos...

Tengo una consulta a MySQL de la siguiente manera:

Código PHP:
$sql "SELECT pais, codigo, ventas FROM tabla_01 ORDER BY ventas DESC limit 20;";
$result mysql_query($sql) or die (mysql_error());

    while (
$col mysql_fetch_array($resultMYSQL_NUM)) {

$lista_paises = array($col[0]);
list(
$paises) = $lista_paises;

$lista_ventas = array($col[2]);
list(
$ventas) = $lista_ventas;

Cómo véis, esa consulta me generaría una lista como verùeis a continuación:

Código PHP:
echo $paises;
// Colombia, Peru, Honduras, Bolivia, Guatemala, Panama
echo $ventas;
// 125000,580000,450000,400000,350000,98000 
A este punto la relación país = ventas, funciona perfectamente.

Sin salir del 'while', he creado un JS en el que debo agregar la información que me arrojan las array listadas arriba. Para resumir, debo crear una serie de coordenadas que luego se reflejaran en una gráfica. Sin embargo el problema esta en la manera que se me listan las variables en el JS, pues siempre me toma el último valor (Panama,98000) y no el conjunto de valores que me arroja el listado. Así, en países tendría que tener algo como:
Código PHP:
categories:[ColombiaPeruHondurasBoliviaGuatemalaPanama
y lo que veo en pantalla es esto:
Código PHP:
categories:[Panama
Y para las ventas en vez de esto:
Código PHP:
categories:[125000,580000,450000,400000,350000,98000
tengo esto:
Código PHP:
categories:[98000
He intentado sacándo el JS del while, imprimiéndolo fuera dejándo el JS en el while, etc., etc... y no hay manera.

Sabríais cómo puedo forzar a PHP a que me genere ese listado en el JS?

P.D.... El JS lo tengo de esta manera:

Código PHP:
echo "<script type=\"text/javascript\"> \n";
echo 
"var chart; \n";
echo 
"$(document).ready(function() { \n";
(....)
echo 
"</script> \n"
Gracias por vuestra ayuda.
__________________
Andrew :P
  #2 (permalink)  
Antiguo 12/08/2010, 07:05
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: Listar valores de forma específica.

Haz puesto tu código por partes, separado, pero no en su conjunto, así no podremos ver bien que pasa. Sin embargo presumo que en cada bucle imprimes todo el rollo del último código que muestras. En ese caso ese código se repetirá una y otra vez por cada bucle, con lo cual se definirán una y otra vez lo que se ejecutaría cuando el documento haya cargado, con lo cual solo se ejecutaría el último código., por eso solo ves el último valor. Para que veas bien de lo que hablo fijate en el código generado.

Solución? Te lo voy a explicar teóricamente, porque un código para modificarlo y darte la respuesta exacta no tengo. Si pusieras el código completo podría darte una ayuda precisa. Bueno, esta es la sugerencia: Debes poner esto antes del while:

Código:
echo "<script type=\"text/javascript\"> \n"; 
echo "var chart; \n"; 
echo "$(document).ready(function() { \n";
Solo hasta ahi, al final del bucle, pues tienes que hacer el cierre:

Código:
}
</script>
Justo en el while debes ir imprimiendo las variables para que se ejecute la acción correspondiente con cada uno de los registros obtenidos mediante la consulta. Espero que hayas entendido la idea, sino pues muestranos tu código completo para poder ayudarte más efectivamente. Suerte!
  #3 (permalink)  
Antiguo 12/08/2010, 07:12
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Listar valores de forma específica.

Muchas gracias por tu respuesta... Pues el código ejemplo del JS es el que ves abajo. Sin embargo los valores que allí se dan los debo cambiar por mis dos array que vienen de MySQL:

Código HTML:
<script type="text/javascript">
		
			var chart;
			$(document).ready(function() {
				chart = new Highcharts.Chart({
					chart: {
						renderTo: 'container',
						defaultSeriesType: 'column',
						margin: [ 50, 50, 100, 80]
					},
					title: {
						text: 'World\'s largest cities per 2008'
					},
					xAxis: {
						categories: [
							'Tokyo', 
							'Jakarta', 
							'New York', 
							'Seoul', 
							'Manila',
							'Mumbai',
							'Sao Paulo',
							'Mexico City',
							'Dehli',
							'Osaka',
							'Cairo',
							'Kolkata',
							'Los Angeles',
							'Shanghai',
							'Moscow',
							'Beijing',
							'Buenos Aires',
							'Guangzhou',
							'Shenzhen',
							'Istanbul'
						],
						labels: {
							rotation: -45,
							align: 'right',
							style: {
								 font: 'normal 13px Verdana, sans-serif'
							}
						}
					},
					yAxis: {
						min: 0,
						title: {
							text: 'Population (millions)'
						}
					},
					legend: {
						enabled: false
					},
					tooltip: {
						formatter: function() {
							return '<b>'+ this.x +'</b><br/>'+
								 'Population in 2008: '+ Highcharts.numberFormat(this.y, 1) +
								 ' millions';
						}
					},
				        series: [{
						name: 'Population',
						data: [34.4, 21.8, 20.1, 20, 19.6, 19.5, 19.1, 18.4, 18, 
							17.3, 16.8, 15, 14.7, 14.5, 13.3, 12.8, 12.4, 11.8, 
							11.7, 11.2],
						dataLabels: {
							enabled: true,
							rotation: -90,
							color: '#FFFFFF',
							align: 'right',
							x: -3,
							y: 10,
							formatter: function() {
								return this.y;
							},
							style: {
								font: 'normal 13px Verdana, sans-serif'
							}
						}			
					}]
				});
				
				
			});
				
		</script> 
Cómo puedo partir este código antes y después del 'while'? (Por su puesto el JS lo tengo envuelto en etiquetas 'echo'...)
__________________
Andrew :P
  #4 (permalink)  
Antiguo 12/08/2010, 08:35
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 7 meses
Puntos: 5
Respuesta: Listar valores de forma específica.

En fin... Quiza la pregunta sea... Cómo puedo listar esas dos array fuera del 'while'?
__________________
Andrew :P
  #5 (permalink)  
Antiguo 12/08/2010, 08:41
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 5 meses
Puntos: 74
Respuesta: Listar valores de forma específica.

Buenas tardes,

Mira, ayer puse un ejemplo sobre como listar arrays estando fuera de foreach.

Y es asi:

Código PHP:
Ver original
  1. foreach ($array as $key => $val) {
  2. $mostrar .= $key .'='. $val;
  3. }
  4. echo $mostrar;

Quizas el ejemplo no te solucione nada, pero si te orientara mejor.

Saludos,





  #6 (permalink)  
Antiguo 12/08/2010, 09:56
Avatar de andrewp  
Fecha de Ingreso: agosto-2003
Ubicación: Barcelona
Mensajes: 1.160
Antigüedad: 20 años, 7 meses
Puntos: 5
De acuerdo Respuesta: Listar valores de forma específica.

Cita:
Quizas el ejemplo no te solucione nada, pero si te orientara mejor.
CORRECCIÓN: Me has salvado el día!... Ejecutando el 'foreach' en vez del trágico rollo de listar arrays, fuera del 'while' se soluciona todo!.....

Gracias Campeón!!!!

POST RESUELTÍSSSSSIMO!
__________________
Andrew :P

Etiquetas: listar, formulario
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:54.