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);
?>
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
?>
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);
?>
Código:
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.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
Los datos en la base de datos son idcomentario(autoincremento), idnoticia, nickname, comentario, fecha y hora.
Este es el procedure:
Código:
De antemano graciasDELIMITER // 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//
Disculpen el titulo es "No inserta valor que reconoce"