Foros del Web » Programando para Internet » PHP »

me podrían ayudar con mi base de datos en php y mysql

Estas en el tema de me podrían ayudar con mi base de datos en php y mysql en el foro de PHP en Foros del Web. soy nuevo en el foro y por segunda vez me gustaría que me ayudaran con esta base de datos ya que estuve un tiempo sin ...
  #1 (permalink)  
Antiguo 01/03/2015, 09:59
 
Fecha de Ingreso: marzo-2015
Ubicación: zulia
Mensajes: 71
Antigüedad: 9 años, 8 meses
Puntos: 0
me podrían ayudar con mi base de datos en php y mysql

soy nuevo en el foro y por segunda vez me gustaría que me ayudaran con esta base de datos ya que estuve un tiempo sin programar y se me olvido casi todo ademas de que era poco lo que sabia.

es urgente y necesito su ayuda

necesito que mi base de datos guarde información pero que al ingresar ciertos tipos de datos estos no se repitan ya que tienen que ser caracteres únicos.

un ejemplo seria la cédula, que en mi país es un numero de un documento de identificación único y que dos personas no lo pueden tener igual.

como hago para que al ingresarlo en un formulario y al darle el botón enviar, este me de una advertencia de que ya ese dato fue ingresado.


las partes en rojo son las que no se pueden repetir


index.php


<html>
<head>
<title> FORMULARIO DE REGISTRO </title>
</head>

<body>
<h1> FORMULARIO DE REGISTRO </h1>
<h5> todos los campos son requeridos </h5>
<form method="post" action="" />
<table>
<tr>
<td>
RIF DEL CONSEJO COMUNAL:
</td>
<td>
<input type="text" maxlength="10" name="rif_user"
</td>
</tr>

<tr>
<td>
NOMBRE DEL CONSEJO COMUNAL:
</td>
<td>
<input type="text" maxlength="100" name="nombre_user"
</td>
</tr>

<tr>
<td>
UBICACION DEL CONSEJO COMUNAL:
</td>
<td>
<input type="text" maxlength="150" name="ubicación_user"
</td>
</tr>
<tr>
<td>
CORREO DEL CONSEJO COMUNAL:
</td>
<td>
<input type="text" maxlength="50" name="correo_user"
</td>
</tr>

<tr>
<td>
TELEFONO DEL CONSEJO COMUNAL:
</td>
<td>
<input type="text" maxlength="11" name="telefono_user"
</td>
</tr>

<tr>
<td>
PRIMER REPRESENTANTE DEL CONSEJO COMUNAL:
</td>
<td>
<input type="text" maxlength="50" name="representante1"
</td>
</tr>
<tr>
<td>
CEDULA DEL PRIMER REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="9" name="cedula_repre1"
</td>
</tr>

<tr>
<td>
CARGO DEL PRIMER REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="50" name="cargo_repre1"
</td>
</tr>
<tr>
<td>
CORREO DEL PRIMER REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="50" name="correo_repre1"
</td>
</tr>

<tr>
<td>
TELEFONO DEL PRIMER REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="11" name="telefono_repre1"
</td>
</tr>

<tr>
<td>
SEGUNDO REPRESENTANTE DEL CONSEJO COMUNAL:
</td>
<td>
<input type="text" maxlength="50" name="representante2"
</td>
</tr>
<tr>
<td>
CEDULA DEL SEGUNDO REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="9" name="cedula_repre2"
</td>
</tr>

<tr>
<td>
CARGO DEL SEGUNDO REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="50" name="cargo_repre2"
</td>
</tr>
<tr>
<td>
CORREO DEL SEGUNDO REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="50" name="correo_repre2"
</td>
</tr>

<tr>
<td>
TELEFONO DEL SEGUNDO REPRESENTANTE:
</td>
<td>
<input type="text" maxlength="11" name="telefono_repre2"
</td>
</tr>

<tr>
<td>
CONTRASEÑA:
</td>
<td>
<input type="password" maxlength="20" name="pass_user"
</td>
</tr>
<tr>
<td>
REPETIR CONTRASEÑA:
</td>
<td>
<input type="password" maxlength="20" name="rpass_user"
</td>
</tr>
</table>
<input type="submit" name="submit" value="registrar" /> <input type="reset" />
</form>
<?php
if (isset ($_POST['submit'])) {
require("registro.php");
}
?>
</body>
</html>



registro.php


<?php
$rif_user = $_POST['rif_user'];
$nombre_user = $_POST['nombre_user'];
$ubicación_user = $_POST['ubicación_user'];
$correo_user = $_POST['correo_user'];
$telefono_user = $_POST['telefono_user'];
$representante1 = $_POST['representante1'];
$cedula_repre1 = $_POST['cedula_repre1'];
$cargo_repre1 = $_POST['cargo_repre1'];
$correo_repre1 = $_POST['correo_repre1'];
$telefono_repre1 = $_POST['telefono_repre1'];
$representante2 = $_POST['representante2'];
$cedula_repre2 = $_POST['cedula_repre2'];
$cargo_repre2 = $_POST['cargo_repre2'];
$correo_repre2 = $_POST['correo_repre2'];
$telefono_repre2 = $_POST['telefono_repre2'];
$pass_user = $_POST['pass_user'];
$rpass_user = $_POST['rpass_user'];
$reqlen = strlen($rif_user) * strlen($nombre_user) * strlen($ubicación_user) * strlen($correo_user) * strlen($telefono_user) * strlen($representante1) * strlen($cedula_repre1) * strlen($cargo_repre1) * strlen($correo_repre1) * strlen($telefono_repre1) * strlen($representante2) * strlen($cedula_repre2) * strlen($cargo_repre2) * strlen($correo_repre2) * strlen($telefono_repre2) * strlen($pass_user) * strlen($rpass_user);
if ($reqlen > 0) {
if ($pass_user === $rpass_user) {
require ("connect_db.php");
$pass_user = md5($pass_user);
mysql_query("INSERT INTO usuarios VALUES ('','$rif_user','$nombre_user','$ubicación_user',' $correo_user','$telefono_user','$representante1',' $cedula_repre1','$cargo_repre1','$correo_repre1',' $correo_repre1','$telefono_repre1','$representante 2','$cedula_repre2','$cargo_repre2','$telefono_rep re2','$pass_user')");
mysql_close($link);
echo 'Se ha registrado correctamente';
} else {
echo 'Las Contraseñas no son Identicas';
}
} else {
echo 'Introduzca Informacion en Todos los Campos';
}


?>



connect_db.php


<?php
$link = mysql_connect("localhost","root","21544298");
if ($link) {
mysql_select_db("jornada",$link);
}
?>




gracias de antemano
  #2 (permalink)  
Antiguo 01/03/2015, 10:46
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: me podrían ayudar con mi base de datos en php y mysql

Cita:
necesito que mi base de datos guarde información pero que al ingresar ciertos tipos de datos estos no se repitan ya que tienen que ser caracteres únicos.

un ejemplo seria la cédula, que en mi país es un numero de un documento de identificación único y que dos personas no lo pueden tener igual.

como hago para que al ingresarlo en un formulario y al darle el botón enviar, este me de una advertencia de que ya ese dato fue ingresado.
La cosa tiene dos soluciones que se debe aplicar al mismo tiempo, pero en etapas diferentes...
1) Todo campo cuyo valor debe ser único se debe declarar como UNIQUE al momento de crear la tabla en la Base de Datos. Siempre. De ese modo te aseguras que sin importar qué ingresen, un mismo documento no pueda aparecer en dos registros diferentes.
2) Siempre, siempre, SIEMPRE se deben validar los datos que el usuario ingresa ANTES de insertarlos. La base no hace magia. Si no validas desde la aplicación los datos, consultando a la base, siempre dejarás que se ingrese basura que no debería estar, o le mandas a hacer una tarea a la base que por definición de estructura no te permitirá, perdiendo un valioso tiempo.

Una de las cosas que ningún programador quiere hacer, al menos cuando comienza a aprender, es precisamente validar, pero es la etapa más importante de cualquier proceso de ABM de cualquier aplicación.
No la esquives.
Valida, y recién cuando todo esté OK, inserta.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 01/03/2015, 11:16
 
Fecha de Ingreso: marzo-2015
Ubicación: zulia
Mensajes: 71
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: me podrían ayudar con mi base de datos en php y mysql

1) Todo campo cuyo valor debe ser único se debe declarar como UNIQUE al momento de crear la tabla en la Base de Datos. Siempre. De ese modo te aseguras que sin importar qué ingresen, un mismo documento no pueda aparecer en dos registros diferentes.
  #4 (permalink)  
Antiguo 01/03/2015, 11:25
 
Fecha de Ingreso: marzo-2015
Ubicación: zulia
Mensajes: 71
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: me podrían ayudar con mi base de datos en php y mysql

disculpen, me equivoque


Cita:
Iniciado por gnzsoloyo Ver Mensaje
1) Todo campo cuyo valor debe ser único se debe declarar como UNIQUE al momento de crear la tabla en la Base de Datos. Siempre. De ese modo te aseguras que sin importar qué ingresen, un mismo documento no pueda aparecer en dos registros diferentes.
esto ya lo hice, lo de la declaración del unique pero no se porque no me funciono porque igual me registro valores repetidos, puede ser porque aya declarado a varias filas el unique? disculpen mi ignorancia pero no se mucho. ayuda.....
  #5 (permalink)  
Antiguo 01/03/2015, 11:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: me podrían ayudar con mi base de datos en php y mysql

Bueno, alli está la metida de pata. Parece que no te quedó claro el concepto de clave de índice, ni el uso de uNIQUE.
Cuando creas un indice sobre un conjunto de campos, no es que se genere un indice por cada uno independientemente. Se crea un único índice cuya clave de ordenamiento está compuesta por todos los campos indicados al mismo tiempo. Y una clave se diferencia de otra cuando al menos un caracter o número en alguno de los campos de la clave, es diferente entre dos registros dados.

Si tuvieses índice UNIQUE tablaidx(a, b, c), y los campos a, b y c tuviesen estos valores:
Cita:
1-1-1
1-2-1
1-5-2
5-5-1
Lo que no podrías ingresar en un valor como 1-1-1, ó 5-5-1, o cualquiera que ya exista en el conjunto, pero en cada uno de los campos que componnen la clave de índice pueden ingresarse N veces cada uno de los valores.
Un índice UNIQUE que contemple el numero de documento debe ser definido directa y exclusivamente sobre ese campo, sin otro agregado, ya que lo que se debe proteger es la unicidad de los valores de documento en toda la tabla, de modo que no se repita el mismo numero entre dos registros cualesquiera.

¿Se entiende?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 01/03/2015, 12:17
 
Fecha de Ingreso: marzo-2015
Ubicación: zulia
Mensajes: 71
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: me podrían ayudar con mi base de datos en php y mysql

estoy agarrando el hilo pero poco a poco.

ahora te pregunto, como puedo hacer para que en cada fila no se repita el mismo valor? con que código? no te digo que me lo hagas si no que me orientes para yo profundizar.

y es posible con php que al ingresar un valor en cada cuadro del formulario, este al lado me de un mensaje que me diga si esta disponible o ya esta registrado?

disculpa mi ignorancia y que moleste tanto pero estoy que si me toco la cabeza me explota
  #7 (permalink)  
Antiguo 01/03/2015, 14:41
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: me podrían ayudar con mi base de datos en php y mysql

Cita:
ahora te pregunto, como puedo hacer para que en cada fila no se repita el mismo valor? con que código? no te digo que me lo hagas si no que me orientes para yo profundizar.
No me queda muy claro a qué te refieres con que una fila no repita valores...
Si estás hablando de todos los datos de un mismo registro en una tabla de la base, habría que ver de qué datos te refieres, porque algunos de ellos pueden ser datos comunes a muchas instancias, como por ejemplo el nombre de una ciduad de residencia, e incluso el nombre de una persona, o fecha de cierta acción.
Hay que analizar a qué entidad debes representar.

En cualquier caso, si N campos de un mismo registro no pueden tener valores repetidos entre dos registros, forzosamente deberás hacer validaciones específicas consultando a la base, para cada uno de los valores que no puedan replicarse. Y debes hacerlo antes de enviar el registro final a insertarse...

Cita:
y es posible con php que al ingresar un valor en cada cuadro del formulario, este al lado me de un mensaje que me diga si esta disponible o ya esta registrado?
PHP no actúa en en navegador (IE, Chrome, Firefox, Opera, safari, ec.), sino en el servidor, por lo que toda acion interactiva como la que describes requiere de un método que permita que lo que pasa en el navegador, el formulario, obtenga respuestas del servidor sin necesidad de recargar la página.
En PHP eso se hace por medio de Ajax, por lo que requerirá si o sí trabajar al mismo tiempo JavaScript y PHP.

Hay un subforo específico de Ajax.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: formulario, html, mysql, registro, select, usuarios
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 17:05.