Foros del Web » Programando para Internet » PHP »

No insertar valor que si reconoce

Estas en el tema de No insertar valor que si reconoce en el foro de PHP en Foros del Web. De antemano gracias, soy nuevo ... lo estoy viendo en la universidad apenas Tengo este código, es una página que se llena desde la base ...
  #1 (permalink)  
Antiguo 02/08/2010, 20:16
Avatar de MarioAlejandroCR2  
Fecha de Ingreso: mayo-2010
Ubicación: Esparza - Puntarenas
Mensajes: 98
Antigüedad: 13 años, 11 meses
Puntos: 2
Pregunta

De antemano gracias, soy nuevo ... lo estoy viendo en la universidad apenas
Tengo este código, es una página que se llena desde la base de datos de mysql, al darle clic a un enlace de otra página (noticias.php) con varios enlances de noticias toma el valor idnoticia (idn) y se llena correctamente con los datos de esa noticia en la pagina de noticialista.php, lo esta reconociendo en noticialista.php, para mi uso, declare la variable $cons y que tome el valor de idn
también la reconoce porque le hice un echo que la imprimiera y si imprime el valor idn, el numero de noticia que esta llenando:
Acá el metodo que lo declara:


Código PHP:
<?php 
session_start
();
require_once(
'conexion.php'); 
//Funcion que devuelve el tipo de dato que se desea aplicar a una consulta de sql de 
// insert o update, 
function ObtenerValor($elValor$elTipo$elValorDefinido ""$elValorSinDefinir "")  
{
$elValor = (!get_magic_quotes_gpc()) ? addslashes($elValor) : $elValor;
switch (
$elTipo) {
case 
"text":
$elValor = ($elValor != "") ? "'" $elValor "'" "NULL";
break;    
case 
"long":
case 
"int":
$elValor = ($elValor != "") ? intval($elValor) : "NULL";
break;
case 
"double":
$elValor = ($elValor != "") ? "'" doubleval($elValor) . "'" "NULL";
break;
case 
"date":
$elValor = ($elValor != "") ? "'" $elValor "'" "NULL";
break;
case 
"defined":
$elValor = ($elValor != "") ? $elValorDefinido $elValorSinDefinir;
break;
}
return 
$elValor;
//fin de la funcion 
$cons=$_GET["idn"];//cAPTURA VALOR ENVIADO COMO PARAMETRO
$_SESSION["cons"]=$cons;
//Consulta los row_regis del usuario para la interfase
mysql_select_db($Basedatos$MiConexion);
$AuxSql "SELECT * FROM noticia";
$regis mysql_query($AuxSql$MiConexion) or die(mysql_error());
$row_regis mysql_fetch_assoc($regis);
?>
Y acá el valor que llena con comentario pero no guarda el numero de noticia con $cons mediante un procedure:

Código PHP:
<?php
$Accion 
$_SERVER['PHP_SELF']; 
if ((isset(
$_POST["OC_insertar"])) && ($_POST["OC_insertar"] == "formita")) {
$insertSQL sprintf("call insComentario(0,$cons,'".$_SESSION['nickname']."','".$_POST['comentario']."',now(),now()");
mysql_select_db($Basedatos$MiConexion);
$Result1 mysql_query($insertSQL$MiConexion) or die(mysql_error());
};
// fin del if 
?>
Y acá el formulario para comentar:

Código PHP:
  <?php
//Define y ejecuta una linea de consulta sobre la BD.
$Aux 'Select * from comentario WHERE idnoticia = '.$_GET['idn'].'';
$Regs mysql_query($Aux$MiConexion);
$color=0;
while(
$cateFilar mysql_fetch_assoc($Regs)){
echo 
'<div class="divnoti"><font size="2"><b>Comentario: ' ,$cateFilar['idcomentario'] ,'</b></font></div>';
//echo '<div class="divnoti"><font size="2" color="#2e2e2e"><b>Idnoticia: </b>' ,$cateFilar['idnoticia'] ,'</font></div>';
echo '<div class="divnoti"><font size="2" color="#2e2e2e"><b>' ,$cateFilar['nickname'] ,'</b> dijo:</font></div>';
echo 
'<div class="divnoti"><font size="2" color="#2e2e2e">' ,$cateFilar['comentario'] ,'</font><hr color="#DDDDDD"></hr></div>';
}
//Libera la memoria de información cargada
mysql_free_result($Regs);
?>
Al tratar de comentar me sale este problema:
Código:
Notice: Undefined index: idn in C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\ti\noticialog.php on line 29 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''MarioAlejandroCR','das',now(),now()' at line 1
Me está reconociendo el nombre de usuario, el coemtario, la fecha y la hora, pero no el idnoticia (idn, o $cons) ni el autoincremento, pero ese no porque ni se ha conectado a la base de datos por rl error supongo.
Los datos en la base de datos son idcomentario(autoincremento), idnoticia, nickname, comentario, fecha y hora.
Este es el procedure:

Código:
DELIMITER //

CREATE DEFINER=`root`@`localhost` PROCEDURE `insComentario`(in idcomentario int,
                            in idnoticia int,
                            in nickname varchar(25),
                            in comentario tinytext,
                            in fecha DATE,
                            in hora TIME)
begin

insert into comentario values(idcomentario,idnoticia,nickname,cometario,fecha,hora);
	 
end//
De antemano gracias

Disculpen el titulo es "No inserta valor que reconoce"

Última edición por GatorV; 03/08/2010 a las 09:01

Etiquetas: reconoce
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 08:30.