Foros del Web » Programando para Internet » PHP »

Ayuda!!! Please!!

Estas en el tema de Ayuda!!! Please!! en el foro de PHP en Foros del Web. que ahi de malo aki!!:: <? //Conexion con la base include("conexio.php"); $sql = ' INSERT INTO noticia (id,titulo,noticia) VALUES ( "$HTTP_POST_VARS[id]", "$HTTP_POST_VARS[titulo]", "$HTTP_POST_VARS[noticia]" ) '; ...
  #1 (permalink)  
Antiguo 29/08/2003, 00:41
 
Fecha de Ingreso: agosto-2003
Ubicación: Chile
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 0
Ayuda!!! Please!!

que ahi de malo aki!!::

<?
//Conexion con la base
include("conexio.php");

$sql = '
INSERT INTO noticia (id,titulo,noticia) VALUES (
"$HTTP_POST_VARS[id]",
"$HTTP_POST_VARS[titulo]",
"$HTTP_POST_VARS[noticia]"
) ';

mysql_query($sql);
echo "Noticia Agregada!";

mysql_close ($link);

?>

que al enviarle la noticia desde el formulario para agregarla en la db la deja asi

titulo= $HTTP_POST_VARS[titulo]
noticia= $HTTP_POST_VARS[titulo]

en ves de pasar los datos que he enviado desde el form ?

este es el form

<h1>Agregar Noticia</h1>
<br>
<FORM METHOD="POST" ACTION="send.php">
Titulo<br>
<INPUT TYPE="TEXT" NAME="titulo"><br>
Noticia<br>
<INPUT TYPE="TEXT" NAME="noticia"><br>
<INPUT TYPE="SUBMIT" value="Insertar">

la id se autoincrementa asique no es necesario ponerla pero deveria de funcionar alguien sabe cual es el error porfis
  #2 (permalink)  
Antiguo 29/08/2003, 00:58
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si usas comillas simples .. NO se interpreta el código .. osease tu $HTTP_POST_VARS[id] etc .. no toman su valor ...

Usa concatenación:


Código PHP:
$sql "INSERT INTO noticia (id,titulo,noticia) VALUES ('','".$HTTP_POST_VARS['id']."','".$HTTP_POST_VARS['titulo']."',
"
.$HTTP_POST_VARS['noticia']."')"
(fijate como el coloreado de la sintax diferencia donde tenemos variables ..)

Los indices de arrays que sean asocitivas (es es caso) es recomendable usar comillas (simples o dobles) para que no puedan ser tomados como "constantes" (si no usas comillas).

Otro consejo .. NUNCA muestres mensajes de error/exito de un proceso en el mismo flujo del script (oseas, al terminar en tu caso el mysql_query() .. ) Si recargas la página accidentalmente verás como tu navegador te pide que si "puedo enviar las variables denuevo" si dices "ok" .. se ocasionaran registros duplicados en tu BD.

Redirecciona a otra página o a si mima pasanadole alguna variable de control...

Algo muy sencillo .. redireccionar a una página de "gracias" al terminar el proceso ...

Código PHP:
header("Location: gracias.html");
exit; 
(NOTA: No tieens que usar nada de HTML en ese script .. o por lo menos no antes de <? (ni salto de línea ni espacios que son considerados como "envio de cabeceras")

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 29/08/2003 a las 01:03
  #3 (permalink)  
Antiguo 29/08/2003, 02:02
 
Fecha de Ingreso: agosto-2003
Ubicación: Chile
Mensajes: 9
Antigüedad: 14 años, 3 meses
Puntos: 0
Código PHP:
<?
//Conexion con la base
include("conexio.php"); 

$sql "INSERT INTO noticia (id,titulo,noticia) VALUE('','".$HTTP_POST_VARS['id']."','".$HTTP_POST_VARS['titulo']."',".$HTTP_POST_VARS['noticia']."')";

mysql_query($sql); 


mysql_close 
($link); 

?>

lo deje asi y aun no inserta los campos en la db
  #4 (permalink)  
Antiguo 29/08/2003, 15:46
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Para ver los mensajes de error de MySQL, usa esta estructura:
Código PHP:
mysql_query($sql) or die("Error en $sql .<br>Mysql dice: ".mysql_error()); 
La programacion se basa en la "suma cero". Si le dices que quieres insertar 3 campos, no le puedes pasar 4 valores. Y si dices que id es autoincremental, no pinta nada ni a un lado ni a otro.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 13:39.