Foros del Web » Programando para Internet » PHP »

Resultado consulta mysql php

Estas en el tema de Resultado consulta mysql php en el foro de PHP en Foros del Web. hola tengo hecha una consulta en mysql para que me muestre una serie de datos, los saque por pantalla y estos datos a su vez ...

  #1 (permalink)  
Antiguo 12/06/2006, 01:29
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
Resultado consulta mysql php

hola tengo hecha una consulta en mysql para que me muestre una serie de datos, los saque por pantalla y estos datos a su vez sean links. El resultado son campos de una base de datos, siempre nombres de archivos que los quiero convertir en links para que me abran archivos que estan en el servidor....Bien la consulta es esta

<?php
$sql="SELECT Expedientes.expediente, Documentos.nombre FROM Expedientes, Documentos WHERE Expedientes.dni='$dniUsuarioL' AND Documentos.tipo='foto' AND Documentos.expediente=Expedientes.expediente" ;
$result = mysql_query($sql);
echo "<a href=\"".mysql_result($result,0,1)."\">".mysql_result($result,0,1)."</a>";


?>


cuando hay un solo registros me lo muestra bien poniendo ($result,0,1) pero luego me surgen dos problemas, cuando hay varios resultados no me los muestra nada mas que el primero osea q tendria q hacer un bucle o algo para que me listara todos, y segundo cuando no hay ninguno me da un warning de mysq como este de q no encuentra la fila que quiero mostrar...

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 10 in c:\appserv\www\nogues\cuenta2.php on line 89

Warning: mysql_result(): Unable to jump to row 0 on MySQL result index 10 in c:\appserv\www\nogues\cuenta2.php on line 89

y preguntaba a ver que se podia poner para que me mostrara todos con alguna variable o algo y tambien que cuando no haya registro q mostrar no me de ese warning, Gracias.
  #2 (permalink)  
Antiguo 12/06/2006, 01:45
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 18 años, 10 meses
Puntos: 7
Prueba el siguiente codigo:

Código PHP:
$sql="SELECT Expedientes.expediente, Documentos.nombre FROM Expedientes, Documentos WHERE Expedientes.dni='$dniUsuarioL' AND Documentos.tipo='foto' AND Documentos.expediente=Expedientes.expediente" ;
$result mysql_query($sql);

if (
mysql_num_rows($result)!=0){
    While (
$registro=mysql_fetch_assoc($result)){
        echo 
"<a href=\"".$registro['Documentos.nombre']."\">".$registro['Documentos.nombre']."</a>";
    };
}else{
    echo 
"No hay Datos";
}; 
Creo que te servira.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #3 (permalink)  
Antiguo 12/06/2006, 01:48
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
Gracias Bytevamp voy a probarlo y ahora te digo, gracias por la ayuda.
  #4 (permalink)  
Antiguo 12/06/2006, 01:59
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
bien lo he modificado y bien cuando no hay datos me saca el no hay datos osea que eso bien, pero cuando hay no me saca nada, debe de haber algo mal alsacar el echo porque si que entra en el bucle correcto pero no saca el campo.. a ver q puede ser........ gracias
  #5 (permalink)  
Antiguo 12/06/2006, 02:16
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
lo q no me saca es esto echo "<a href=\"".$registro['Documentos.nombre']."\">".$registro['Documentos.nombre']."</a>";
  #6 (permalink)  
Antiguo 12/06/2006, 02:26
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
prueba con mysql_fetch_row($result) en lugar de mysql_fetch_assoc a ver si va a ser por eso...
__________________
ALOZORRO v5.0 (ahora en .es)
  #7 (permalink)  
Antiguo 12/06/2006, 02:32
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
Gracias Azrael666 pero sigue sin mostrarme esos resultados....
  #8 (permalink)  
Antiguo 12/06/2006, 02:37
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Prueba poniendo parentesis tal que asi:

Código PHP:
echo "<a href=\"".($registro['Documentos.nombre'])."\">".($registro['Documentos.nombre'])."</a>"

Alguna vez me ha dado problemas por eso
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #9 (permalink)  
Antiguo 12/06/2006, 02:52
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
nada gracias oskarL joe q raro me ta trayendo loco....no me lo muestra ni para atras...No se si es que coge mal el $registro o que...
  #10 (permalink)  
Antiguo 12/06/2006, 03:47
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
Nada no lo consigo, me funciona con esta sentencia

echo "<a href=\"".mysql_result($result,0,1)."\">".mysql_res ult($result,0,1)."</a>";

siempre que sea solo un registro, sino hay o hay mas de uno ya nada y necesito que me muestre todos los que tenga y si no tiene q me salte el mensaje de no hay datos, no se porque no me funciona lo que los compañeros me han dicho, haciendo condiciones..

$sql="SELECT Expedientes.expediente, Documentos.nombre FROM Expedientes, Documentos WHERE Expedientes.dni='$dniUsuarioL' AND Documentos.tipo='foto' AND Documentos.expediente=Expedientes.expediente" ;
$result = mysql_query($sql);

if (mysql_num_rows($result)!=0){
While ($registro=mysql_fetch_assoc($result)){
echo "<a href=\"".$registro['Documentos.nombre']."\">".$registro['Documentos.nombre']."</a>";
};
}else{
echo "No hay Datos";
};
  #11 (permalink)  
Antiguo 12/06/2006, 04:05
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Buenos dias,
prueba esto a ver q tal...
Código PHP:
$sql="SELECT Expedientes.expediente, Documentos.nombre FROM Expedientes, Documentos WHERE Expedientes.dni='$dniUsuarioL' AND Documentos.tipo='foto' AND Documentos.expediente=Expedientes.expediente" ;
$result mysql_query($sql);
$nregistros=mysql_num_rows($result);
//asi sabras cuantos registros te devuelva la consulta
echo $nregistros;
if (
$nregistros!=0){
//te he puesto el mysql_fetch_row
While ($registro=mysql_fetch_row($result)){
//mostramos los registros
echo "<a href=\"".$registro[1]."\">".$registro[0]."</a>";
}
}else{
echo 
"No hay Datos";

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #12 (permalink)  
Antiguo 12/06/2006, 04:17
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
gracias sergi_climent pruebo y ahora te digo.
  #13 (permalink)  
Antiguo 12/06/2006, 04:23
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
bien me saca bien el numero de registros en este caso 3 que son los tres archivos de tipo foto q tengo
y debajo me saca en vez del nombre tres numeros 1 seguidos que no queda mu claro que es, ahi tendria q salirme los nombres de los archivos uno debajo de otro, como lo pondria sergi? gracias por tu atencion.
  #14 (permalink)  
Antiguo 12/06/2006, 04:31
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
con el siguiente codigo te tendria q salir el nombre correctamente!
Código PHP:
$sql="SELECT Expedientes.expediente, Documentos.nombre FROM Expedientes, Documentos WHERE Expedientes.dni='$dniUsuarioL' AND Documentos.tipo='foto' AND Documentos.expediente=Expedientes.expediente" 
$result mysql_query($sql); 
$nregistros=mysql_num_rows($result); 
//asi sabras cuantos registros te devuelva la consulta 
echo $nregistros
if (
$nregistros!=0){ 
//te he puesto el mysql_fetch_row 
While ($registro=mysql_fetch_row($result)){ 
//mostramos los registros 
echo "<a href=\"".$registro[0]."\">".$registro[1]."</a>"

}else{ 
echo 
"No hay Datos"

Cuando hagas consultas en varias tablas utiliza alias, asi evitaras problemas con los nombres.
Código PHP:
$sql="SELECT Expedientes.expediente as expedi, Documentos.nombre as nomb FROM Expedientes, Documentos WHERE Expedientes.dni='$dniUsuarioL' AND Documentos.tipo='foto' AND Documentos.expediente=Expedientes.expediente" 
y para mostrarlos, si los quieres mostrar escojiendo nombres utiliza el mysql_fetch_array
entonces para mostarlo kedaria asi:
Código PHP:
$result mysql_query($sql); 
$nregistros=mysql_num_rows($result); 
if (
$nregistros!=0){ 
//te he puesto el mysql_fetch_array
While ($registro=mysql_fetch_array($result)){ 
//mostramos los registros por el alias
echo "<a href=\"".$registro[expedi]."\">".$registro[nomb]."</a>"

}else{ 
echo 
"No hay Datos"

y para mostrarlos, si los quieres mostrar escojiendo por orden utiliza el mysql_fetch_row
entonces para mostarlo kedaria asi:

Código PHP:
$result mysql_query($sql); 
$nregistros=mysql_num_rows($result); 
if (
$nregistros!=0){ 
//te he puesto el mysql_fetch_array
While ($registro=mysql_fetch_row($result)){ 
//mostramos los registros por el orden q los pones en la consulta
echo "<a href=\"".$registro[0]."\">".$registro[1]."</a>"

}else{ 
echo 
"No hay Datos"

Espero q te sirva la explicacion...
Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #15 (permalink)  
Antiguo 12/06/2006, 04:40
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
claro que me sirve me has sacado de una empanada buena, he utilizado el primer trozo de codigo para mostrar los nombres lo unico que me lo muestra seguido y lo quiero uno debajo del otro no se que tendre q poner, eso y una ultima cosina que veo q controlas mogollon y que tampoco veo como hacer....y es como te has fijado saca los nombres y los convierto con el href en link porque despues de que me los liste quiero que me los abra al pinchar sobre ellos, son archivos que he subido al servidor y no se me ocurre como abrirlos porque con una ruta fija no me vale porque depende del archivo, si tienes alguna idea te lo agradeceria, muchas gracias sergi eres la maquina!!!
  #16 (permalink)  
Antiguo 12/06/2006, 04:50
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
para q te muestre uno debajo de otro utiliza <br> q es un salto de linia.

en tu codigo quedaria asi:
Código PHP:
$result mysql_query($sql);  
$nregistros=mysql_num_rows($result);  
if (
$nregistros!=0){  
//te he puesto el mysql_fetch_array 
While ($registro=mysql_fetch_row($result)){  
//mostramos los registros por el orden q los pones en la consulta 
echo "<a href=\"".$registro[0]."\">".$registro[1]."</a>";
//aqui va el <br< q te hara el salto de linia
echo "<br>";  
}  
}else{  
echo 
"No hay Datos";  

y bueno sobre lo q dices de poner el link al arxivo, podrias ponerlo de la siguiente manera, donde pones el href, pones la ruta donde guardas los archivos al servidor q supongo q los guardaras todos en una carpeta.
Código PHP:
echo "<a href=\"aqui-pones-la-ruta-dela-carpeta/".$registro[0]."\">".$registro[1]."</a>"
donde $registro[0] sera el nombre de tu arxivo subido al servidor.
y bueno, sobre lo q yo se mogollon... tampoco es eso... simplemente q al empezar casi todos hemos xocado en la misma pared!

Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #17 (permalink)  
Antiguo 12/06/2006, 04:55
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
muchisiimas gracias perdona por marearte y por compartir tu tiempo y sabiduria, voy a probar a ver que pasa, si que guardo todos en la misma carpeta upload. Gracias
  #18 (permalink)  
Antiguo 12/06/2006, 05:05
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
mmmm m dice que firefox no sabe como abrir esta direccion porque el protocolo (c) no esta asociado con ningun problema que me imagino que sera porque la ruta la he puesto asi C:/AppServ/www/Nogues/Upload/ pero no tengo q poner http:// porque no es una direccion sino una carpeta, ya decia yo que era demasiado bonito para ser verdad...esa ruta no vale...No se como se tendra q poner no creo q sea problema de que el archivo es un pdf o jpg, te pongo la linea entera a ver si me dejo algo...Gracias de nuevo

echo "<a href=\"C:/AppServ/www/Nogues/Upload/".$registro[0]."\">".$registro[1]."</a>";
  #19 (permalink)  
Antiguo 12/06/2006, 05:26
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
una cosa... en windows las barras no van al reves?
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #20 (permalink)  
Antiguo 12/06/2006, 05:33
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
he copiado la ruta entera de las clase q tengo para borrar esos archivos que si que me funcionan...el problema es de protocolo, coge c que como si fuera un protocolo como http//, alomejor hay q hacerlo con alguna funcion php en plan fopen o algo de eso....
  #21 (permalink)  
Antiguo 12/06/2006, 05:44
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
alguien pregunto algo parecido y le respondieron solo esto....

Con PHP puedes enviar un documento PDF o Word o cualquier tipo (formato MIME) hacia el "cliente" (tu navegador). El navegador así tenga configurado sus "plug-in" o asociaciones en sus MIME (formatos) así abrirá la aplicación que ese PC tenga instalada para ver/editar ese tipo de documentos. Una vez el documento en el "cliente" PHP ya pierde el control sobre el mismo (= no podrás guardar los cambios en el servidor sin iniciar un proceso de "Upload" de ese archivo al servidor).

Sólo en PHP bajo windows y usando COM (www.php.net/com) podrías llegar ainteractuar con la aplicación que abres (alguna del Office por ejemplo) .. mandarle el dato (tu documento) a ver/editar e incluso guardar en el servidor (de donde lanzastes el archivo) al mismo servidor.



Alomejor debia de abrir otro post pa esto que tiene tela....
  #22 (permalink)  
Antiguo 12/06/2006, 05:47
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
y si lo pones asi?

Código PHP:
echo "<a href=\"C:\\AppServ\\www\\Nogues\\Upload\\".$registro[0]."\">".$registro[1]."</a>"
Saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #23 (permalink)  
Antiguo 12/06/2006, 05:53
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
Gracias sergi_climent pero nada el mismo mensaje.
  #24 (permalink)  
Antiguo 12/06/2006, 06:00
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
pon solo esto a ver:
(suponiendo que la pagina está en la carpeta Nogues)

echo "<a href=\"/Upload/".$registro[0]."\">".$registro[1]."</a>";

a ver si asi funciona, porque de la otra manera si estas trabajando desde localhost igual no coje bien la direccion... no lo se eh.. estoy suponiendo.. prueba a ver y ya nos dices si tira....
__________________
ALOZORRO v5.0 (ahora en .es)
  #25 (permalink)  
Antiguo 12/06/2006, 06:01
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
a ver... si tienes tu carpeta de uploads dentro de tu directorio web pon solo la ruta de tu directorio web sin poner el c:\...
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #26 (permalink)  
Antiguo 12/06/2006, 06:22
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
si tengo la carpeta dentro de mi proyecto claro y si estoy trabajando en localhost no se si tendra algo q ver...voy a probar a ver...
  #27 (permalink)  
Antiguo 12/06/2006, 06:27
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
con la solución de azrael666 me pone q no se puede mostrar la pagina y pone esta ruta en el navegador

http://localhost/Upload/1

y tendria que poner http://localhost/Upload/archivo.pdf supongo no se...

y de la segunda forma sin el c como dice sergi_climent me pone q no puede mostrar la pagina y la ruta que pone es esta http://localhost/nogues/AppServ/www/Nogues/Upload/1

creo q ta cogiendo mal lo de $registro o algo y por eso puede ser pienso yo
  #28 (permalink)  
Antiguo 12/06/2006, 07:08
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
ese "1" es lo que te sale en $registro[0] asi que igual es que tienes que poner $registro[1] en su lugar.... fijate bien en lo que sacas con el select y en que orden que igual es por eso.
__________________
ALOZORRO v5.0 (ahora en .es)
  #29 (permalink)  
Antiguo 12/06/2006, 08:16
Avatar de Javiglez  
Fecha de Ingreso: marzo-2006
Ubicación: Valladolid
Mensajes: 496
Antigüedad: 18 años, 1 mes
Puntos: 0
poniendo asi pone bien la ruta asi q creo q el problema es la sesion ahora que no me lo carga en la misma ventana, voy a probar cargandola en ventana nueva a ver q pasa con el atributo target lo que pasa q me esta dando fallo y no se donde de que me falta algo mirar a ver si lo veis vosotros...gracias
echo "<a href=\"AppServ/www/Nogues/Upload/".$registro[1]."\">".$registro[1]. TARGET="_blank" "</a>";
  #30 (permalink)  
Antiguo 12/06/2006, 08:56
Avatar de Azrael666  
Fecha de Ingreso: noviembre-2004
Mensajes: 652
Antigüedad: 19 años, 5 meses
Puntos: 1
yo es que no se que otra cosa decirte aparte de:

echo "<a href=\"/Upload/".$registro[1]."\">".$registro[1]."</a>";

siempre es mejor poner la ruta a partir de la pagina en la que lo generas, asi te evitas posibles problemas (vamos.. al menos eso pienso yo)
__________________
ALOZORRO v5.0 (ahora en .es)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:55.