Foros del Web » Programando para Internet » PHP »

crear array y obteniendo los valores de mysql

Estas en el tema de crear array y obteniendo los valores de mysql en el foro de PHP en Foros del Web. Tengo esta tabla: De la cual quiero generar un array para posteriormente pasar variables algo tipo: Código PHP: $codigopostal  =  $campo [ "cp" ];  El ...
  #1 (permalink)  
Antiguo 03/07/2014, 05:15
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
crear array y obteniendo los valores de mysql

Tengo esta tabla:



De la cual quiero generar un array para posteriormente pasar variables algo tipo:

Código PHP:
$codigopostal $campo["cp"]; 
El "cp" lo recoge del campo "campo" de la base de datos

y el resultado de $codigopostal = "08224"

de esa forma no tengo que ir ejecutando cada vez una consulta sql para cada variable.

Asi evito hacer algo parecido a:

Código:
select * from tabla where criterio = lo_que_sea
Si quiero crear el array manualmente no hay problema, pero la gracia era crear un array partiendo de la consulta mysql (y asi evitar el acceso a la base de datos)
http://www.php.net/manual/es/language.types.array.php

Gracias por adelantado

P.D:
El acceso a la base de datos lo hago por mysqli

Código PHP:
$sqlempresa$mysqli->query("SELECT * from tabla"); 
__________________
Estrella 923
  #2 (permalink)  
Antiguo 03/07/2014, 06:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: crear array y obteniendo los valores de mysql

¿Y por qué en lugar de complicarte la vida, no haces simplemente uso del método fetch_array(), de MYSQLI?
Cita:
de esa forma no tengo que ir ejecutando cada vez una consulta sql para cada variable.
NADIE ejecuta una consulta por campo, cuando quieres obtener todos los valores de cada campo del registro... No lo hagas complicado. Las cosas son más simples.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 03/07/2014, 08:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: crear array y obteniendo los valores de mysql

Agradeceria un poco de código, que eso siempre ayuda

http://www.php.net/manual/es/mysqli-...etch-array.php

Código PHP:
$row $result->fetch_array(MYSQLI_ASSOC);
printf ("%s (%s)\n"$row["Name"], $row["CountryCode"]); 
Pero sigo sin comprender como obtengo o paso a una variable dicho resultado

Porque aquí solo me recoge el primer valor que tenga de la tabla
__________________
Estrella 923
  #4 (permalink)  
Antiguo 03/07/2014, 09:10
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: crear array y obteniendo los valores de mysql

Cada "fetch array" que hagas, te traerá una "linea" de la tabla.

Puedes iterar sobre el fetch array:
Código PHP:
while($row $result->fetch_array(MYSQLI_ASSOC)) {
    
printf ("%s (%s)\n"$row["Name"], $row["CountryCode"]); 

Saludos
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 03/07/2014, 09:24
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: crear array y obteniendo los valores de mysql

Código HTML:
$sqlempresa= $mysqli->query("SELECT * from lnx_empresa");

while($row = $sqlempresa->fetch_array(MYSQLI_ASSOC)) {
    printf ("%s (%s)\n", $row["campo"], $row["valor"]); 
}
Lo que hace esto por lo que veo es imprimir %s y (%s)

Lo que necesito es que si yo le pido la variable $row["pobla"] (entiendo que es asi) me devuelva la ciudad por ejemplo:

$ciudad = $row["pobla"];

y esto no lo hace. Dame un poco más de luz porque no lo veo
__________________
Estrella 923
  #6 (permalink)  
Antiguo 03/07/2014, 09:28
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: crear array y obteniendo los valores de mysql

%s lo cambia por la string q le pases, en este caso es $row["campo"] y $row["valor"]

El "problema" que tienes es por el diseño de tu tabla. Normalmente, la tabla "Empresas" sería algo así como:
Id | Nombre | NombreFiscal | NIF | Direccion | CP | etc...

Y tu tienes
Id | Campo | Valor

El problema de tu tabla es q 1) no sabes los datos de quien son (si tienes dos empresas, que harás?)
2) Para obtener esos datos tienes que hacer más consultas.

Te recomiendo q cambies el diseño ;)

Saludos
__________________
>> Eleazan's Source
>> @Eleazan
  #7 (permalink)  
Antiguo 03/07/2014, 09:35
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: crear array y obteniendo los valores de mysql

No es cosa del diseño, resulta que "empresa" es la tabla dde configuración y aquí le añado todos los valores posibles (se puede añadir más campos si fueran necesarios) de ahí a usar un array y ya no solo para eso, sino en el momento que comprenda como hacer que funcione el array puedo usarlo para otros proyectos y lo más importante. aprender.
__________________
Estrella 923
  #8 (permalink)  
Antiguo 03/07/2014, 09:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: crear array y obteniendo los valores de mysql

He probado con esto, pero no me muestra nada y creo que el error casi 100% seguro que esta aquí:

Código:
$arraydb[$row["campo"]] = $row["valor"];
Código PHP:
$sqlempresa$mysqli->query("SELECT * from lnx_empresa");

$arraydb{"campo" => "valor"};

while(
$row $sqlempresa->fetch_array(MYSQLI_ASSOC)) {
    
$arraydb[$row["campo"]] = $row["valor"];
}



$poblacion $arraydb["pobla"]; 
__________________
Estrella 923
  #9 (permalink)  
Antiguo 04/07/2014, 03:50
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: crear array y obteniendo los valores de mysql

lo único que me funciona es esto:

Código PHP:
$ConsultaMySql$mysqli->query("SELECT * from lnx_empresa");

while(
$row mysqli_fetch_array($ConsultaMySql))
{

if (
$row["campo"] == 'razonsocial') {$razonsocialdb $row["valor"];}
if (
$row["campo"] == 'nomcomercial') {$nomcomercialdb $row["valor"];}
if (
$row["campo"] == 'cp') {$cpdb $row["valor"];}
if (
$row["campo"] == 'pobla') {$pobladb $row["valor"];}
if (
$row["campo"] == 'prov') {$provdb $row["valor"];}
if (
$row["campo"] == 'pais') {$paisdb $row["valor"];}
if (
$row["campo"] == 'dir') {$dirdb $row["valor"];}
if (
$row["campo"] == 'tel') {$teldb $row["valor"];}


Pero entiendo que esto se puede hacer con un array ¿pero como? mira que he probado código que hay incluso en la web de php.net pero no se ni como hacer que funcione el array.
__________________
Estrella 923

Última edición por estrella_de_Galicia; 04/07/2014 a las 03:57
  #10 (permalink)  
Antiguo 04/07/2014, 04:15
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: crear array y obteniendo los valores de mysql

Al hacer eso, estás haciéndolo con un array...$row es eso.
No termino de entender bien tu dificultad.

El while recorre un array de arrays, porque eso es lo que recibe de MySQL..
¿Eso queda claro?
Y con cada ciclo recorres uno de los array.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 04/07/2014, 04:38
 
Fecha de Ingreso: febrero-2008
Mensajes: 115
Antigüedad: 16 años, 2 meses
Puntos: 4
Respuesta: crear array y obteniendo los valores de mysql

Lo siento, pero no me queda claro.

Entiendo hasta cierto punto que recupero los datos con $row["campo"] pero ¿Cómo lo añado a un array? Para luego posteriormente recupéralo como por ejemplo $array["nombre"] y me recupere el nombre
__________________
Estrella 923

Etiquetas: arrays, mysql
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 04:25.