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''];
}