Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consulta dificil

Estas en el tema de consulta dificil en el foro de Mysql en Foros del Web. Hola Mi consulta es un tanto dificil para mi. Tengo una web donde usuarios (comerciantes)suben fotos y descripcion por ejemplo de propiedades a la venta. ...
  #1 (permalink)  
Antiguo 03/08/2011, 17:44
 
Fecha de Ingreso: agosto-2011
Ubicación: buenos aires
Mensajes: 3
Antigüedad: 12 años, 8 meses
Puntos: 0
consulta dificil

Hola
Mi consulta es un tanto dificil para mi. Tengo una web donde usuarios (comerciantes)suben fotos y descripcion por ejemplo de propiedades a la venta. una vez subidos ellos ven lo que suben en otra pantalla. Estos antes se registran y administran su panel y cuando quieren ver lo subido sale en el navegador una direccion ej:
http://www.moroncomercios.com.ar/comercios/inmobiliarias/admin/pv01/pv01.php?user_id=3

"/pv01/" es propiedad a la venta 01 y asi suben propiedad 02 y asi sucesivamente.

y "pv01.php" es la pantalla final donde ven "lo subido" user_id=3 es el identificador del usuario, en este caso el "3"

El tema de mi consulta es que yo quiero que otros usuarios (los clientes) vean lo que suben los comerciantes y alli aparece mi problema.

Si yo pongo en un link esta direccion me pide que me logee pero el unico que tiene acceso a este link es el comerciante que sube estos datos. Como hago para que otros usuarios vean lo que suben los comerciantes?

La pantalla que lee la tabla es el archivo pv01.php y esta tiene este código que como veran contiene y pide siempre la autenticacion del usuario.
El archivo contiene esto:

<?php
$id_usuario = $_GET['user_id'];
$a1 = mysql_query("select * from pv01 where id_user=$id_usuario");
$num_row = mysql_num_rows($a1);

$row = $num_row/4;
$row_total = ceil($row);
$a2 = 0;
$a3 = 4;
for($i = 1; $i<= $row_total; $i++)
{
echo "<tr>";


$con = mysql_query("select * from pv01 where id_user='".$_SESSION['idusuario']."' limit $a2,$a3");

while ($registro=mysql_fetch_assoc($con)){
echo "<td width='15%'><a href='imagen_grande.php?imagen_click=".$registro['id']."' target='_blank' ><img src=\"listar_imagenes.php?id=".$registro['id']."\" width = '80' height='100'\"></a><br>";
echo "<span style='background:#BE766D;'>".$registro['archivo_nombre']."</span>";
echo "<span style='background:#FFFFFF;'>".wordwrap($registro['comentario'],90,"<br>",1)."</span></td>";

}
$a2 += 4;
echo "</tr>";
}
?>

Para el registro tengo esta tabla:

`id` int( 7 ) NOT NULL AUTO_INCREMENT ,
`nick` varchar( 30 ) NOT NULL ,
`pass` varchar( 30 ) NOT NULL ,
`email` varchar( 50 ) NOT NULL ,
`fecha` int( 15 ) NOT NULL ,
`level` int( 2 ) NOT NULL ,
`rollo` longtext NOT NULL ,
PRIMARY KEY ( `id` )
)ENGINE = MYISAM AUTO_INCREMENT = 3DEFAULT CHARSET = latin1



Y para subir las fotos y descripcion esta otra


archivo_binario` longblob NOT NULL ,
`archivo_nombre` varchar( 255 ) NOT NULL ,
`archivo_peso` varchar( 15 ) NOT NULL ,
`archivo_tipo` varchar( 25 ) NOT NULL ,
`comentario` text NOT NULL ,
`id` int( 10 ) NOT NULL AUTO_INCREMENT ,
`id_user` int( 11 ) NOT NULL ,
PRIMARY KEY ( `id` )
)ENGINE = MYISAM AUTO_INCREMENT = 64DEFAULT CHARSET = latin1


Esto esta en la base "xxxx_inmobiliarias"

Y tengo en la base "xxxx_usuarios" la misma tabla para los usuarios

Como hago para que los usuarios vean la web y lo subido por los comerciantes?

Les envio los archivos donde se registran y logean

-----------------------------------------------------------------
AUTENTIFICAR.PHP
<?php
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db
$nick = trim($_POST['nick']);
$pass = trim($_POST['pass']);
if(($nick == NULL)|($pass == NULL))//comprobamos que las variables enviadas por el form de login.php tienen contenido
{
echo '<meta http-equiv="Refresh" content="0;url=login.php" />';
}
else{

//comprobamos en la db si existe ese nick con esa pass
$usuarios=mysql_query("select * from usuarios where nick='$nick' and pass='$pass'");
$resul = mysql_num_rows($usuarios);
if($resul) //si existe comenzamos con la sesion, si no, al index
{
$user_ok = mysql_fetch_array($usuarios);
$_SESSION['usuario'] = $user_ok["nick"]; //damos el nick a la variable usuario
$_SESSION['idusuario'] = $user_ok["id"]; //damos la id del user a la variable idusuario
$_SESSION['level'] = $user_ok["level"]; //damos el level del user a la variable level
echo '<meta http-equiv="Refresh" content="0;url=<b>"aqui enviaria a los usuarios a seleccionar lo que desean ver"</b> />';
}else{
echo 'Nick y pass incorrectos';
}

}

?>
-------------------------------------------
REGISTRAR.PHP
<?php
include('config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

//Comprobamos que los campos nick, pass y pass1 se han rellenado en el form de reg.php, sino volvemos al form
$nick = trim($_POST['nick']);
$pass = trim($_POST['pass']);
$pass1 = trim($_POST['pass1']);
$email = trim($_POST['email']);

if(($nick == '') or ($_POST[pass] == '') or ($_POST[pass1] == '') )
{
header("Location: reg.php"); //enviamos al form de registro que esta en reg.php
}else{

//Comprobamos que la pass y pass1 son iguales, sino, volvemos a reg.php
if($pass != $pass1)
{
echo 'Las passwords no son iguales';
}else{

//quitamos el codigo malicioso de $_POST[nick] y $_POST[pass]
$user = stripslashes($nick);
$user = strip_tags($user);
$pass2 = stripslashes($pass);
$pass2 = strip_tags($pass2);
//comprobamos que el usuario no existe en la db
$usuarios=mysql_query("SELECT nick FROM usuarios WHERE nick='$user' ");
if($user_ok=mysql_fetch_array($usuarios))
{
echo 'El usuario ya esta registrado';
mysql_free_result($usuarios); //liberamos la memoria del query a la db
}else{
//quitamos todo el codigo malicioso de las demas variables del form de registro
$email1 = stripslashes($email);
$email1 = strip_tags($email1);

$rollo = stripslashes($_POST["rollo"]);
$rollo = strip_tags($rollo);
$rollo = str_replace("\n\r","<br>",$rollo); //se cambian los saltos de linea por <br>
$rollo = str_replace("\r\n","<br>",$rollo);
$rollo = str_replace("\n","<br>",$rollo);

$fecha = date("Y-m-d");
$level = "2"; //usaremos level 1 para admins, level 2 para los demas (se cambia manualmente desde phpmyadmin)

//introducimos el nuevo registro en la tabla users
mysql_query("INSERT INTO usuarios (nick,pass,email,fecha,level,rollo) values ('$user','$pass','$email','$fecha','$level','$roll o') ");
echo 'Usuario registrado con éxito';

}

}

}
?>

Esto tiene un form para registrarse y uno para logearse que ya saben como es.

Bueno eso es todo.

Mil gracias si me pudieran ayudar .

Esteban
  #2 (permalink)  
Antiguo 04/08/2011, 08:32
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: consulta dificil

Hola esteban1967gonza:

Tu problema no parece ser con MySQL, sino con PHP, por lo que es conveniente que publiques tu pregunta en el foro correspondiente.

Foro de PHP

Te recuerdo que por políticas del foro no debes incluir código de lenguajes de programación, sólo código SQL.

Saludos
Leo.
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:09.