Foros del Web » Programando para Internet » PHP »

ayuda con base de datos en php

Estas en el tema de ayuda con base de datos en php en el foro de PHP en Foros del Web. Hola como están soy nuevo en el tema del php estoy leyendo algunos manuales de desarrollo web estuve intentando introducir unos registros a una base ...
  #1 (permalink)  
Antiguo 25/11/2007, 22:26
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
ayuda con base de datos en php

Hola como están soy nuevo en el tema del php
estoy leyendo algunos manuales de desarrollo web
estuve intentando introducir unos registros a una base de datos pero no pude.
la base de datos en mysql la pude crear.
el problema lo tengo con el formulario y el script de php
El tema que el manual muestra dos documentos uno primero que es un formulario que recoge los datos que seria asi:

<HTML>
<HEAD>
<TITLE>Insertar.html</TITLE>
</HEAD>
<BODY>
<div align="center">
<h1>insertar un registro</h1>
<br>
<FORM METHOD="POST" ACTION="insertar.php">
Nombre<br>
<INPUT TYPE="TEXT" NAME="nombre"><br>
Telefono<br>
<INPUT TYPE="TEXT" NAME="telefono"><br>
<INPUT TYPE="SUBMIT" value="insertar">
</FORM>
</div>
</BODY>
</HTML>

si entendi bien este documento lo debo guardar con extension .html

y el segundo documento seria la pagina de destino del formulario (insertar.php) que seria:
<HTML>
<HEAD>
<TITLE>Insertar.php</TITLE>
</HEAD>
<BODY>
<?
//conexión con la base
mysql_connect("localhost","user","password");
//ejecucion de la sentencia sql
mysql_db_query("ejemplo","insert into clientes(nombre,telefono)values
('$nombre','$telefono')");
?>
<h1><div align="center">Registro insertado</div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la
base</a></div>
</BODY>
</HTML>

que supongo que este documento lo tengo que guardar con extension .php

lo que pasa es que cuando introduzco los datos en el formulario y hago click en insertar no me muestra los resultados en el segundo documento.
es decir en insertar.php no aparece el nuevo registro.
como conecto los dos documentos???

el tema seria saber si esas son las extensiones correctas.
y lo ultimo seria que tampoco el documento de php ingresa los registros en la base de datos de mysql

Si alguien me puede ayudar desde ya le agradezco.
  #2 (permalink)  
Antiguo 26/11/2007, 07:59
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: ayuda con base de datos en php

hola, lo puedes hacer todo en la misma pagina, a mi entender creo que es mucho mejor y tienes menos archivos en tu server:
Código PHP:
<?php
include("conect.php"); // conexion a la base de datos
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar')){ // verificamos si viene el formulario
    
if(!empty($_POST['nombre']) && $_POST['telefono']){ // verificamos que los campos no vengan vacios
        // asignamos los valores a las variables
        
$nombre == $_POST['nombre'];
        
$telefono == $_POST['telefono'];
        
mysql_select_db($database$conect);
        
$sql mysql_query("INSERT INTO clientes (nombre, telefono) VALUES ('$nombre', '$telefono')"$conect) or die(mysql_error());
        echo 
"Se ingresaron los registros correctamente";
    }else{
        echo 
"Debe llenar todos los campos del formulario";
    }
}
?>

<form name="clientes" method="post" action="insertar.php">
    Nombre<br><input type="text" name="nombre"><br>
    Telefono<br><input type="text" name="telefono"><br>
    <input type="submit" name="enviar" value="Enviar">
</form>
asi te debe funcionar

NOTA: en el action del formulario, en caso de que uses una web modular, debes poner: <?php $_SERVER['PHP_SELF']; ?>

prueba a ver, y me comentas si funciona

saludos y suerte

EDITO:
se me olvidaba, en el archivo de conexion (conect.php), es donde estan definidas las variables $database y $conect:
Código PHP:
$host "localhost";
$database "tubasededatos";
$user "root";
$password "******";
$conect mysql_connect($host$user$password); 
saludos
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose

Última edición por rogertm; 28/11/2007 a las 07:41
  #3 (permalink)  
Antiguo 28/11/2007, 00:47
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: ayuda con base de datos en php

ya pude armar los dos documentos y la pasar de uno aotro no tengo problema.todo funciona bien
el problema es que no me inserta los valores en la base de datos de mysql.
Creo que no esta bien establecida la conexion.
el script de conexion me quedóa asi

HTML>
<HEAD>
<TITLE>insertar.php</TITLE>
</HEAD>
<BODY>
<?
//conexión con la base
mysql_connect("localhost","root","*********");
//seleccion de la base de datos con la que vamos a trabajar
mysql_select_db("ejemplo");

//ejecucion de la sentencia sql
mysql_query("insert into clientes(nombre,telefono)values
('$nombre','$telefono')");
?>
<h1><div align="center"><i>Registro insertado</i></div></h1>
<div align="center"><a href="lectura.php">Visualizar el contenido de la
base</a></div>
</BODY>
</HTML>


No se cual es el error para que no funcione

desde ya muchas gracias
  #4 (permalink)  
Antiguo 28/11/2007, 07:49
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: ayuda con base de datos en php

pero no probaste como te dije???
usa el codigo que te di, solo cambia los valores de las variables del archivo de conexion y prueba a ver si funciona, de todas formas, creo que el error lo tienes en:
Código PHP:
<?
//conexión con la base
mysql_connect("localhost","root","*********");
//seleccion de la base de datos con la que vamos a trabajar
mysql_select_db("ejemplo");
por eso la conexion la hago con variables:
Código PHP:
$host "localhost";
$database "tubasededatos";
$user "root";
$password "******";
$conect mysql_connect($host$user$password); 
quedaria asi:
Código PHP:
mysql_select_db("ejemplo"$conect); 
trata asi a ver

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #5 (permalink)  
Antiguo 29/11/2007, 00:23
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: ayuda con base de datos en php

Hola se gui tus consejos y modifique el script
al final me quedo asi:

<?php
include("conect.php"); // conexion a la base de datos
$host = "localhost";
$database = "ejemplo";
$user = "root";
$password = "******";
$conect = mysql_connect($host, $user, $password);
$conect = mysql_select_db($database, $db_link);
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar')) // verificamos si viene el formulario
if(!empty($_POST['nombre']) && $_POST['telefono'])) // verificamos que los campos no vengan vacios
// asignamos los valores a las variables
$nombre == $_POST['nombre'];
$telefono == $_POST['telefono'];
mysql_select_db($database, $conect);
$sql = mysql_query("INSERT INTO clientes (nombre, telefono) VALUES ('$nombre', '$telefono')", $conect) or die(mysql_error());
echo "Se ingresaron los registros correctamente";
}else{
echo "Debe llenar todos los campos del formulario";
}
}
?>

<form name="clientes" method="post" action="insertar.php">
Nombre<br><input type="text" name="nombre"><br>
Telefono<br><input type="text" name="telefono"><br>
<input type="submit" name="enviar" value="Enviar">
</form>



Cuando lo ejecuto me da error en la linea 9


Si puedes fijarte que sucede te agradezco

Saludos
  #6 (permalink)  
Antiguo 29/11/2007, 00:41
 
Fecha de Ingreso: noviembre-2005
Ubicación: El Salvador
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 0
Re: ayuda con base de datos en php

puedes hacer la comprobacion del formulario solamente haciendo esto:

Código PHP:
 if (isset($_POST['enviar']))
{
    
codigo
}
else
{
   
formulario

basicamente la comprobacion de si $_POST['enviar']=='Enviar' no la veo tan necesaria intenta como te digo y veras que funcionara.

Por cierto en el action del formulario veo q tienes insertar.php para que el codigo que tienes escrito te funcione el contenido del action debe de ser $_SERVER['PHP_SELF']

Última edición por darkness51; 29/11/2007 a las 00:43 Razón: agregar contenido olvidado
  #7 (permalink)  
Antiguo 29/11/2007, 08:02
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: ayuda con base de datos en php

aqui te pongo el codigo arreglado, sigue intentandolo a ver:
Código PHP:
<?php
include ("conect.php"); // conexion a la base de datos
$host "localhost";
$database "ejemplo";
$user "root";
$password "******";
$conect mysql_connect($host$user$password);
mysql_select_db($database$db_link);
if (isset(
$_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
        if (!empty(
$_POST['nombre']) && $_POST['telefono']){ 
               
$nombre == $_POST['nombre'];
            
$telefono == $_POST['telefono'];
        }
mysql_select_db($database$conect);
$sql mysql_query("INSERT INTO clientes (nombre, telefono) VALUES ('$nombre', '$telefono')",
    
$conect) or die(mysql_error());
echo 
"Se ingresaron los registros correctamente";
}
else {
echo 
"Debe llenar todos los campos del formulario";
}
?>
en cuanto a lo de la comprobacion de si se manda el formulario o no, es mania mia, asi me imagino que evite otro tipo de cosas como ataques o algo asi, o no?
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #8 (permalink)  
Antiguo 29/11/2007, 09:02
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: ayuda con base de datos en php

Lo vengo mejorando gracias a la ayuda de ustedes
Le hice algunas modificaciones según lo que me dijeron y al final me quedo asi

<?php
include("conect.php"); // conexion a la base de datos
$host = "localhost";
$database = "ejemplo";
$user = "root";
$password = "1592";
$conect = mysql_connect($host, $user, $password);
$conect = mysql_select_db($database, $db_link);
if(isset($_POST['enviar'])) // verificamos si viene el formulario
if(!empty($_POST['nombre'])) // verificamos que los campos no vengan vacios
// asignamos los valores a las variables
$nombre == $_POST['nombre'];
$telefono == $_POST['telefono'];
mysql_select_db($database, $conect);
$sql = mysql_query("INSERT INTO clientes (nombre, telefono) VALUES ('$nombre', '$telefono')", $conect) or die(mysql_error());
echo "Se ingresaron los registros correctamente";
}
else
{
echo "Debe llenar todos los campos del formulario";
}
}
?>

<form name="clientes" method="post" action="$_SERVER['PHP_SELF']">
Nombre<br><input type="text" name="nombre"><br>
Telefono<br><input type="text" name="telefono"><br>
<input type="submit" name="enviar" value="Enviar">
</form>


ahora cuando lo trato de correr me da error en la linea 17

espero me puedan seguir dando un mano y poder terminarlo antes de Navidad



saludos y gracias desde ya
  #9 (permalink)  
Antiguo 29/11/2007, 09:28
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: ayuda con base de datos en php

Código PHP:
<?php
include("conect.php"); // conexion a la base de datos
$host "localhost";
$database "ejemplo";
$user "root";
$password "1592";
$conect mysql_connect($host$user$password);
$conect mysql_select_db($database$db_link);   
if(isset(
$_POST['enviar']))  // verificamos si viene el formulario
    
if(!empty($_POST['nombre'])) // verificamos que los campos no vengan vacios
        // asignamos los valores a las variables
        
$nombre == $_POST['nombre'];
        
$telefono == $_POST['telefono'];
        
mysql_select_db($database$conect);
$sql mysql_query("INSERT INTO clientes (nombre, telefono) VALUES ('$nombre', '$telefono')"$conect) or die(mysql_error());
        echo 
"Se ingresaron los registros correctamente";
 }
else
 {
        echo 
"Debe llenar todos los campos del formulario";
    }
}
?>
FIJATE, tienes unas cuantas cosillas aqui que no deben ser, si llamas por include a tu script de conexion, no tienes por que ponerlo otra vez aqui
Código PHP:
include("conect.php"); // conexion a la base de datos
 
$host "localhost";
 
$database "ejemplo";
 
$user "root";
 
$password "1592"
esta parte debe quedar asi:
Código PHP:
include("conect.php"); 
si te fijas mas arriva, edite mi primer mensaje, asi que la variable $conect no la debes repetir.

el error de la linea 17 es que tienes una llave "{}" cerrada sin abrir.

por otro lado, no verificas si la variable $telefono viene vacia o no, a no ser que sea opcional.

MIRA, copia y pega el codigo que te doy y prueba, si no te sale, entonces metete a modificarlo, pero pruebalo antes de hacerle nada, ok.
otra vez te lo pego aqui:
Código PHP:
<?php
include ("conect.php"); // conexion a la base de datos
$conect mysql_connect($host$user$password);
mysql_select_db($database$db_link);
if (isset(
$_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
        if (!empty(
$_POST['nombre']) && $_POST['telefono']){ 
            
$nombre == $_POST['nombre'];
            
$telefono == $_POST['telefono'];
        }
mysql_select_db($database$conect);
$sql mysql_query("INSERT INTO clientes (nombre, telefono) VALUES ('$nombre', '$telefono')",
    
$conect) or die(mysql_error());
echo 
"Se ingresaron los registros correctamente";
}
else {
echo 
"Debe llenar todos los campos del formulario";
}
?>
WARNING: ahora me doy cuenta que el que metio dos veces la conexion fui yo , bueno, rectificar es de sabios, jejejeje.

bueno man, has lo que te digo y me dices como te fue

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #10 (permalink)  
Antiguo 30/11/2007, 02:14
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: ayuda con base de datos en php

Hola

copie y corri el script que me mandaste
y me aparecieron en la pagina las siguientes advertencias

Warning: include(conect.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\ejercicios\insertar4.php on line 2

Warning: include() [function.include]: Failed opening 'conect.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\ejercicios\insertar4.php on line 2

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\AppServ\www\ejercicios\insertar4.php on line 3

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\ejercicios\insertar4.php on line 4
Debe llenar todos los campos del formulario

Si podes fijate a ver que pasa
desde ya gracias
Saludos
Sebastián
  #11 (permalink)  
Antiguo 30/11/2007, 07:25
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: ayuda con base de datos en php

Cita:
Iniciado por sciuto Ver Mensaje
Warning: include(conect.php) [function.include]: failed to open stream: No such file or directory in C:\AppServ\www\ejercicios\insertar4.php on line 2

Warning: include() [function.include]: Failed opening 'conect.php' for inclusion (include_path='.;C:\php5\pear') in C:\AppServ\www\ejercicios\insertar4.php on line 2

Warning: mysql_connect() [function.mysql-connect]: Can't connect to MySQL server on 'localhost' (10061) in C:\AppServ\www\ejercicios\insertar4.php on line 3

Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in C:\AppServ\www\ejercicios\insertar4.php on line 4
Debe llenar todos los campos del formulario
hola, lo que tienes aqui son problemas de rutas, que la funcion include() no encuentra el archivo de conexion, en este caso, tienes que tener dicho archivo en la misma carpeta de este script, de no ser asi, debes espesificar la ruta del mismo:
Código PHP:
include("carpeta/conect.php"); 
asi, por eso es que te da todos esos palos.

PD: mijo, cuando terminemos te pongo mis apellidos, jajajaja

saludos y suerte
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
  #12 (permalink)  
Antiguo 01/12/2007, 19:43
 
Fecha de Ingreso: noviembre-2007
Mensajes: 19
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: ayuda con base de datos en php

Hola rogertm:
No hay caso che cada cosa que pruebo la empeora
Si queres agregame al messenger y chateamos un rato a ver si me ayudas a solucionarlo aca te dejo mi dirección [email protected]

y despues me decis cuanto te debo $$$
  #13 (permalink)  
Antiguo 03/12/2007, 08:08
Avatar de rogertm
Mod->Cuba
 
Fecha de Ingreso: julio-2005
Ubicación: /home/Cuba/Habana/rogertm/
Mensajes: 2.922
Antigüedad: 18 años, 9 meses
Puntos: 638
Re: ayuda con base de datos en php

hola colocoloman, no chateo , prefiero postear, lo que tienes que hacer (elevado a la N), jajaja, es tener tu conexion:
Código PHP:
// este es el archivo conect.php
$host "localhost";
$database "tubasededatos";
$user "root";
$password "******";
$conect mysql_connect($host$user$password); 
y luego en otro archivo tu script:
Código PHP:
 <?php
include ("conect.php"); // conexion a la base de datos
$conect mysql_connect($host$user$password);
mysql_select_db($database$db_link);
if (isset(
$_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
        if (!empty(
$_POST['nombre']) && $_POST['telefono']){ 
            
$nombre == $_POST['nombre'];
            
$telefono == $_POST['telefono'];
        }
mysql_select_db($database$conect);
$sql mysql_query("INSERT INTO clientes (nombre, telefono) VALUES ('$nombre', '$telefono')",
    
$conect) or die(mysql_error());
echo 
"Se ingresaron los registros correctamente";
}
else {
echo 
"Debe llenar todos los campos del formulario";
}
?> 
<!-- junto con el formulario
     todo en el mismo archivo -->
 <form name="clientes" method="post" action="$_SERVER['PHP_SELF']">
    Nombre<br><input type="text" name="nombre"><br>
    Telefono<br><input type="text" name="telefono"><br>
    <input type="submit" name="enviar" value="Enviar">
</form>
AHORA: en tu tabla tienes los campos telefono y nombre verdad???
en el include() tienes que tener la ruta correcta de tu archivo de conexion, ok?

PD: ve leyendote esto: http://www.php.net/manual/es/

seguiremos informando
__________________
Friki y Blogger por Cuenta Propia:213
Twenty'em: Theming is Prose
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:59.