PDA

Ver versión completa : conectar usuario con varias tablas


pablo_1805
25-jun-2007, 08:25
hola... necesito ayuda tengo que conectar una pagina a una base de datos para validar un usuario; se como se hace con una tabla, pero necesito conectarla a varias tablas simultaneamente... ayudenmeeeeeeeeeeeeeeeee

se agradece

wompygs
25-jun-2007, 09:55
Hola, nose donde esta tu problema, conectar con una tabla es = que conectar con varias, si te lias, mira los tutoriales, ya que esta todo, desde como conectar con la base de datos... como hacer una consulta... como filtrarlas... etc, incluso tienes uno para como conectar usuarios y restringir paginas para usuarios registrados, que creo que te puede ser de ayuda.
Echales una vistazo y ya me contaras ;)
Aqui esta todos los tutoriales (http://www.original-design.es/dw.php)

pablo_1805
25-jun-2007, 10:52
ya se conectar una tabla el problema es el siguiente:

tengo una base de datos con 6 tablas (los niveles de la carrera)
las tablas son 7112, 7121, 7131, 7141.... debo ingresar registros nuevos a las tablas dependiendo del nivel del alumno. cuando hago la validacion de usuario en el cuadro de dialogo me pide que escoja una tabla ej: elijo la 7112, pero si la persona fuera de otro nivel no puedo cambiar de tabla en tiempo real.

entonces la pagina queda conectada a solo una tabla, para eliminar me pasa lo mismo.

ojala me ayas entendido

wompygs
25-jun-2007, 11:26
Creo que si entendi lo que quieres decir, pero no entiendo bien el problema ya que, si tu estas coenctado a la base de datos, estas conectado a todas las tablas de esa base de datos..., si los usuarios tienen nieveles (lo cual imagino que lo tendras en la base de datos, por ejemplo, id:1, nombre:Pablo nivel:4) con php puedes recojer el valor de su nivel y mandarle que aga una cosa u otra dependiendo de el.
un ejemplo para que me entiendas
If $nivel_usuario = 4 {
lo que quieras que aga;
}
entiendes lo que quiero decir?
una vez tengas el nivel en una variable se te ocurriran monton de formas de hacerlo...
Otra cosa, pq pones numeros en vez d nombres a las Tablas? o te estabas refiriendo las ID?

Espero que te sea de ayuda :P

pablo_1805
27-jun-2007, 01:00
ya bkn si cacho... el problema es que no se mucho de codigo, donde tendria que poner eso???
ej: si en una caja de texto el usuario pone que su curso es 7121 quiero que el registro quede grabado en la tabla t7121 ojala me ayas entendido y se agradece la ayuda

wompygs
27-jun-2007, 03:20
Hola, es complicado explicar esto por aqui, deberias de mirarte un poco de PHP, en cuanto a lo de la caja de texto, no creo k fuera lo mas correcto, pq el usuario no tiene pq saber cual es el nº que le corresponde ( y aunque lo sepa no todos lo pondrían).
Lo que tendrías que hacer, es llamar a un campo de la tabla de la bd "Nivel".
por ejemplo:
alumno : Pedro
Nivel: 7213
y cojer el nivel de ahi, asi si "pedro" hace login, cojemos el nivel en la bd de cada alumno, de esta forma cada alumno tiene su nivel correspondiente y se guardara con el nivel que se le haya asignado.
Espero que entiendas la idea...
Un saludo. :rolleyes:

pablo_1805
28-jun-2007, 02:59
ya si te entiendo lo que pasa es que todos piensan que la base de datos que dio el profe esta mala hasta un profe de otro ramo entonces ese debe ser el problema... igual gracias por la ayuda te pasate

wompygs
28-jun-2007, 03:05
Hola Pablo!!
Si, el problema es que la base de datos no esta muy bien estructurada (almenos para mi), de todas formas si tienes que hacer algo con ella no dudes en preguntarme si tienes alguna duda, te ayudare en lo que pueda ;)

pablo_1805
29-jun-2007, 03:47
vale compadre... te cuento... ya me funciona con la base de datos mala y todo pero eso es un detalle el profe lo quiere asi y asi sera

ocupe un switch baje un manual de javascript y lo estoy estudiando, lo bueno es que no me costo mucho... pero aun tengo un problema cuando cargo la pagina en el explorer me sale este mensaje:

Notice: Undefined index: codigo in c:\archivos de programa\easyphp1-8\www\ingreso.php on line 33

lo que pasa es que para el switch ocupo una caja de texto llamada codigo
en la linea 33 tengo esto:

switch ($_POST['codigo']) {

la pagina igual funciona pero me sale eso... sabes de que se trata???

nuevamente se agradece

wompygs
29-jun-2007, 05:01
Hola Pablo, pues con ese error no podemos saber nada mas que el fallo esta en el archivo
ingreso.php
y que el error esta en la línea 33 o antes.
quizas si pegas algo mas de codigo podremos mirarlo :) (la linea 33 en si esta bien, pero siempre puede aver algo mal en lineas anteriores, como un ; que falta o una variable sin declarar... etc.)
Un saludo

pablo_1805
30-jun-2007, 01:28
hola.

mira esto es parte del codigo el segundo switch es el que le incorpore ojala se entienda:


<?php require_once('Connections/nivel.php'); ?>
<?php
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
$editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}
switch ($_POST['codigo']) {
case 7112:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO n7112 (nombre, apellido, rut, usuario, pass) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellido'], "text"),
GetSQLValueString($_POST['rut'], "text"),
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['pass'], "text"));

mysql_select_db($database_nivel, $nivel);
$Result1 = mysql_query($insertSQL, $nivel) or die(mysql_error());

$insertGoTo = "registrado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
break;
case 7122:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO n7122 (nombre, apellido, rut, usuario, pass) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellido'], "text"),
GetSQLValueString($_POST['rut'], "text"),
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['pass'], "text"));

mysql_select_db($database_nivel, $nivel);
$Result1 = mysql_query($insertSQL, $nivel) or die(mysql_error());

$insertGoTo = "registrado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
break;
case 7131:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO n7131 (nombre, apellido, rut, usuario, pass) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellido'], "text"),
GetSQLValueString($_POST['rut'], "text"),
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['pass'], "text"));

mysql_select_db($database_nivel, $nivel);
$Result1 = mysql_query($insertSQL, $nivel) or die(mysql_error());

$insertGoTo = "registrado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
break;
case 7141:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO n7141 (nombre, apellido, rut, usuario, pass) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellido'], "text"),
GetSQLValueString($_POST['rut'], "text"),
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['pass'], "text"));

mysql_select_db($database_nivel, $nivel);
$Result1 = mysql_query($insertSQL, $nivel) or die(mysql_error());

$insertGoTo = "registrado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
break;
case 7151:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO n7151 (nombre, apellido, rut, usuario, pass) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellido'], "text"),
GetSQLValueString($_POST['rut'], "text"),
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['pass'], "text"));

mysql_select_db($database_nivel, $nivel);
$Result1 = mysql_query($insertSQL, $nivel) or die(mysql_error());

$insertGoTo = "registrado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
break;
case 7161:
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
$insertSQL = sprintf("INSERT INTO n7161 (nombre, apellido, rut, usuario, pass) VALUES (%s, %s, %s, %s, %s)",
GetSQLValueString($_POST['nombre'], "text"),
GetSQLValueString($_POST['apellido'], "text"),
GetSQLValueString($_POST['rut'], "text"),
GetSQLValueString($_POST['usuario'], "text"),
GetSQLValueString($_POST['pass'], "text"));

mysql_select_db($database_nivel, $nivel);
$Result1 = mysql_query($insertSQL, $nivel) or die(mysql_error());

$insertGoTo = "registrado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?";
$insertGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $insertGoTo));
}
break;
return;

seria lo unico que me estaria faltando creo :confused:
se agradece

wompygs
30-jun-2007, 01:38
Hola, e estado mirando el codigo por encima y no veo ningun fallo ( que mareo xD)
Lo que se me ocurre es que, ya que dices que te da el error aquí:
switch ($_POST['codigo']) {
La variable codigo estara pasando bien?, prueba a quiar todo eso un momento y hacer un echo a $_POST['codigo'], te muestra algo?, alomejor no esta pasando bien y esta vacia...

Otra cosa, para pegar codigos, usa los tags de php del foro, estan arriba, el 1º por la derecha, así es mucho mas facil despues leer el codigo y no se llena tanto el post :)

pablo_1805
05-jul-2007, 02:27
hola sabes el otro error despues lo busco por que no lo puedo sacar ahora tengo otra duda mira tengo esto como codigo para eliminar un usuario ya registrado. el problema es que me esta eliminando solo con poner el nombre de usuario. como hago para que necesariamente tenga que ingresar tambien la contraseña???...
intente ponerle la otra variable pero me da error, como no conosco mucho este lenguaje.
y lo otro, como veras despues de eliminar me envia a la pagina eliminado.php...
pero si saliera algun error me manda una pagina en blanco con la descripcion del error y me gustaria yo poner a ke pagina quiero que se valla si ocurriese un error...

disculpa las molestias pero estoy muy aproblemado con esto, tengo que entregar la pagina en 2 dias mas y me faltan unas cosas aun

denuevo se agradece montones la ayuda

que estes bien...



if ((isset($_POST['usuario'])) && ($_POST['usuario'] != "") && (isset($_SESSION['pass']))) {
$deleteSQL = sprintf("DELETE FROM n7112 WHERE usuario=%s",
GetSQLValueString($_POST['usuario'], "text"));

mysql_select_db($database_nivel, $nivel);
$Result1 = mysql_query($deleteSQL, $nivel) or die(mysql_error());

$deleteGoTo = "eliminado.php";
if (isset($_SERVER['QUERY_STRING'])) {
$deleteGoTo .= (strpos($deleteGoTo, '?')) ? "&" : "?";
$deleteGoTo .= $_SERVER['QUERY_STRING'];
}
header(sprintf("Location: %s", $deleteGoTo));
}

wompygs
05-jul-2007, 03:33
Hola, lo que se me ocurre, es que pongas la pagina de eliminar restringida, ya que sino seria absurdo..., si esta restringida solo pueden acceder usuarios registrados (con su user y su pass) y hay ya que den a borrar .. y asunto arreglado no?
Tengo algun tutorial de como restringir paginas en dreamweaver
Aver si eso te vale...

pablo_1805
05-jul-2007, 05:45
yapo bkn mi mail es pasl_@hotmail.com ahi lo puedes enviar ahora toy viendo php haber si encuentro algo :p lo buenos es que estoy aprendiendo lenguajes que para mi eran chino mandarin :p