Foros del Web » Programando para Internet » PHP »

Query de base de datos

Estas en el tema de Query de base de datos en el foro de PHP en Foros del Web. hola, tengo un problema, hago una consulta a una base de datos asi: $result=mysql_query("select city_name from cities where cities.id_countries=1",$con); $contRows =1; while($rowTmp = mysql_fetch_array($result)) { ...
  #1 (permalink)  
Antiguo 26/01/2005, 05:55
Avatar de abe_k  
Fecha de Ingreso: diciembre-2004
Mensajes: 286
Antigüedad: 19 años, 3 meses
Puntos: 2
Query de base de datos

hola,

tengo un problema,

hago una consulta a una base de datos asi:

$result=mysql_query("select city_name from cities where cities.id_countries=1",$con);

$contRows =1;
while($rowTmp = mysql_fetch_array($result)) {
$row["contRows"] = $rowTmp["city_name"];
$contRows++;
}

Hasta ahi correcto, luego quiero rellenar una lista de html con los resultados de esa query(en el array $row):

$content .="<td><div align='center'><span class='Estilo5'>Ciudad:<select name='select'>";
$content .="<option selected value=1>--";
$a = 1;
foreach($row as $value){
$content .="<option value=".$a.">".$value;
$a++;
}
$content .="</select></span></div></td>";

El problema es que solo me pone en dicha lista el último valor de la query. SAbiendo que foreach se recorre todo el array entero , he de entender que solo tengo un valor guardado en $row(el último)? o es que al meterlo en la lista no lo hago correctamente?

gracias por adelantado

abe_k
  #2 (permalink)  
Antiguo 26/01/2005, 06:16
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 9 meses
Puntos: 16
Hola,
Código PHP:
 $row["contRows"] = $rowTmp["city_name"]; 
$row["contRows"] es un elemento con el indice la cadena de texto "contRows", asi que siempre estaras metiendo los valores en ese elemento, pisando cada vez el valor anterior.

Lo que tu querias poner (y tus dedos te traicionaron, a todos nos pasa ) era:
Código PHP:
 $row[$contRows] = $rowTmp["city_name"]; 
Salduos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 26/01/2005, 06:21
Avatar de yoseman  
Fecha de Ingreso: diciembre-2003
Ubicación: Alicante (Spain)
Mensajes: 471
Antigüedad: 20 años, 3 meses
Puntos: 5
Si te fijas el problema es que está asignando a un mismo índice del array $row los resultados de la consulta.
Con esto incrementas a cada lectura el índice
Código PHP:
$result=mysql_query("select city_name from cities where cities.id_countries=1",$con);
while(
$rowTmp mysql_fetch_array($result)) {
$row[] = $rowTmp["city_name"];

$content .="<td><div align='center'><span class='Estilo5'>Ciudad:<select name='select'>";
$content .="<option selected value=1>--";

foreach(
$row as $indice=>$value){
$content .="<option value=".($indice+2).">".$value;
}
$content .="</select></span></div></td>";

De esta forma te ahorra el contador de $a y $controw y usas el índice del array (que empieza en 0) al que sumas 2 para que empiece pasando al value un 2.

Creo que así funcionaría.

Salu2 ;)
__________________
[+]
[+]

Última edición por yoseman; 26/01/2005 a las 06:25
  #4 (permalink)  
Antiguo 26/01/2005, 08:01
Avatar de abe_k  
Fecha de Ingreso: diciembre-2004
Mensajes: 286
Antigüedad: 19 años, 3 meses
Puntos: 2
Perfesto!!

Mi dedos me traicionaron y mi cabezolo tb!! :)

Gracias a ambos!!

abe_k
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 08:01.