Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/04/2007, 09:47
Avatar de djreficul
djreficul
 
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 18 años, 4 meses
Puntos: 0
Re: Sql Server y tipos de campo TEXT e Image

Bueno, pues muestro el código q uso para mostrar los registros:

Código PHP:
<?php
$sql
="SELECT id,marca,modelo,caracteristicas,precio,activo FROM catalogotlf ORDER BY id asc";
$consulta=mssql_query ($sql,$conec);
$filas=mssql_num_rows($consulta);
if (
$filas>0) {
?>
<table align="center">
    <tr>
        <th><div align="center"><strong>ID</strong></div></th>
        <th><div align="center"><strong>MARCA</strong></div></th>
        <th><div align="center"><strong>MODELO</strong></div></th>
        <th><div align="center"><strong>CARACTER&Iacute;STICAS</strong></div></th>
        <th><div align="center"><strong>IMAGEN</strong></div></th>
        <th><div align="center"><strong>PRECIO</strong></div></th>
        <th><div align="center"><strong>ACTIVO</strong></div></th>
    </tr>
<?php
    
while ($fila=mssql_fetch_array($consulta)) {
?>
    <tr>
        <td><div align="center"><strong><?php echo $fila[0]; ?></strong></div></td>
        <td><div align="center"><?php echo $fila[1]; ?></div></td>
        <td><div align="center"><?php echo $fila[2]; ?></div></td>
        <td><div align="center"><?php echo $fila[3]; ?></div></td>
        <td><div align="center"><img src="showimage.php?id=<?php echo $fila[0]; ?>" border="0" /></div></td>
        <td><div align="center"><?php echo $fila[4]; ?></div></td>
        <td><div align="center"><?php echo $fila[5]; ?></div></td>
    </tr>
<?php        
    
}
?>
</table>
<?php
}
El hecho es q queda truncado a 4096 caracteres pero no sé si a causa de PHP o a causa de la sentencia SQL. En la sentencia insert ni siquiero uso addslashes ni nada por el estilo xq lo q inserto es de confianza y los datos los obtengo leyendo una pagina html distribuido en partes según lo q necesito.

Saludos.

EDITO:

El hecho de q esté limitado a 4096 caracteres forma parte de la configuración de PHP. Si tenemos acceso al php.ini sólo con modificar lo siguiente bastaría:

; Valid range 0 - 2147483647. Default = 4096.
mssql.textlimit = 2147483647

; Valid range 0 - 2147483647. Default = 4096.
mssql.textsize = 2147483647

Aún así no es una solución totalmente válida ya q si usamos un host ajeno qué se podría hacer?
En mi caso no importa porque uso el propio pero creo q es necesaria una solución a este problema.

Por otro lado la imagen sigue dándome como resultado:

Resource id #10

Adjunto el código para mostrar la imagen:

Código PHP:
            //Aseguro q en este script no hay ningun echo ni codigo html q salga antes de la cabecera de abajo.
    
$sql="SELECT imagen,tipoimagen FROM catalogotlf WHERE id=$id";
    
$consulta=mssql_query ($sql,$conec);
    
$filas=mssql_num_rows($consulta);
    if (
$filas>0) {
        
$imagen=mssql_result($consulta,0,0);
        
$ext=mssql_result ($consulta,0,1);
        switch (
$ext) {
            case 
"jpg":
            case 
"jpeg":
                
$mime="image/jpeg";
                break;
            case 
"gif":
                
$mime="image/gif";
                break;
            case 
"png":
                
$mime="image/png";
                break;
            default:
                
$mime="";
                break;
        }
        if (
$mime!="") {
            
header ("Content-Type: ".$mime);
            echo 
$imagen;
        } else {
            
//Muestro una imagen por defecto 
Saludos.
__________________
La muerte es un camino que todos debemos recorrer...

Última edición por djreficul; 24/04/2007 a las 10:19 Razón: Parte semisolucionada