Foros del Web » Programando para Internet » PHP »

problema consulta php mysql

Estas en el tema de problema consulta php mysql en el foro de PHP en Foros del Web. No consigo hacer lo siguiente: Tengo 2 tablas usuarios(cod_usuario,nombre_usuario,nick,mail,pass ,adminsitrador,cuota) archivos(cod_archivo,codigo_usuario,nombre,size,nu m_descargas... etcetera) pues bien, quiero mostrar un formulario con los datos de la tabla ...
  #1 (permalink)  
Antiguo 29/04/2010, 10:24
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 3 meses
Puntos: 1
problema consulta php mysql

No consigo hacer lo siguiente:

Tengo 2 tablas

usuarios(cod_usuario,nombre_usuario,nick,mail,pass ,adminsitrador,cuota)
archivos(cod_archivo,codigo_usuario,nombre,size,nu m_descargas... etcetera)

pues bien, quiero mostrar un formulario con los datos de la tabla archivos (para poder modificar algunos campos) pero quiero que en puesto de cod_archivo, poner el nick que corresponde a ese codigo_usuario, es uan tarea que realiza el administardor, y quiero que muestre el nick de la otra tabla, pero correspondiendo con el codigo_usuario de la tabla archivos. como tendría que ahcer eso?

yo abro un
Código PHP:
while ($regb=mysql_fetch_array($registros)) 
y despues planto el formulario poniendo en el value .$regb=['size']. por ejemplo, pero al intentar mostrar el nick >.< no se e intentado poner otro while pero fallo.
  #2 (permalink)  
Antiguo 29/04/2010, 12:02
 
Fecha de Ingreso: enero-2008
Ubicación: Buenos Aires
Mensajes: 305
Antigüedad: 16 años, 3 meses
Puntos: 14
Respuesta: problema consulta php mysql

Es que el problema según lo que pienso ( es que no has dado nada de información ), el problema esta en la consulta. Tu necesitas hacer el la consulta un inner join con la tabla usuarios comparando el campo ´archivos´.codigo_usuario con ´usuarios.cod_usuario´ y luego ahí consigues obtener el valor de ´usuarios.nick´. Si pones el código de la consutla te ayudaría.
__________________
http://lucasmg.com.ar
  #3 (permalink)  
Antiguo 29/04/2010, 12:03
Avatar de dargor  
Fecha de Ingreso: octubre-2009
Mensajes: 134
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema consulta php mysql

si no me equivoco seria así una opción.

Código:
select b.nombre_usuario, a.codigo_usuario, a.nombre, a.size 
from archivos a, usuarios b
where a.cod_usuario=b.cod_usuario
and a.cod_archivo='Aqui el codigo';
  #4 (permalink)  
Antiguo 30/04/2010, 01:41
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: problema consulta php mysql

fale, creo ke ya esta la cosa, pero no me salen ordenados dodne deberia poner poner un order by, o un group by?

Código PHP:
while ($regb=mysql_fetch_array($registros))
        {    
        
$estado=$regb['estado'];

        
//$id=$reg['cod_archivo'];

        
        
              
print '<form action="admdescarga.php" method="post">';
            
            print 
'<input size=5 type="hidden" name="cod" value="'.$regb['cod_archivo'].'">';

                
$sq6="select nick from usuarios where cod_usuario=".$regb['codigo_usuario']."";
                
$codusus=mysql_query($sq6,$conexion)    or
                die(
"Problemas en el select:".mysql_error());
                
$cods=mysql_fetch_array($codusus);
                    
                        
            print 
"<tr><td>".$cods['nick']."</td>"
e metido una consulta antes de mostrar el nick comparando con el codigo_archivo sea igual al cod_archivo, y sacando el nick. pero kiero que todo me salga ordenado, es decir el nick pepito (por ejemplo) salgan todo lo relacionado con su codigo seguido.

La consulta de donde cojo $registros es esta:
Código PHP:
        $sql="select * from archivos limit $comienzo, $num, group by codigo_usuario";
        
//echo $sql;
        
$registros=mysql_query($sql,$conexion) or
          die(
"Problemas en el select:".mysql_error()); 
pero ni group by ni order by, no me sale >.< tengo ke poner coma o algo despues de $num?
  #5 (permalink)  
Antiguo 30/04/2010, 02:31
Avatar de dargor  
Fecha de Ingreso: octubre-2009
Mensajes: 134
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: problema consulta php mysql

$sql="select * from archivos limit $comienzo, $num, group by codigo_usuario";

en vez del group by seria el order by asc ó order by desc, si lo que quieres es que salgan ordenados, y quita la coma despues de $num
  #6 (permalink)  
Antiguo 30/04/2010, 03:05
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: problema consulta php mysql

Vale la consulta que hago es :

Código PHP:
        $sql="select * from archivos limit $comienzo, $num order by codigo_usuario"
Bueno pongo el codigo completo de donde cojo los datos para hacer el formulario
Código PHP:
        $sql="select * from archivos limit $comienzo, $num order by codigo_usuario";
        
//echo $sql;
        
$registros=mysql_query($sql,$conexion) or
          die(
"Problemas en el select:".mysql_error());

        
    
        
        print 
"<p class='stilo5'>Administrar mis descargas:</p>";
           print 
"<table border='2' cellspacing='0' class='stilo3'>";
           print 
"<tr><td class='stilo6'>Usuario</td><td class='stilo6'>Nombre archivo</td><td class='stilo6'>Tamaño</td><td class='stilo6'>Numero descargas</td><td class='stilo6'>Max descargas</td><td class='stilo6'>Fecha Subida</td><td class='stilo6'>Tiempo de vida</td><td class='stilo6'>Estado</td><td class='stilo6'></td></tr>";

        while (
$regb=mysql_fetch_array($registros))
        {    
        
$estado=$regb['estado'];

        
//$id=$reg['cod_archivo'];

        
        
              
print '<form action="admdescarga.php" method="post">';
            
            print 
'<input size=5 type="hidden" name="cod" value="'.$regb['cod_archivo'].'">';

                
$sq6="select nick from usuarios where cod_usuario=".$regb['codigo_usuario']."";
                
$codusus=mysql_query($sq6,$conexion)    or
                die(
"Problemas en el select:".mysql_error());
                
$cods=mysql_fetch_array($codusus);
                    
                        
            print 
"<tr><td>".$cods['nick']."</td>";
            
            
            print 
"<td>".$regb['nombre']."</td>";
            
              print 
"<td>".$regb['size']."</td>";
            
               print 
"<td>".$regb['num_descargas']."</td>";
            
            print 
'<td class=stilo7><input size=5 type="text" name="max" value="'.$regb['max_descargas'].'">';
        print (
"<font color=white>$error[1]</font><BR>");"</td>";
        
            print 
"<td>".$regb['fecha_subida']."</td>";
            
            print 
'<td class=stilo7><input size=5 type="text" name="vida" value="'.$regb['tiempo_vida'].'">';
        print (
"<font color=white>$error[2]</font><BR>");"</td>";

            print 
"<td class='stilo7'><select name='estado'>"
            print 
"<option value='-1' "
                if (
$estado == -1) { print " selected ";}
            print 
">Activo</option>";
            print 
"<option value='0' ";
                if (
$estado == 0) { print " selected ";}
            print 
">Inactivo</option>";
            print 
"</select>";
            
             print 
'<td class=stilo7><input type="submit" name="modificar" value="modificar"></td>';
            print 
"<td><a href=borrar2.php?codigod=".$regb['cod_archivo']."><img src=borrar.png></a></td></tr>";            
            print 
"</form>";
           }        
        print 
"</table>"
Hay más código por encima y por abajo pero lo referente al formulario es eso a excepción de un update

el mensaje de error es :
Problemas en el select:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order by codigo_usuario' at line 1

Última edición por dengaku; 30/04/2010 a las 03:15 Razón: completar
  #7 (permalink)  
Antiguo 30/04/2010, 04:19
Avatar de dengaku  
Fecha de Ingreso: enero-2010
Mensajes: 69
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: problema consulta php mysql

Vale ya va :D, el order by debe ir antes del limit, si lo pongo después se peta ^^

Código PHP:
$sql="select * from archivos order by codigo_usuario limit $comienzo, $num"

Etiquetas: mysql
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 16:39.