Comunidad de diseño web y desarrollo en internet online

Error en Mysql_resul()

Citar            
MensajeEscrito el 06 Ago 2005 11:17 pm
Holas.

Quisiera que por favor me orienten a ver que esta mal en este codigo, que me sirve para descargar los archivos que subi a mi servidor.

Código :

<?
require("dbconnect.inc.php");
$qry="select id,nombre,titulo,tipo from archivos";
$res=mysql_query($qry);
while($fila=mysql_fetch_array($res)){
echo "$fila[titulo]
<br>
$fila[nombre] ($fila[tipo])

<br>
<a href='descargar_archivo.php?id=$fila[id]'>Descargar</a>
<br>
<br>";

}
?>


El error que me presenta es en los msyql_result
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in

Pleas a ver si me ayudan porfa :)

Por jorgito

11 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 07 Ago 2005 09:00 am
que la consulta no te está devolviendo nada. Lo mejor sería que primero validaras si hay resultados o no.

más adelante tienes otros errores, que son intentar imprimir una posición de un vector

Código :

id=$fila[id]'>

..lo correcto sería agregar lo sgte a cada parte en donde quieres hacer lo mismo, así:

Código :

id={$fila[id]}'>

y así no te generará ningún error.

salu2

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

firefox
Citar            
MensajeEscrito el 07 Ago 2005 03:26 pm
<?
require("dbconnect.inc.php");
$qry="select id,nombre,titulo,tipo from archivos";
$res=mysql_query($qry);
while($fila=mysql_fetch_array($res)){

echo $fila[titulo].'<br>'.$fila["nombre"].' ('.$fila["tipo"].') <br> <a href="descargar_archivo.php?id='.$fila["id"].'">Descargar</a><br><br>';

}
?>
en el php evita usar varias lineas, asi evitaras perderte en el code, tambien es buena idea comentar tu code, sin importar quien tenga que leerlo nuevo (esto especialmente si eres egoista :wink: es broma)
para el codigo PHP utiliza comillas simples ( ' ) y para el html utiliza comillas dobles ( " ), y en los vectores utiliza las comillas en vez de
$fila[id] usa $fila["id"] y evita meter las variables PHP directamente
en el código, en vez de usar echo "<b>$variable</b>"; usa
echo "<b>".$variable."</b>";
mas adelante en la practica descubrirás porque te lo digo.

estos son solo tips, que aúnque no afectán tu codigo lo hara mas legible a la hora de buscar errores. evitarás de esta manera meter
comillas equivocás o errar la crear tu codigo.

Por jhony192

791 de clabLevel

1 tutorial

Genero:Masculino  

Just Another Programmer

firefox
Citar            
MensajeEscrito el 07 Ago 2005 07:28 pm
Personalmente no recomiendo EN ABSOLUTO meter codigo HTML de cualquier tipo dentro de PHP; eso lleva a no tener clara la separación entre el codigo y la presentación que determinan a un buen desarrollador; los "echo" deben ser usados para pasar al flujo de datos solo información obtenida usando PHP.
De hecho, la forma optima seria crear clases en PHP para cada cosa y crear una capa de abstracción del contenido con el codigo, por ejemplo, usando sistemas de templates (Que no son las mismas plantillas prediseñadas, pero eso lo sabe cualquier programador) como SMARTY o el de phpBB.
Claro, esta ultima opción es solo para programadores muy fuertes y en grandes proyectos, pero, sin importar el "tamaño" de tu proyecto, no combines HTML con PHP, cada cosa en su lugar y no metida entre "echo"s.

Aunque seria aun mejor que primero en la cabecera del archivo (antes de empezar a escribir codigo HTML) obtuvieras todos los datos y en el HTML solo usaras PHP para "imprimir" esos datos donde se requiera

Por Freddie

BOFH

53 tutoriales
597 articulos
43 ejemplos

Genero:Masculino   Admin

Conserje de Cristalab

clabbofh
Citar            
MensajeEscrito el 07 Ago 2005 07:47 pm
1.-Primero, lo que respecta a este error, "Warning: mysql_result(): supplied argument is not a valid MySQL result resource in"

A mí. las dos situaciones en las que me sucede esto son:
1.1 Cuando el numero de registros, resultado del query, es igual a Cero.
Esto lo soluciono, verificando así:

Código :

$qry="select id,nombre,titulo,tipo from archivos";
$res=mysql_query($qry); 
if( mysql_num_rows($res) > 0 ){
  //Uso el contenido del query
}else{
  //Le digo que no hay nada
}


1.2 La otra situación es, cuando existe un error en el query. Esto lo controlo así:

Código :

$qry="select id,nombre,titulo,tipo from archivos";
$res=mysql_query($qry)
or die("Error en la consulta de Archivos: ".mysql_error()); 


2.- Yo(estoy si es muy personal y tal vez muchos difieran), odio comentar el codigo. Prefiero hacer las siguientes actividades:

- Definir estandares propios para programar, documentarlos y anexarlos a los proyectos, como referencia.
- Uno de los estándares debe ser, que los nombres de variables, metodos, propiedades y funciones, hablen claramente, de lo que se tratan.
Por ejemplo, la función para abrir un archivo:

Código :

function openFile($fileName){


En cambio si usara funciones del tipo:

Código :

function ofi($nam){

Si es necesario documentar y usar comentarios. En cambio si usamos nombres claros, solo es necesario documentar, y no saturar nuestro código con comentarios.

3.- En lo respecta al uso de comillas, dobles o sencillas, no es que se recomiende una en específico. Es mas decisión del desarrollador y de los propios estandáres que el se ha definido. Además de que, su uso en PHP, difiere.

Explico un poco:

Código :

$nombre="Cris";
$Variable="Hola como estas $nombre";
$Variable='Hola como estas $nombre';

Como vemos, el resultado de usar una y otra es distinto.


4.- Como lo comenta F, la mejor opción es separar el código HTML(FrontEnd) de php(BackEnd). El uso de Templates es una excelente opción.

Suerte!

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

clabbrowser
Citar            
MensajeEscrito el 08 Ago 2005 01:57 am
En verdad me ayudaron bastante, pero tengo un problema al descargar un archivo cualquiera no me agarra el id del lista_ar.php a desc_ar.php

Código :

/*lista_ar.php*/
<a href='descargar_archivo.php?id={$fila[id]}'>Descargar</a>

/*desc_ar.php*/
require('dbconnect.inc.php');
$qry="select *from archivos where id='$id'";
$res=mysql_query($qry);
$tipo=mysql_result($res, 0, "tipo");
$contenido=mysql_result($res, 0, "contenido");
header("Content-type:". $tipo);


Que es lo q' pasa hay que realizarlo de otra manera o configurar el php.ini. Porque para nada me agarra el dato $id.

Graciass :)

Por jorgito

11 de clabLevel



Genero:Masculino  

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.