Foros del Web » Programando para Internet » PHP »

Problema con PHP y MYSQL

Estas en el tema de Problema con PHP y MYSQL en el foro de PHP en Foros del Web. Buenas tardes. Estoy intentando aprender PHP para un proyecto que me gustaría poner en marcha, pero me está dando problemas cuando intento escribir datos en ...
  #1 (permalink)  
Antiguo 23/08/2014, 06:56
 
Fecha de Ingreso: agosto-2014
Mensajes: 4
Antigüedad: 9 años, 8 meses
Puntos: 0
Problema con PHP y MYSQL

Buenas tardes.
Estoy intentando aprender PHP para un proyecto que me gustaría poner en marcha, pero me está dando problemas cuando intento escribir datos en mi base de datos MYSQL.
Trabajo desde CentOS 6.5 y utilizo las últimas versiones de PHP y MYSQL.

He estado haciendo pruebas, y he hecho un formulario en el que debería meter una serie de datos y estos deberían grabarse en la BBDD y aparecer reflejados en una tabla en la misma página web.
El problema que tengo es que no consigo que se guarden los datos en la BBDD (si que se conecta). Llevo ya varios días revisando y buscando el google pero lamentablemente no he encontrado una souición a mi problema (que seguramente será una tontería).

Os dejo aquí el código y si alguien quiere y tiene tiempo que le eche un ojo. No tengo prisa, mañana me voy y hasta el viernes estaré sin internet.

conec.php
<?php
function Conectarse()
{
if
(!($link=mysql_connect("localhost","usermysql","pa ssmysql")))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db("pruebas",$link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}
Conectarse();
echo "Conexión con la base de datos conseguida.<br>";
?>


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


insertareg.php
<html>
<head>
<title>Insertar registros en BBDD</title>
</head>
<body>
<?php
echo "Insertar registros<br>";
?>
<FORM action="agregar.php">
<table>
<TR>
<TD>Nombre:</TD>
<TD><INPUT TYPE="text" NAME="nombre" SIZE="20" MAXLENGTH="30"></TD>
</TR>
<TR>
<TD>Dirección:</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>
</table>
<INPUT TYPE="submit" NAME="accion" VALUE="grabar">
</FORM>
<hr>
<?php
include ("conec.php");
$link=Conectarse();
$result=mysql_query("select * from tablapruebas",$link);
?>
<TABLE BORDER="1" CELLSPACING="1" CELLPADDING="1">
<TR>
<TD>&nbsp;Nombre</TD>
<TD>&nbsp;Direccion&nbsp;</TD>
<TD>&nbsp;Telefono&nbsp;</TD>
<TD>&nbsp;Email&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"]);
}
mysql_free_result($result);
?>
</table>
</body>
</HTML>


Gracias de antemano
  #2 (permalink)  
Antiguo 23/08/2014, 12:33
Avatar de efenollal  
Fecha de Ingreso: abril-2012
Ubicación: Toa Baja
Mensajes: 63
Antigüedad: 12 años
Puntos: 3
Respuesta: Problema con PHP y MYSQL

Tienes que pasar los datos de insertagreg.php a agregar.php porque si no nunca va a tener valores para insertar. Segundo, tienes que escapar los valores que insertas en la base de datos para evitar el SQL Injection. Tercero deberias utilizar la libreria PDO ya que mysql_query esta depreciada.
  #3 (permalink)  
Antiguo 23/08/2014, 12:56
 
Fecha de Ingreso: agosto-2013
Ubicación: Talca
Mensajes: 40
Antigüedad: 10 años, 7 meses
Puntos: 1
Respuesta: Problema con PHP y MYSQL

Como dice efenollal, debes recibir los datos en agregar.php, que son los nombres de los inputs, que son $_POST['nombre'] o $_GET['nombre']. segun el method que coloques en el form.

Si no quieres recibir cada variable puedes usar extract($_POST/$_GET) segun sea el caso y luego insertar cada variable $_POST['nombre']/$_GET['nombre'].

Salu2.
  #4 (permalink)  
Antiguo 24/08/2014, 07:35
 
Fecha de Ingreso: agosto-2014
Mensajes: 4
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problema con PHP y MYSQL

Hola de nuevo.
Ahora ya se donde está el fallo. Veré estos días si puedo arreglarlo, que como ya he dicho, estoy empezando con esto y ando perdido.
Ya os comento el jueves cuando vuelva a casa y tenga internet de nuevo.

Muchas gracias
  #5 (permalink)  
Antiguo 24/08/2014, 14:06
Avatar de herzbazi  
Fecha de Ingreso: febrero-2012
Mensajes: 612
Antigüedad: 12 años, 1 mes
Puntos: 36
Respuesta: Problema con PHP y MYSQL

para ser un poco mas concretos tu fallo si mal no estoy esta en el form
Código HTML:
Ver original
  1. <FORM action="agregar.php">
, no le tienes ningun metodo asignado y como bien dicen nuestros compañeros , amigos y maestros debe ser POST o GET

en tu caso recomendaria un post

Código HTML:
Ver original
  1. <form  action="agregar.php" method="POST">

eso deberia de solucionarlo.

pd usa siempre el highlight para escribir tu codigo...
__________________
Enseña todo lo que sepas...
Aprende todo lo que puedas..

Última edición por herzbazi; 24/08/2014 a las 14:06 Razón: uso correcto del highlight
  #6 (permalink)  
Antiguo 26/08/2014, 09:57
 
Fecha de Ingreso: agosto-2014
Mensajes: 4
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problema con PHP y MYSQL

Hola de nuevo. He añadido el método en el forma, pero esto continua sin ir. No se cuando volveré a tener internet, así que estaré estos días revisando unos manuales y demás a ver si puedo poner solución.

Gracias
  #7 (permalink)  
Antiguo 02/09/2014, 03:38
 
Fecha de Ingreso: agosto-2014
Mensajes: 4
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: Problema con PHP y MYSQL

Hola. Ya estoy en casa y ya tengo una conexión decente para poder conectarme (Por fin).

Bueno, He estado estos últimos días peleandome con este código, y no he conseguido avanzar.
Añadí el method al formulario y confiaba en que eso solucionara las cosas, pero pro desgracia no fue así. Además he estado revisando el código comparándolo con el ejemplo del libro, e incluso llegué a hacer un copy/paste (añadi el method y cambie la BBDD), y revisé también los nombres de la BBDD y la tabla, pero esto sigue sin ir.

Por esto solicito que un sabio del lugar me eche un cable con esto, si tiene a bien, claro.

Gracias

Etiquetas: mysql
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 06:45.