Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ELIER en 13 Febrero 2008, 08:14 am



Título: problema para Ingresar datos a la BD Mysql
Publicado por: ELIER en 13 Febrero 2008, 08:14 am
Bueno resulta que soy nuevo en php y Mysql ahorita estoy viendolo en la universidad y pues el profe me mando a hacer una pagina que tenga botones como Incluir, modificar, consultar y borrar en Dreamweaver

Bueno lo cierto es que estoy con INCLUIR y pues ya hice la base de datos y la tabla y no me graba los datos quería que alguien si revisara el codigo a ver que no se que error tiene ahi le va..

Código:
insertareg.php
<html>
<head>
<title>INSERTAR </title>
</head>
<body>
<H1 align="center">Incluir</H1>
<FORM ACTION="agregar.php">
<TABLE>
<TR>
<TD>Nombre:</TD>
<TD><INPUT TYPE="text" NAME="nombre" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Direccion:</TD>
<TD><INPUT TYPE="text" NAME="direccion" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Telefono:</TD>
<TD><INPUT TYPE="text" NAME="telefono" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Email:</TD>
<TD><INPUT TYPE="text" NAME="email" SIZE="20"
MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Imagen:</TD>
<TD><input type="text" name="imagen" size="20"
maxlength="30"></TD>
</TR>
</TABLE>
<INPUT TYPE="submit" NAME="accion" VALUE="Grabar">
</FORM>
<hr>
<?php
@include("conec.php");
$link=Conectarse();
$result=mysql_query("select * from tablacurso",$link);
?>
<TABLE BORDER=1 CELLSPACING=1 CELLPADDING=1>
<TR>
<TD>&nbsp;Nombre</TD>
<TD>&nbsp;Dirección&nbsp;</TD>
<TD>&nbsp;Telefono&nbsp;</TD>
<TD>&nbsp;Email&nbsp;</TD>
<TD>&nbsp;Imagen&nbsp;</TD>
</TR>
<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp
;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;<img
src=%s>&nbsp;</td></tr>",
$row["nombre"],$row["direccion"],$row["telefono"],$row["email
"],$row["imagen"]);
}
mysql_free_result($result);
?>
</table>
</body>
</html>
agregar.php
<?php
@include("conec.php");
$link=Conectarse();
$sql="insert into tablacurso
(nombre,direccion,telefono,email,imagen) values
('$nombre','$direccion', '$telefono', '$email', '$imagen')";
mysql_query($Sql,$link);
header("Location: insertareg.php");
?>

Bueno ya yo hice otro llamado conec.php que según una guia que estoy leyendo es para establecer la conexion ese archivo tiene este codigo

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
<?php
function Conectarse()
{
if
(!($link=mysql_connect("localhost","root","")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("basecurso",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
Conectarse();
echo "Conexión con la base de datos conseguida.<br>";
?>
</body>
</html>


No se que hacer cuando le doy para incluir pues me sale la tipica pantalla de error que sale cuando uno no tiene internet y abre una pagina. Bueno gracias de antemano  a cualquiera que me eche una manito saludos


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: :ohk<any> en 13 Febrero 2008, 23:23 pm


insertareg.php


<FORM ACTION="agregar.php"


method="post"
yo creo q te falta algo como eso...

>

<?php
while($row = mysql_fetch_array($result)) {
printf("<tr><td>&nbsp;%s</td><td>&nbsp;%s&nbsp;</td><td>&nbsp
;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;<img
src=%s>&nbsp;</td></tr>",
$row["nombre"],$row["direccion"],$row["telefono"],$row["email
"],$row["imagen"]);
}
mysql_free_result($result);
?>

//La verdad nose si esto te este corriendo


Por otro lado , no veo donde recibes las variables q estas enviando en insertareg.php

Citar
agregar.php
<?php
@include("conec.php");
$link=Conectarse();
$sql="insert into tablacurso
(nombre,direccion,telefono,email,imagen) values
('$nombre','$direccion', '$telefono', '$email', '$imagen')";
mysql_query($Sql,$link);
header("Location: insertareg.php");
?>

acá no veo q recibas nada, osea las variables q introduces, por ejemplo.
$nombre...??
debería haber algo como

Código:
$nombre = $HTTP_POST_VARS ["nombre"];


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: ELIER en 14 Febrero 2008, 05:08 am
Uy Dios que hago ahora disculpa por estar un poco desorientado pero ese codigo que me diste en que lado lo coloco? borro lo demas?

la verdad soy novato en este tema porfa me puedes echar una manito con el codigo solo quiero meter datos en una tabla llamada tabla curso y la base de datos base curso esta muy dificil la sintaxis? ..... gracias de antemano

Pues mira yo me guié de aca pero si tienes un codigo mas facil yo quiero hacer que mi pagina grabe registros pero no comprendo porque se vuelve tan complicado

Código:
http://www.pecesama.net/php/mysql.php


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: :ohk<any> en 14 Febrero 2008, 11:32 am
Mira, ELIER

te voy a explicar mas o menos como funciona la cosa.

Primero haces un formulario <form action="destino" method="post o get">

dentro de acá es que va los campos de texto donde pones el nombre de la persona y sus demás datos.

Luego cierras el form </form> y al archivo con el nombre q sea q hayas escogido como destino, por regla en php debes recibir las variables q enviaste por el form.

osea si tu campo de texto para nombre se llamaba NAME="nombre" y quieres meterlo en la base de datos, el archivo agregar.php debería recibirlo:

$nombre = $_POST['nombre'];

y bueno una ves hecho esto recién tendrías a tu variable recibida, luego puedes introducir $nombre a la base de datos.

Te voy a pasar un codigo abierto donde hago Altas, Bajas y Cambios
pero en el código no voy a prevenir ninguna inyección sql para no complicarte más.

ALTAS, el archivo que envía altas.php

Código:

<?php


// Bueno, ahora aqui va el formulario...

echo "

<form action='insert.php' method='post'>
    <table width='200' border='0' align='center'>
              <tr>
                <td><div align='center'>Nombre</div></td>
                <td><div align='center'>
                  <label>
                  <input type='text' name='textfield' />
                  </label>
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>Apellido Paterno </div></td>
                <td><div align='center'>
                  <input type='text' name='textfield2' />
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>Apellido Materno </div></td>
                <td><div align='center'>
                  <input type='text' name='textfield3' />
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>Sexo</div></td>
                <td><div align='center'>
                  <input type='text' name='textfield4' />
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>C.I.</div></td>
                <td><div align='center'>
                  <input type='text' name='textfield5' />
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>Ciudad</div></td>
                <td><div align='center'>
                  <input type='text' name='textfield6' />
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>Pais</div></td>
                <td><div align='center'>
                  <input type='text' name='textfield7' />
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>R.U.</div></td>
                <td><div align='center'>
                  <input type='text' name='textfield8' />
                </div></td>
              </tr>
              <tr>
                <td><div align='center'>email</div></td>
                <td><div align='center'>
                  <input type='text' name='textfield9' />
                </div></td>
              </tr>
  <tr>
                <td><div align='center'>Telefono</div></td>
                <td><div align='center'>
                  <input type='text' name='textfield10' />
                </div></td>
              </tr>
              <tr>
                <td colspan='2'><div align='center'>
                  <label>
                  <input type='submit' name='go' value='insertar' />
                  </label>
                </div></td>
              </tr>
            </table>
<br> <div align='center'>Debe llenar todos los campos sin falta.</div>
    </form>

";
?>

//Bien, esto es lo que necesitas para el que manda
//ahora bien, para el que recibe si te fijaste se llama insert.php

<?
$host="localhost";
$user="root";
$passwd="";
$db="tec_int";

$nombre=$_POST['textfield'];
$ap_paterno=$_POST['textfield2'];
$ap_materno=$_POST['textfield3'];
$sexo=$_POST['textfield4'];
$ci=$_POST['textfield5'];
$ciudad=$_POST['textfield6'];
$pais=$_POST['textfield7'];
$ru=$_POST['textfield8'];
$email=$_POST['textfield9'];
$phone=$_POST['textfield10'];

//EN TODO ESTE BOLLO ES QUE ESTOY RECIBIENDO LAS VARIABLES

$link = mysql_connect($host, $user, $passwd);
mysql_select_db($db, $link);

if($_POST['go']=="insertar")
{
$sql_ = mysql_query("SELECT * from alumnos where ru='$ru'", $link);

                //aca estoy comprobando que lo que ingresa no este yá en la base de datos...               

if(mysql_num_rows($sql_)>0)
{
echo "<meta http-equiv=REFRESH CONTENT=2;URL='altas.php'>
<br><br><center>
<div align='center'>El registro ya exsite!.</div> //acá le digo que ya existe.
</center> ";
}
else //Pero si en caso no existiera debería meterlo a la base
{
$sql=mysql_query("INSERT INTO alumnos VALUES(null, '$nombre', '$ap_paterno', '$ap_materno', '$sexo', '$ci', '$ciudad', '$pais', '$ru', '$email', '$phone')", $link);
echo "<meta http-equiv=REFRESH CONTENT=2;URL='index.php'>
<br><br><center>
<div align='center'>Registro agregado correctamente.</div>
</center>

";
}
}
else
{
header("Location:index.php");
}

//NO METERIA NINGUN DATO SI ES QUE NO HUBIESE RECIBIDO LAS VARIABLES  
 
?>

?>

Espero este ejemplo pueda ayudarte a despejar algunas dudas, claro está q para tus campos y tu base de datos no va a funcionar.


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: :ohk<any> en 14 Febrero 2008, 11:44 am
por motivos de tiempo, no voy a poder darte los ejemplos de bajas y cambios  :¬¬
pero será la proxima  :xD


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: ELIER en 15 Febrero 2008, 08:48 am
Bueno te cuento primero que todo hice el formulario con el codigo que me diste todo lo probé con tus mismos datos para ver.. entonces el formulario salió bien salio un dibujito de PHP amarillo abajo luego le di vista previa y salio centradito el formulario ok, guarde esa parte como Altas.php

luego abri otra hoja nueva y pegué lo demás osea el código para mandar los datos a altas eso entendí, a ese archivo lo llamé insert.php luego cambie esta líneas 
Código:
$link = mysql_connect($host, $user, $passwd); 
   

  por mi usuario por defecto que creo que es este   
Código:
$link = mysql_connect($localhost, $root, $""); 
aja luego de eso supuse que faltaria hacer la base de datos la hice con PhpAdmin fijate base de datos: tec_int y tabla: alumnos te pongo una print

(http://s1.subirimagenes.com/imagenes/previo/thump_1887348print1.jpg) (http://www.subirimagenes.com/imagen-de-print1-1887348.html)




Ok entonces todo parece estar bien, abro la vista previa de altas.php y relleno el formulario luego que le doy INSERTAR fijate la pantalla que sale

(http://s1.subirimagenes.com/imagenes/previo/thump_1887349print2.jpg) (http://www.subirimagenes.com/imagen-de-print2-1887349.html)


Bueno pareciera que agrega los datos lanza esa pantalla y luego sale otra que supongo que es porqu no he hecho el INDEX.PHP
entonces reviso la base de datos en phpAdmin y pareciera que sigue vacia disculpa tanto fastidio pero que estoy haciendo mal?? jeje he estado hasta tarde tratando de revisar por mi mismo pero no se que estará pasando ... :-[






Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: :ohk<any> en 15 Febrero 2008, 11:40 am
mmm, ya veo
dame un segundo q reviso bien el código


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: :ohk<any> en 15 Febrero 2008, 11:44 am
bueno, te diré que vamos a hacer, te voy a dar la BD en .sql para que la cargues al phpmyadmin.
Y te voy a pasar todo el código ok?
pero como no puedo postear codígo tan largo pues te voy a poner links


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: :ohk<any> en 15 Febrero 2008, 11:56 am
Bueno ahora si ya está!   ;)

Y dode veas este código
Código:
$site="http://".$_SERVER['HTTP_HOST']."".$_SERVER['REQUEST_URI']."";
no te preocupes simplemente esta sacando la información de la dirección web.
si quieres hazle un
Código:
echo $site;
para que lo compruebes.

bueno el sql esta aqui (http://www.esnips.com/nsdoc/334a9054-8bbc-48d9-9326-ed924ff7b0d7)

borra la tabla alumnos que hiciste antes de cargar este sql.

y los ejemplos en php, donde hay altas, bajas y cambios esta aqui (http://www.esnips.com/nsdoc/34b03a33-85fc-4665-8db2-f87f6725160a)
puro php, puedes utilizar todo lo que te sirva.



Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: Goldmoon en 15 Febrero 2008, 12:32 pm
Esto es lo que buscas, es un ejercicio igual que el tuyo, resuelto.

http://www.programacion.net/articulo/php_mysql/ (http://www.programacion.net/articulo/php_mysql/)


Título: Re: problema para Ingresar datos a la BD Mysql
Publicado por: ELIER en 16 Febrero 2008, 08:25 am
Buenooo graciaaaaas a los dos por ayudarme ya logré lo que queria mezclé un poquito de los dos jeje muy practtica la pagina GOLDMOON y tu OHK gracias por tener la paciencia y el tiempo para responderme de veras! jejee no se como agradecerte   ;D ya se que cuento con ustedes gracias por existir saludoss!!