Parece que usas PHP inferior a la versión 4.1 .. ?
Bueno .. en el manual de PHP .. dan una alternativa (bueno .. implementan la función mysql_fetch_array() par esas versiones de PHP):
Código PHP:
function will exist on the next php update):
if (function_exists(odbc_fetch_array))
return;
function odbc_fetch_array($result, $rownumber=-1) {
if (PHP_VERSION > "4.1") {
if ($rownumber < 0) {
odbc_fetch_into($result, &$rs);
} else {
odbc_fetch_into($result, &$rs, $rownumber);
}
} else {
odbc_fetch_into($result, $rownumber, &$rs);
}
foreach ($rs as $key => $value) {
$rs_assoc[odbc_field_name($result, $key+1)] = $value;
}
return $rs_assoc;
}
Pero .. si quieres no es necesario que la uses .. sigue como lo hacias tu:
Código PHP:
<?php
session_start(); // inicio sessiones.
session_register("select_array"); // registras la variable (array) en la session
// **** Se establece la conexión con la fuente de datos
$conex = odbc_connect( $_Server, $_user, $_passw);
if($conex ) {
// **** preparamos el query
$consulta = "select cod , des from mibase.onl_tabla";
// **** hacemos a la variable igual al data object
$resultado = odbc_do($conex, $consulta);
if( $resultado > 0 ) {
while (odbc_fetch_row($resultado)) {
$cod=odbc_result($resultado,1);
$des=odbc_result($resultado,2);
$select_array[$cod]=$des; // array asociativa ..
}
}
// **** Se liberan recursos y se cierra la conexión
odbc_free_result($resultado);
odbc_close($conex);
}
?>
Y .. donde leas ese array de la sesion:
Código PHP:
<?
session_start(); // Incio sessiones.
// principio de formulario ..
echo "<select name=\"valcta\">" ;
foreach ($array_select as $clave => $valor){
echo "<option name=\"".$clave."\">".$valor."</option>";
}
echo "</select>";
// tu resto fomulario...
?>
Eso asumiendo que usas register_globals a ON .. (creo q así lo usas ..) Y esperando que PHP serialize el array por ty ..
Un saludo,