Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   cargas el resultado de una consulta en un vector (https://www.clubdelphi.com/foros/showthread.php?t=13256)

cahosoft 11-08-2004 22:13:37

cargas el resultado de una consulta en un vector
 
Hola todos como estas...

Mi inquitud es la siguiente....
Tengo una base de datos en my sql... deseo almacenar los datos que resultan de una consulta en un vector.... de la siguiente manera se hace:
$sql="SELECT * FROM ART_SINONI
WHERE CODCARRERA='$codcarrera'
ORDER BY CODMAT";
$res_3=mysql_db_query("ayre",$sql);
$cont=0;
while ($resultado3 = mysql_fetch_array($res_3))
{
$cont++;
$s_codmat[$cont]=$resultado3["CODMAT"];
$s_sinonimo[$cont]=$resultado3["SINONIMO"];
}

quisiera saber... si hay una mejor forma de hacerlo.....

roman 12-08-2004 00:19:43

Código PHP:

$sql 
  
"SELECT * FROM ART_SINONI ".
  
"WHERE CODCARRERA='$codcarrera' ".
  
"ORDER BY CODMAT"

$res_3=mysql_db_query("ayre",$sql);
$s_codmat = array();
$s_sinonimo = array();
while (
$resultado3 mysql_fetch_array($res_3))
{
  
$s_codmat[]=$resultado3["CODMAT"];
  
$s_sinonimo[]=$resultado3["SINONIMO"];


No sé si es mejor o no pero así me gusta más. Evitas el uso del contador. Cuando haces la asignación con los corchetes vacíos los elementos se van insertando secuencialmente.

// Saludos

cahosoft 13-08-2004 15:18:57

gracias por tu ayuda
 
te agradesco el aporte

Emilio 19-08-2004 23:30:39

La respuesta de Roman me parece perfecta, no obstante con su permiso añadiría que no es necesario iniciarlizar los arrays
$s_codmat = array();
$s_sinonimo = array();

PHP ya inicializa las variables él solito, de ahí que podamos con toda comodidad pasar de un tipo de dato a otro sin intervención alguna por nuestra parte.

roman 20-08-2004 00:05:25

Cita:

Empezado por Emilio
no obstante con su permiso añadiría que no es necesario iniciarlizar los arrays

¡Ah! Pero es que hay una razón para hacerlo, ;)

Los arreglos ciertamente se iniciaizarán desde la primera vez que asignemos

Código PHP:

$arreglo[] = $resultado['elemento']; 

siempre y cuando pasemos por ahí. Si la consulta no devuelve resultados entonces el interior del while nunca se ejecutará y la variable $arreglo, además de no haber quedado definida- y me parece que las últimas versiones de PHP son más estrictas en ese aspecto - no será un arreglo por lo que cualquier llamada a una función que utilice arreglos nos mandará un error. Claro que podríamos verificar con:

Código PHP:

if (isset($arreglo) && is_array($arreglo))
{
  ...


pero me parece más natural en tal caso devolver un arreglo vacío como se obtiene con la inicialización.

// Saludos


La franja horaria es GMT +2. Ahora son las 23:07:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi