Foros del Web » Programando para Internet » PHP »

problema con array php

Estas en el tema de problema con array php en el foro de PHP en Foros del Web. Buenas tengo un array que saco de una base de datos: $result = mysql_query("SHOW TABLE STATUS FROM black_list;"); while($array = mysql_fetch_array($result)) { $cadena = "$array[Name]"; ...
  #1 (permalink)  
Antiguo 19/11/2011, 11:03
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Pregunta problema con array php

Buenas tengo un array que saco de una base de datos:

$result = mysql_query("SHOW TABLE STATUS FROM black_list;");
while($array = mysql_fetch_array($result)) {

$cadena = "$array[Name]";


if (preg_match ("/album_/", $cadena)) {

$cad = substr ($cadena, 0, -1);
echo $cad . ", ";
}
}

Bueno esto me devuelve el numero de campos que empiezan por "album_" los separa con una coma y les saca la ultima letra...

el problema es que quiero que quiero que me muestre todos los albumes que hay en la base de datos, que me los separe con una coma, todos EXCEPTO el ultimo, de esta manera puedo hacer otra consulta MYSQL

No se si a alguien se le ocurre la solucion o otra via mas facil...
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #2 (permalink)  
Antiguo 19/11/2011, 12:10
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: problema con array php

Al último aplica una función substr para eliminar los últimos dos carácteres (coma y espacio)
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 19/11/2011, 12:24
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: problema con array php

Gracias por responder,

Lo que ocurre es que le he aplicado substr lo que pasa es que me devuelve esto:

por ejemplo:

Esto es lo que sale del array
album_alberto, album_manuel, etc

y al aplicarle substr me sale:

album_albert, album_manue, etc

es decir me lo aplica a todos no solo al ultimo... lo que quiero es meter todo este array en una variable y meterla en otra consulta, pero si tiene coma al final me da error SQL

esto es lo que quiero

$resultado=mysql_query("SELECT * FROM album_alberto, album_manuel ORDER BY votos DESC LIMIT 3");

pero ahora tengo esto:

$resultado=mysql_query("SELECT * FROM album_alberto, album_manuel, ORDER BY votos DESC LIMIT 3");
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #4 (permalink)  
Antiguo 19/11/2011, 12:29
 
Fecha de Ingreso: noviembre-2011
Ubicación: Morelia, Mich, México
Mensajes: 95
Antigüedad: 12 años, 5 meses
Puntos: 18
Respuesta: problema con array php

hola muy sencillo tienes tu array

Código PHP:
Ver original
  1. //Suponiendo que tu array esta asi
  2.  
  3. $array[0] = "album_manuel";
  4. $array[1] = "album_alberto";
  5. $array[2] = "album_miguel";
  6.  
  7. $count = count($array);
  8.  
  9. for ($i=0; $i <= $count; $i++) {
  10.    $cadena . = $array[$i] . ", ";
  11. }
  12.  
  13. $cadena = substr($cadena,0,-1);

y listo

saludos, espero si sea lo que buscas
  #5 (permalink)  
Antiguo 19/11/2011, 12:48
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: problema con array php

Hola amigo!

el problema es que el array viene de una busqueda en MYSQL, te pongo el codigo:


<?

$result = mysql_query("SHOW TABLE STATUS FROM albums;");
while($array = mysql_fetch_array($result)) {
$cadena = "$array[Name]"; // hasta aqui todo normal le digo que me saque todo un listado de las tablas de la base de datos

if (preg_match ("/album_/", $cadena)) //aqui le digo que solo me interesan las que empiecen por album_
{

$mar= $cadena . ", ";
$cad = substr ($mar, 0, -1);
echo $cad; //y esto es lo que no tira bien... lo que quiero es que quite la ultima coma

//porque asi puedo usar esa cadena para hacer una nueva busqueda MYSQL pero solo en las tablas que empiezan por album_
//como no puedo saber las que hay ya que los usuarios crean nuevas...pues se me habia ocurrido esta via

//muestro donde iria la nueva busqueda

}
}




$resultado=mysql_query("SELECT * FROM $cad ORDER BY votos DESC LIMIT 3");
while ($array = mysql_fetch_array($resultado) ) {
$portada = $array[portada];
echo "<img src='$portada'/>";
echo "<br/>";
} //bueno seria algo asi...


?>
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #6 (permalink)  
Antiguo 19/11/2011, 13:11
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años
Puntos: 322
Respuesta: problema con array php

Y si nos muestras dónde aplicas el segundo substr?
Por cierto, nada te cuesta usar el highlighter del foro...
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #7 (permalink)  
Antiguo 19/11/2011, 13:13
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con array php

Y porque no usar implode?

Código PHP:
Ver original
  1. $cadena = implode(', ', $array);
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 19/11/2011, 13:16
 
Fecha de Ingreso: noviembre-2011
Ubicación: Morelia, Mich, México
Mensajes: 95
Antigüedad: 12 años, 5 meses
Puntos: 18
Respuesta: problema con array php

Pues si como dice Triby usa implode, aqui http://mx2.php.net/manual/en/function.implode.php puedes ver como funciona y para que sirve

pero en resumen te une un arreglo con algun caracter que tu especifiques
  #9 (permalink)  
Antiguo 19/11/2011, 13:44
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: problema con array php

Muy buenas perdonad mi torpeza pero no me acaba de salir, he colocado esto y me saca todos los datos de la base es decir ahi colo co un poco de lo que saca para que veais



Este es el codigo

Código PHP:
Ver original
  1. <?
  2.  
  3. $result = mysql_query("SHOW TABLE STATUS FROM album;");
  4. while($array = mysql_fetch_array($result)) {
  5. $cadena = "$array[Name]";
  6.                              
  7. if (preg_match ("/album_/", $cadena))
  8. {
  9.  
  10. $cadena = implode(', ', $array);
  11. echo $cadena;
  12.  
  13. }
  14. }
  15.  
  16.                            
  17.    
  18. $resultado=mysql_query("SELECT * FROM $cadena ORDER BY votos DESC LIMIT 3");
  19. while ($array = mysql_fetch_array($resultado) ) {
  20. $portada = $array[portada];
  21. echo "<img src='$portada'/>";
  22. echo "<br/>";
  23. }
  24.                    
  25. ?>


Y esto lo que saca:

album_miguel, album_miguel, MyISAM, MyISAM, 10, 10, Dynamic, Dynamic, 10, 10, 579, 579, 5840, 5840, 281474976710655, 281474976710655, 3072, 3072, 48, 48, 548, 548, 2011-11-19 16:46:02, 2011-11-19 16:46:02, 2011-11-19 16:46:56, 2011-11-19 16:46:56, , , utf8_unicode_ci, utf8_unicode_ci, , , , , , album_klon, album_klon, MyISAM, MyISAM, 10, 10, Dynamic, Dynamic, 9, 9, 138, 138, 1300, 1300, 281474976710655, 281474976710655, 2048, 2048, 56, 56, 11, 11, 2011-09-16 20:57:44, 2011-09-16 20:57:44, 2011-11-19 16:43:19, 2011-11-19 16:43:19, , , ucs2_spanish_ci, ucs2_spanish_ci, , , , , , album_real, album_real, MyISAM, MyISAM, 10, 10, Dynamic, Dynamic, 10, 10, 584, 584, 5840, 5840, 281474976710655, 281474976710655, 3072, 3072, 0, 0, 548, 548, 2011-11-19 16:31:15, 2011-11-19 16:31:15, 2011-11-19 16:31:15, 2011-11-19 16:31:15, , ,

Y si le pongo en vez de array --> $cadena me saca este error

$cadena = implode(', ', $array);
echo $cadena;

lo reemplazo por esto

$cadena = implode(', ', $cadena);
echo $cadena;


Aqui el error:

Warning: implode() [function.implode]: Bad arguments. in C:\xampp\htdocs\blackbook\container_home.php on line 117


Bueno muchas gracias por la ayuda!
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #10 (permalink)  
Antiguo 19/11/2011, 13:56
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con array php

Yo me pregunto... para que haces una cosulta del estado de la tabla (SHOW TABLE STATUS) si lo que quieres es obtener solo un campo identificador para poder crear despues otra consulta?

Código PHP:
Ver original
  1. $result = mysql_query('SELECT campo_identificador FROM tabla');
__________________
- León, Guanajuato
- GV-Foto
  #11 (permalink)  
Antiguo 19/11/2011, 14:15
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: problema con array php

Hola triby,

Estoy haciendo una consulta para sacar las portadas de los albumes mas votados, cuando un usuario crea un perfil se genera automaticamente una tabla con el nombre album_nombre_de_usuario

Bien necesito buscar en todas las tablas album_loquesea el numero de votos y sacar las 3 que mas tienen, como no se puede consultar directamente a una base de datos, sino por tabla (hasta donde tengo entendido), primero tengo que separar las tablas album_loquesea, y despues meterlas en una variable todas ellas separadas por comas menos la ultima para realizar la consulta que de verdad me interesa.

Quizas me este liando pero no se me ocurre otra manera...
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #12 (permalink)  
Antiguo 19/11/2011, 14:46
 
Fecha de Ingreso: noviembre-2011
Ubicación: Morelia, Mich, México
Mensajes: 95
Antigüedad: 12 años, 5 meses
Puntos: 18
Respuesta: problema con array php

Hola, no tiene mucho sentido que crees una tabla por usuario.

Tabla > album
Campos > album_id, usuario_id, nombre del album

Tabla > Voto
Campos > album_id, votos

Tabla > Usuario
Campos > usuario_id, nickname


por poner un ejemplo.. asi seria mucho mas facil todo,
  #13 (permalink)  
Antiguo 19/11/2011, 15:01
Avatar de protoameeba  
Fecha de Ingreso: septiembre-2005
Mensajes: 195
Antigüedad: 18 años, 7 meses
Puntos: 3
Respuesta: problema con array php

Ya... lo que pasa es que los usuarios pueden editar varios albumes, es decir pueden tener muchos y dentro de cada album va mucha informacion... no se estoy al final del proyecto y cambiar la estructura ahora de las sql y toda la programacion ya hilada me tira para atras, bueno le dare unas vueltas...de todas maneras si a alguien se le ocurre una solucion es bienvenida

gracias!
__________________
Ser libre no es hacer lo ke uno kiere, sino kerer lo ke uno hace....
  #14 (permalink)  
Antiguo 20/11/2011, 00:41
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: problema con array php

Ups, en verdad que es mucho mas complicado crear, mantener y consultar muchas pequeñas tablas que una muy grande y, de todos modos, debo insistir en que no requieres informacion de la tabla para hacer lo que quieres, simplemente obtienes los identifficadores y con eso armas la siguiente consulta.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: 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 01:54.