Llenar combo con odbc

Estoy trabajando con odbc
Tengo este código:
$query="SELECT * FROM Tabla_PHP_ArticulosCliente where CIF='".$_SESSION["CIF"]. "'";
$result = odbc_exec($myDB,$query);
$num = odbc_num_rows($result);
print "Num=" .$num;
$num=-1, cómo puedo sacar el número de registros?? Y por que me da -1??

1 respuesta

Respuesta
1
Es cierto, en ese detalle no había reparado. La función odbc_result no igual que mysql_result donde si puedes seleccionar el registro y la columna. Usando odbc_result obtienes la columna del registro actual. Por tanto, tienes que ir avanzando de registro por ejemplo usando el siguiente código:
while(odbc_fetch_row($resultC)){
$CodArt = odbc_result($resultC,4);
$Designacion = odbc_result($resultC,5);
echo "<option value=$CodArt>$Designacion</option>";
}
Odbc_fetch_row devolverá FALSE cuando no haya más registros.
Ok! Gracias!
Una cosita más, ¿cómo puedo definir el alto del combo?
Lo tengo así y el ancho me lo respeta pero el alto no:
print "<select name=\"Busqueda\" id=\"Busqueda\" style='HEIGHT:22; WIDTH:350' onChange=\"Asigna(this.value)\">";
Gracias y con esto finalizo
Gracias tenias razón, he hecho otra consulta tal y como me has dicho. Pero a parte de la consulta el problema está también el odbc_result porque mysql_result tiene un parámetro en el que le indicas el número de fila, pero en odbc_result por lo que veo no.
¿Sabes algo de esto?
Gracias
Tienes la siguiente consulta:
$sql="SELECT count(*) as Total FROM Tabla_PHP_ArticulosCliente where CIF='".$_SESSION["CIF"]. "'";
Ahí solo veo que devuelve una columna llamada Total. Sin embargo, al rellenar el select intentas poner la columna 4 y la 5. Deberías hacer otro tipo de consulta como por ejemplo:
$sql="SELECT * FROM Tabla_PHP_ArticulosCliente where CIF='".$_SESSION["CIF"]. "'";
Pruébalo de esa forma.
He conseguido sacar el valor de $num (número de registros), pero mi problema ahora es que el combo me aparece vacío.
¿Dónde puede estar el error?
Te dejo el código.
<?php
$sql="SELECT count(*) as Total FROM Tabla_PHP_ArticulosCliente where CIF='".$_SESSION["CIF"]. "'";
$resultC = odbc_exec($myDB,$sql);
$num = odbc_result($resultC,"Total");
echo "<select name=\"Busqueda\" id=\"Busqueda\" style='width:250' onChange=\"Asigna(this.value)\">";
for($i=0;$i<$num;$i++)
{
$CodArt = odbc_result($resultC,$i,4);
$Designacion = odbc_result($resultC,$i,5);
echo "<option value=$CodArt>$Designacion</option>";
}
?></select>
Entra en la siguiente página del manual de php:
http://www.php.net/manual/en/function.odbc-num-rows.php
Yo no uso odbc y no puedo hacer pruebas, pero por lo que dice, suele ocurrir en determinadas ocasiones. En esa página tienes algunas soluciones.
- Una de esas soluciones es usar DISTINCT en la consulta.
- Otra sería usar un código similar al siguiente:
$rows = odbc_result_all($sql_result, "border='1' bordercolor='#003636'");
odbc_num_rows($sql_result);
print "Number of rows:$rows";
odbc_free_result($sql_result);
odbc_close($connection);
?>
Pruébalo, en esa página web tienes más soluciones que seguro que te ayudarán a resolver el problema. Por lo que parece es bastante común.
Perdona por tardar en responder.
El alto de los select no se puede cambiar con height. Ten en cuenta que incluye lineas de texto individuales, y solo puedes tener seleccionada una línea, de forma que si cambias el alto quedaría espacio en blanco. Quizá sea por eso por lo que no lo permiten.
La forma que yo he encontrado de cambiar el alto de un select es cambiando el tamaño de las letras que tiene. Usa algo parecido a lo siguiente:
<select style='font-size: 18px'>
Cambias el tamaño del texto del select a 18px y se agranda el alto del select tambien.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas