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

Problemas con PHP y Base de Datos

Estas en el tema de Problemas con PHP y Base de Datos en el foro de Mysql en Foros del Web. Mi problema es que no consigo conectar php a la bse de datos: Lo que quiero hacer es registrar usuarios en la base de datos. ...
  #1 (permalink)  
Antiguo 16/02/2011, 01:02
 
Fecha de Ingreso: febrero-2011
Mensajes: 25
Antigüedad: 13 años, 9 meses
Puntos: 0
Problemas con PHP y Base de Datos

Mi problema es que no consigo conectar php a la bse de datos:
Lo que quiero hacer es registrar usuarios en la base de datos.
Utilizo wampserver
Las prubas, los errores y los codigos:

Primero registro y guardar:
Código registro.php:
Ver original
  1. <?php
  2. include("conexion.php");
  3. ?>
  4. <form name="form1" action="guardar.php" method="post">
  5.     <table cellspacing="0" class="style1" style="width: 100%">
  6.         <tr>
  7.             <td class="style2" colspan="2">REGISTRO LINQUER</td>
  8.         </tr>
  9.         <tr>
  10.             <td style="width: 184px">USUARIO</td>
  11.             <td>
  12.             <input name="cuenta" size="25" style="height: 22px" type="text" /></td>
  13.         </tr>
  14.         <tr>
  15.             <td style="height: 21px; width: 184px">PASSWORD</td>
  16.             <td style="height: 21px">
  17.             <input name="password" size="25" type="password" /></td>
  18.         </tr>
  19.         <tr>
  20.             <td style="width: 184px">PASSWORD DE NUEVO</td>
  21.             <td><input name="repassword" size="25" type="password" /></td>
  22.         </tr>
  23.         <tr>
  24.             <td style="width: 184px">TIPO DE USUARIO</td>
  25.             <td><select name="tipo">
  26.             <option selected="selected" value="usuariolq">USUARIO LQ</option>
  27.             <option value="usuariolqp">USUARIO LQP</option>
  28.             <option value="moderador">MODERADOR</option>
  29.             <option value="admin">ADMIN</option>
  30.             </select></td>
  31.         </tr>
  32.         <tr>
  33.             <td style="width: 184px">EMAIL</td>
  34.             <td><input name="email" size="25" /></td>
  35.         </tr>
  36.         <tr>
  37.             <td style="width: 184px">SEXO</td>
  38.             <td><input name="sexo" type="radio" value="masculino" />Masculino
  39.             <input name="sexo" type="radio" value="femenino" /> Femenino</td>
  40.         </tr>
  41.         <tr>
  42.             <td style="height: 15px; width: 184px">PAIS</td>
  43.             <td style="height: 15px"><select name="pais">
  44.             <option>Argentina</option>
  45.             <option>Brasil</option>
  46.             <option>Uruguay</option>
  47.             <option>Paraguay</option>
  48.             </select></td>
  49.         </tr>
  50.         <tr>
  51.             <td style="height: 21px; width: 184px">CAPTCHA</td>
  52.             <td style="height: 21px"></td>
  53.         </tr>
  54.         <tr>
  55.             <td style="height: 21px; width: 184px">TERMINOS</td>
  56.             <td style="height: 21px"><input name="Checkbox1" type="checkbox" /></td>
  57.         </tr>
  58.         <tr>
  59.             <td class="style2" colspan="2">
  60.             <input name="registrar" type="submit" value="REGISTRARSE" /></td>
  61.         </tr>
  62.     </table>
  63. </form>
Código guardar.php:
Ver original
  1. <?php
  2.  
  3. $id_usuario=0;
  4. $cuenta_usuario=$_POST['cuenta'];
  5. $password_usuario=$_POST['password'];
  6. $email_usuario=$_POST['email'];
  7. $sexo_usuario=$_POST['sexo'];
  8. $tipo_usuario=$_POST['tipo'];
  9. $pais_usuario=$_POST['pais'];
  10. $estado_usuario="activo";
  11. $guardar = "INSERT INTO usuario (id_usuario,cuenta_usuario,password_usuario,email_usuario,sexo_usuario,tipo_usuario,pais_usuario,estado_usuario) VALUES ($id_usuario,'$cuenta_usuario','$password_usuario','$email_usuario','$sexo_usuario','$tipo_usuario','$pais_usuario','$estado_usuario')";
  12. mysql_query($guardar);
  13.  
  14. ?>
  15. <center><h1>EL USUARIO <font color="red"><?php echo $cuenta_usuario ?></font> HA SIDO INSERTADO</h1></center>

Ahora los 2 tipos de conexiones que intente:
En este conexion quiero conectar a Oracle Data Base Express Edition.
Código conexion.php Oraclel:
Ver original
  1. <?php
  2. $dbhost="127.0.0.1";
  3. $dbusuario="theblackshyp";
  4. $dbpassword="453789";
  5. $db="theblackshyp";        
  6. $con= mysql_connect($dbhost, $dbusuario, $dbpassword); // line 15
  7. $db= mysql_select_db($db,$con); // line 19

Me tira los siguientes errores
Código Error 1:
Ver original
  1. Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'theblackshyp'@'localhost' (using password: YES) in C:\wamp\www\THEBLACKSHYP\conexion.php on line 15

Código Error 2:
Ver original
  1. Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\wamp\www\THEBLACKSHYP\conexion.php on line 19

Despues probe con el sigueinte condigo en la base de Datos que viene con el wamp server: phpMyAdmin MYSql version 5.0.88

Código conexion.php PhpMyAdmin:
Ver original
  1. <?php
  2. $dbhost="127.0.0.1";
  3. $dbusuario="root";
  4. $dbpassword="";
  5. $db="theblackshyp";        
  6. $con= mysql_connect($dbhost, $dbusuario, $dbpassword);
  7. $db= mysql_select_db($db,$con);

Lo raro es que no me tira ningun error, lleno el formulario presiono submit, pero despues me fijo en la base de datos y nada, no hay ningun registro


Gracias a todos
  #2 (permalink)  
Antiguo 16/02/2011, 03:37
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 8 meses
Puntos: 574
Respuesta: Problemas con PHP y Base de Datos

El primer error sobre oracle es evidente

mysql_connect

php tiene extensiones distintas para distintos moteres de bbdd usa la adequada al motor que quieras.

Creo que hay algun intento de crear una interfaz comun...

Código PHP:
Ver original
  1. $id_usuario=0;
  2.  
  3. ...
  4.  
  5. $guardar = "INSERT INTO usuario  (id_usuario, cuenta_usuario, password_usuario, email_usuario, sexo_usuario, tipo_usuario, pais_usuario, estado_usuario) VALUES ($id_usuario, '$cuenta_usuario', '$password_usuario', '$email_usuario', '$sexo_usuario', '$tipo_usuario', '$pais_usuario', '$estado_usuario')";
  6. mysql_query($guardar);

De entrada estas dando un valor fijo a $id_usuario=0 si el $id_usuario es autoincrement elimina esa linea y quita el campo del insert mysql se encargará de dar el valor.

Para poder ver posibles errores es aconsejable hacer lo siguiente

Código PHP:
Ver original
  1. $guardar = "INSERT INTO usuario (cuenta_usuario, password_usuario, email_usuario, sexo_usuario, tipo_usuario, pais_usuario, estado_usuario) VALUES ('$cuenta_usuario', '$password_usuario', '$email_usuario', '$sexo_usuario', '$tipo_usuario', '$pais_usuario', '$estado_usuario')";
  2. // **
  3. if(!mysql_query($guardar)){
  4. echo mysql_errno($con) . ": " . mysql_error($con) . "\n";
  5. }
** si mysql_query es falso te mostrarà el error de mysql

Si no da error de conexión debemos suponer que ha conectado con los datos que nos pones

Código PHP:
Ver original
  1. $dbhost="127.0.0.1";//Localhost
  2. $dbusuario="root";
  3. $dbpassword=""; //root sin password no es muy aconsejable pero funciona
  4. $db="theblackshyp";  //la base existe y tiene la tabla usuarios      
  5. $con= mysql_connect($dbhost, $dbusuario, $dbpassword);
  6. $db= mysql_select_db($db,$con);

Podrias ver si la sentencia sql se construye bien, parece que si pero...
Código PHP:
Ver original
  1. $guardar = "INSERT INTO usuario (cuenta_usuario, password_usuario, email_usuario, sexo_usuario, tipo_usuario, pais_usuario, estado_usuario) VALUES ('$cuenta_usuario', '$password_usuario', '$email_usuario', '$sexo_usuario', '$tipo_usuario', '$pais_usuario', '$estado_usuario')";
  2. //Aqui debería mostrar una sentencia bien escrita y que si la copias
  3. //y la ejecutas desde phpmyadmin funcione
  4. echo "Sentencia guardar :".$guardar."<br>"
  5.  
  6. // **
  7. if(!mysql_query($guardar)){
  8. echo mysql_errno($con) . ": " . mysql_error($con) . "\n";
  9. }

Finalmente usa id en los objetos del formulario te ayudará

...name="email" id="email"...

Suerte
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 16/02/2011 a las 04:01 Razón: $link por $con
  #3 (permalink)  
Antiguo 16/02/2011, 12:58
 
Fecha de Ingreso: febrero-2011
Mensajes: 25
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problemas con PHP y Base de Datos

Muchas gracias por tu respuesta quimfv

el problema era que no realizaba la conexion en guardar.php ahora puse la conexion en ese archivo y se guarda de 10.

Gracias
  #4 (permalink)  
Antiguo 17/02/2011, 01:14
Avatar de ryor310575  
Fecha de Ingreso: febrero-2011
Mensajes: 54
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Problemas con PHP y Base de Datos

Busque en el foro y no encontro un post en el que poder preguntar, este es el que mas se acerca por lo que posteare aca.

Mi problema es con PHP y el manejo de base de datos. Estoy empezando con esto y mi duda es la siguiente.

Una estructura de pagina WEB con PHP comun es colocar un IF ELSE que verifica la variable SUBMIT de una FORMA. Mi problema es que cuando coloco a que se ejecute la forma con yna nevación de esta variable y el Script PHP dentro del ELSE nunca funciona. Sin embargo cuando lo hago de la forma inversa si trabaja. Mi problema principal es con el Script de seteo automatico de la aplicación phpMyagenda http://aias.cs.ucy.ac.cy/projects/colognet/phpmyagenda/install.php3. En el enlace esta El script y en este otro enlace el procedimiento que plantean para seguir.http://www.gsfm.ch/divers/abp/agenda/install_english.htm

En el foro de la pagina no se encuentra nada.


* Dado que no soy un experto en PHP lo prumero que se me ocurrio fue ponerles 'echo'en los sitios que me parecio prudente.
* Luego revisar paso a paso, en este punto me fije que la veriable del "if(!isset($filled))" no aparece por ningun lado por lo que esa sentencia nunca cambia a falsa y por ende en el script nunca se ejecutara el 'else'.
* Algo "útil pero inutil" fue colocar los valores por defecto con los que quiero llenar la forma dentro de los IMPUT.
* Luego coloque la variable FILLED dentro del "SUBMIT" de la forma. Invariablemente esto no trabajo.


Gracias de antemano.
  #5 (permalink)  
Antiguo 17/02/2011, 05:13
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: Problemas con PHP y Base de Datos

Cita:
Busque en el foro y no encontro un post en el que poder preguntar, este es el que mas se acerca por lo que posteare aca.
¿Y no hubiese sido mejor que abrieras un post propio? Así, por lo menos cuando uno lo abre lo hace por TU pregunta y no por la otra (que tampoco tiene mucha relación con BBDD, sino con PHP, que es otro foro).
Tu problema no es de BBDD, sino de PHP.
Pregunta en el Foro de PHP, que es donde te pueden ayudar mejor y más rápido (ese foro tiene muchísimo movimiento, ve controlando seguido porque sino tu post pasará de página rápido).
__________________
¿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: conexion, local, php, bases-de-datos
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 14:37.