vistas tablas rendimiento rapidas query para optimizar optimizacion mas lento hacer grandes eficientes datos crear consultas como cantidades php mysql arrays

tablas - Crear una matriz PHP desde la columna MySQL



optimizar tablas grandes mysql (10)

No hay ninguna función para hacer esto usando la extensión mysql, puedes hacer esto:

$result = array(); while ($row = mysql_fetch_array($r, MYSQL_NUM)) { $result[] = $row[0]; }

Aparentemente, es ligeramente más rápido obtener las columnas en una matriz indexada numéricamente, y aquí no hay ningún beneficio real al tener el formato de matriz asociativa.

mysql_fetch_array me dará una matriz de una fila recuperada. ¿Cuál es la mejor manera de generar una matriz a partir de los valores de todas las filas en una columna?

Edición: Muchas respuestas geniales. ¡Gracias a todos los que respondieron! Terminé yendo con una solución similar a lo que Gumbo y GSto sugirieron. Le di los puntos de respuesta a GSto porque él tiene menos puntos (solo para ayudar al pequeño, nada personal).


Puedes hacerlo :

$columns = array(); $i=1; while( $row = mysql_fetch_array($sql) ) { $columns [$i]=$row[''value'']; $i++; }


Recorrer el resultado:

$result = mysql_query(...); $data = array(); while ($row = mysql_fetch_array($result)) { array_push($data, $row["columnyouwant"]); }


Si no necesita otra información en esa tabla, puede consultar solo la columna que necesita y eso lo hace todo más fácil:

$query = mysql_query("SELECT * FROM table WHERE id=''$int'' LIMIT 1"); $column = array(); $column = mysql_fetch_array($query);


Si usa PDO lugar de php-mysql, el valor de retorno de PDO :: query () implementa la interfaz Traversable, lo que significa que puede usarlo, por ejemplo, con foreach () (a diferencia del recurso de resultados de mysql que obtiene de mysql_query).

foreach( $pdo->query(''SELECT x,y,z FROM foo'') as $row ) {

Y en caso de que esto no sea suficiente y realmente necesite una matriz (es decir, get_class ($ x) === ''Array''), está el método fetchAll() .


Use un bucle while para obtener los registros y almacenarlos en una matriz:

$array = array(); while ($row = mysql_fetch_array()) { $array[] = $row[''column-x'']; }


podría hacer un bucle a través de la matriz y crear uno nuevo, así:

$column = array(); while($row = mysql_fetch_array($info)){ $column[] = $row[$key]; //Edited - added semicolon at the End of line.1st and 4th(prev) line }


// I''m using this for years and it works very good !! it''s easy and logic $translate = array(); while ($row = mysql_fetch_assoc($result)) { $cullomnkey = $row[''translshort'']; // is what you want the key to be $translate[$cullomnkey] = $row[$language]; // this is the key and the value in the array }


$query = mysql_query(''SELECT * from yourTable''); function mysql_field_array( $query ) { $field = mysql_num_fields( $query ); for ( $i = 0; $i < $field; $i++ ) { $names[] = mysql_field_name( $query, $i ); } return $names; } $fields = mysql_field_array( $query ); $output = implode( '','', $fields ); //outputs the columns names //echo count( $fields ); //this use if you want count of columns. $columns = ''{/"fields/":/".json_encode($output)./"}''; echo $columns; //for JSON output


$result = mysql_query("SELECT columnname FROM table WHERE x=y"); $columnValues = Array(); while ( $row = mysql_fetch_assoc($result) ) { $columnValues[] = $row[''columnname'']; }