Foros del Web » Programando para Internet » PHP »

tengo graves problemas con mysql_fetch_ array/row/assoc etc

Estas en el tema de tengo graves problemas con mysql_fetch_ array/row/assoc etc en el foro de PHP en Foros del Web. es un poco largo el post , pero entendible, nada de otro mundo... necesito que me ayuden a entender, ya que me paso una vez ...
  #1 (permalink)  
Antiguo 01/05/2013, 11:31
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 11 meses
Puntos: 5
tengo graves problemas con mysql_fetch_ array/row/assoc etc

es un poco largo el post , pero entendible, nada de otro mundo...




necesito que me ayuden a entender, ya que me paso una vez esto y lo arregle de manera fulera, quiero saber por que pasa esto,si es la manera correcta, yo hago mal las cosas, ?=

bueno miren resulta que tengo una consulta sql, que en este caso me quiero que me traiga UN campoO DE CADA FILA.

SIMPLE. ES
SELECT NOMBRE FROM PERSONAS WHERE EDAD=23

me trae los nombres de personas que cumplan la edad de 23... visualmente en un gestor de base de datos "navicat" o cualquier otro se ve esto

------------------
NOMBRE
juan
pablo
jose
-----------------

bueno lo ideal seria pasar ese resultado a una array comun, osea tener esto...
Código PHP:
$nombres=(juan,pablo,jose); 
importante---
---------------------

tengo el sql, lo hago ejecutar, esta todo bien la conexion mysql etc..
Código PHP:
$array_nom=mysql_fetch_array($sql_nombres); 
// al resultado de los nombres lo coloco en un array.. esta bien esto???

"esta bien hacer mysql_fetch_array" por que con eso obtengo una sola fila de un registro,
y yo del sql, obtengo varias filas(un solo campo de cada fila)

SUPONGAMOS QUE COMO SE VE ARRIBA LOS RESULTADOS SERAN 3(JUAN , PABLO, JOSE)

despues quiero imprimir los resultado

CON PRINT_R($array_nom); // ESTO ME IMPRIME SOLO LA PRIMER FILA , ALGO COMO "0=>JUAN,1=>JUAN"

NO ES LO QUE QUIERO....

Y CON COUNT, ME IMPRIME 2!!! ES CUALQUIERA...

----------------------------------------------------------

COMO YA COMENTE, MI IDEA ES ALMACENAR EN UN ARRAY PLANO, LOS NOMBRE ASI

Código PHP:
$nombres=(juan,pablo,jose); 
LA UNICA MANERA DE AUNQUE SEA VER, LOS RESULTADOS SQL , FUE CON UN WHILE UNA TABLA,:.ASI

// $sql_nombres ES EL PUNTERO INDICE DEL RESULTADO SQL

Código PHP:
        echo "<table border = '1'> \n"
echo 
"<tr><td>Nombre</td></tr>\n"
while (
$row mysql_fetch_row($sql_nombres)){ 
       echo 
"<tr><td>$row[0]</td></tr> \n"

echo 
"</table> \n"
--------------

NO ME DIGAN QUE LA UNICA MANERA DE ALMACENAR LOS NOMBRES EN UN ARRAY PLANO ES HACER ESTO...

Código PHP:
unset($array_nombres_plano);
$array_nombres_plano;

while (
$row mysql_fetch_row($sql_nombres)){ 
       
$array_nombres_plano[]=$row[0]; 


se supone que ahi si quedara,algo como esto. pero es la unica manera=?
Código PHP:
$array_nombres_plano=('juan','pablo','jose'); 


gracias......

Última edición por vani18; 01/05/2013 a las 11:38
  #2 (permalink)  
Antiguo 01/05/2013, 12:39
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: tengo graves problemas con mysql_fetch_ array/row/assoc etc

Cita:
Iniciado por vani18
NO ME DIGAN QUE LA UNICA MANERA DE ALMACENAR LOS NOMBRES EN UN ARRAY PLANO ES HACER ESTO...
No me gustaría contrariarte, pero no me dejas alternativa... al menos usando sólo PHP, SÍ, esa es la única manera.

Si acaso, reemplaza las dos primeras líneas por esta: $array_nombres_plano = array();

Recuerda que mysql_fetch_array/assoc/row/etc, te devolverán el registro actual, de acuerdo a la posición del apuntador en el juego de resultados de la consulta.

No sé si exista una forma obtener el "array plano" con procedimientos almacenados o alguna otra técnica, pero no le veo sentido a querer simplificar algo que ya es simple ni a tu "grave problema/queja/duda/lo que sea".
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 01/05/2013, 13:57
 
Fecha de Ingreso: junio-2010
Mensajes: 752
Antigüedad: 13 años, 11 meses
Puntos: 5
Respuesta: tengo graves problemas con mysql_fetch_ array/row/assoc etc

Cita:
Iniciado por Triby Ver Mensaje
Si acaso, reemplaza las dos primeras líneas por esta: $array_nombres_plano = array();.

ah,, cuando limpio el array ,vos decis que es mas simple poner eso,, no?
  #4 (permalink)  
Antiguo 01/05/2013, 14:44
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: tengo graves problemas con mysql_fetch_ array/row/assoc etc

Si usas PDO en lugar de la vieja mysql_, podrías usar el método fetchCol que te permite hacer eso que quieres.

Saludos.
  #5 (permalink)  
Antiguo 01/05/2013, 16:30
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: tengo graves problemas con mysql_fetch_ array/row/assoc etc

Cita:
Iniciado por vani18 Ver Mensaje
ah,, cuando limpio el array ,vos decis que es mas simple poner eso,, no?
Aparte de más simple, es más recomendable porque:

unset($variable); << No tiene función alguna si la variable no ha sido definida
$variable; << Esto qué hace?, según yo.... NADA, aunque tal vez te envíe un mensaje de error de variable indefinida, porque previamente la eliminaste

Entonces, basta con crear la variable, asignando el valor inicial:

$variable = array();


Cita:
Iniciado por GatorV Ver Mensaje
Si usas PDO en lugar de la vieja mysql_, podrías usar el método fetchCol que te permite hacer eso que quieres.

Saludos.
Fetchcolumn no elimina la necesidad del while para llenar el array... o sí?
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 02/05/2013, 19:49
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 1 mes
Puntos: 406
Respuesta: tengo graves problemas con mysql_fetch_ array/row/assoc etc

Cita:
Fetchcolumn no elimina la necesidad del while para llenar el array... o sí?
Creo que el amigo @GatorV se refería a fetchAll(), o al menos es lo que deduzco al leer el tema, fetchAll() retorna todos los registros obtenidos por la sentencia SQL en un array sin la necesidad de algún bucle...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 02/05/2013, 21:53
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: tengo graves problemas con mysql_fetch_ array/row/assoc etc

Gracias por la aclaración Nemutagk, seguramente por ahí iba GatorV.
__________________
- León, Guanajuato
- GV-Foto
  #8 (permalink)  
Antiguo 03/05/2013, 10:20
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: tengo graves problemas con mysql_fetch_ array/row/assoc etc

Así es, es fetchAll con COLUMN:
Código PHP:
Ver original
  1. $result = $sth->fetchAll(PDO::FETCH_COLUMN, 0);

Etiquetas: mysql, registro, resultados, select, sql, tabla
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 17:26.