Foros del Web » Programando para Internet » PHP »

usar foreach para ver valores de base de Datos

Estas en el tema de usar foreach para ver valores de base de Datos en el foro de PHP en Foros del Web. Hola a todos estoy tratando de tomar todos los valores de una base y verlo en pantalla con echo. Uso un array para luego usar ...
  #1 (permalink)  
Antiguo 19/09/2006, 06:46
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
usar foreach para ver valores de base de Datos

Hola a todos

estoy tratando de tomar todos los valores de una base y verlo en pantalla con echo. Uso un array para luego usar un foreach y verlo en pantalla

-ERROR que me aparece es:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource

La base de datos tiene 2 campos('name' y 'value')
Todo el contenido del array son todos los 'name' insertados
la tabla seria:
name: wall_1 wall_2 wall_3
value: 3 4 7

Lo que necesito es ver en pantalla 347

--codigo--
<?

$hostname="mysql3000.secureserver.net";
$username="CostRoom";
$password="chefnelone";
$dbname="CostRoom";
$usertable="CostRoom";
mysql_connect($hostname,$username, $password);
mysql_select_db($dbname);

$all_data_in_costroom = array ('wall_1', 'wall_2', 'wall_3');

foreach ($all_data_in_costroom as $values){

$result=mysql_query("select * from $usertable where name = $values ");
$registro=mysql_fetch_assoc($result);
$var = $registro['value'];
echo $var ;

}
?>
  #2 (permalink)  
Antiguo 19/09/2006, 06:49
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
correccion:
en base de dato:
el 'value' de wall_1 =3
el 'value' de wall_2 =4
el 'value' de wall_3 =7
  #3 (permalink)  
Antiguo 19/09/2006, 07:13
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
Quizas lo mejor sea explicar lo que quiero hacer...

En la tabla (como dije ) tengo dos campos: 'name' y 'value'
En esa tabla tengo ingresado tres registros que son:
name: 'wall_1' con value:'3'
name: 'wall_2' con value:'4'
name: 'wall_3' con value;'7'

Lo que necesito es
1- conectarme con la base de datos( esto ya lo he logrado!)
2- Regoger los valores de los 3 registros
3- crear variables (de mismo nombre que 'name') ya asignarle el valor que tenga en 'value' , es decir:
--crear variable: $wall_1 = 3;
--crear variable: $wall_2 = 4;
--crear variable: $wall_3 = 7;

gracias
  #4 (permalink)  
Antiguo 19/09/2006, 07:55
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
No sería mejor for() que foreach()?... Pues con foreach...

Lo que podrías hacer con foreach, es crear un array, con los names y values de los registros, y luego los recoges con foreach...

Sinceramente no se me ocurre como con foreach...

// CON FOR()
$consulta = mysql_query("SELECT value FROM tabla");
$numrows = mysql_num_rows($consulta); // Hay una mejor forma que es con COUNT(), pero no la manejo...

for($i = 0; $i <= $numrows; $i++)
{
while($row = mysql_fetch_assoc($consulta))
{
$wall_[$i] = $row['value'];
}
}

Creo que no es la mejor manera... pero no pierdes nada con probar...
  #5 (permalink)  
Antiguo 19/09/2006, 09:00
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
me ha funcionado..
pero no puedo tomar los valores de las variables desde javascript

¿¿ sera que no están creadas las variables en php???

PUEDO VER TODAS LAS VAR EN LA PANTALLA POR EL 'ECHO' PERO LAS VARIABLES NO SE CREAN ($wall_[$i] = $row['value'];)


--codigo--
<body>
<?
mysql_connect($hostname,$username, $password);
mysql_select_db($dbname);

$result = mysql_query("SELECT value FROM $dbname");
$numrows = mysql_num_rows($result); // Hay una mejor forma que es con COUNT(), pero no la manejo...

for($i = 0; $i <= $numrows; $i++)
{
while($row = mysql_fetch_assoc($result))
{
$wall_[$i] = $row['value'];
echo $wall_[$i];
}
}
?>
<script language="JavaScript">
wall_1='<?php echo $wall_1 ?>';
alert(wall_1);
</script>
</body>
  #6 (permalink)  
Antiguo 20/09/2006, 03:16
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
alguna idea por ahí
  #7 (permalink)  
Antiguo 20/09/2006, 06:55
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Mira... Estuve probando y esto me funcionó...

echo "
<script language=javascript>
var wall = ".$wall_[12].";
alert(wall);
</script>";

Va dentro de <?php ?>

Tú debes especificarle el número... Nos vemos...
  #8 (permalink)  
Antiguo 20/09/2006, 08:33
 
Fecha de Ingreso: diciembre-2005
Ubicación: Barcelona
Mensajes: 1.428
Antigüedad: 18 años, 4 meses
Puntos: 15
gracias spider_boy.
Lo he puesto tal como me dices ...pero no funciona . Cual es el error.

(recoger valores de base de datos asignarla a variable php y luego a var javascript)

este es el codigo exacto (la conexion con la base de datos está bien)

<body>
<?
mysql_connect($hostname,$username, $password);
mysql_select_db($dbname);

$result = mysql_query("SELECT value FROM $dbname");
$numrows = mysql_num_rows($result); // Hay una mejor forma que es con COUNT(), pero no la manejo...

for($i = 0; $i <= $numrows; $i++)
{
while($row = mysql_fetch_assoc($result))
{
$wall_[$i] = $row['value'];
}
}
echo "<script language=javascript>
var wall = ".$wall_[5].";
alert(wall);
</script>";
?>
</body>
  #9 (permalink)  
Antiguo 20/09/2006, 09:28
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Es que lo había probado de otra manera... Pero esa manerá no te servirá...

Lo siento... He intentado de todo y nada... No logro nada...

Lo más cerca que estuve fue esto...

Solo me "alerta" 2 registros, teniendo 3...

Código PHP:
while(($i <= mysql_num_rows($query)) AND ($r mysql_fetch_assoc($query)))
{
$wall_[$i] = $r['new_id'];
$i++;
}

echo 
"
<script language=javascript>
var wall = "
.$wall_[2].";
alert(wall);
</script>"

Sinceramente no se me ocurre nada más...
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 07:54.