Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Inserta registros en blanco en mysql

Estas en el tema de Inserta registros en blanco en mysql en el foro de PHP en Foros del Web. Buenos días, me llamo Manuel Atienza, estoy aprendiendo PHP y tengo un problema y es que tengo un archivo con información, enlaces, un formulario para ...

  #1 (permalink)  
Antiguo 11/07/2015, 03:41
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Pregunta Inserta registros en blanco en mysql

Buenos días, me llamo Manuel Atienza, estoy aprendiendo PHP y tengo un problema y es que tengo un archivo con información, enlaces, un formulario para comentario y para ver los comentarios aquí podéis ver mi archivo info.php
Código PHP:
<?php         
error_reporting
(0);
session_start();
include(
'config/config.php');
$conwb = @mysql_connect($SQL_Host,$SQL_User,$SQL_Pass);
$serie $_GET['id'];
mysql_query("SET NAMES 'iso-8859-1'");
$serieinfo = @mysql_query("SELECT Codigo,Nombre,Nombre_Alternativo,Url,Duracion,Sipnosis,Mini,Categoria,Generos,Estado,Ano,Director,Reparto,ideoma,views FROM $SQL_Base.series_anime Where Url='$serie'"$conwb) or die(mysql_error());
while (
$crow = @mysql_fetch_array($serieinfo)){
include(
'header.php');

$idseries $growsx['id'];
$conwbx = @mysql_query("UPDATE $SQL_Base.series_anime SET views = views + 1 WHERE id='$idseries'");

if(
$imgremota=='si' && $crow['Mini']!==NULL){$portada=$crow['Mini'];}else{$portada=$urlpath_static_portadas.''.$crow['Imagen'];}
?>
<div class="titulo ui-state-default"><?=$crow['Nombre']?></div>
<div class="movie-image-panel">
<div id="container">
<input id="tab-1" type="radio" name="tab-group" checked="checked" />
<label for="tab-1">Informaci&oacute;n</label>
<input id="tab-2" type="radio" name="tab-group" />
<label for="tab-2">Videos</label>
<input id="tab-3" type="radio" name="tab-group" />
<label for="tab-3">Comentarios</label>
<input id="tab-4" type="radio" name="tab-group" />
<label for="tab-4">Comenta</label>
<div class="float-separator"></div>

<div id="info">
<div id="info-1" style="overflow:auto; height:20em;">
<ul class="movie-info" style="margin-left:10px; margin-right:10px;">
    <li>
        <span>T&Iacute;TULO ORIGINAL</span>
        <p><?=$crow['Nombre_Alternativo']?></p>
    </li>
    <li>
        <span>A&Ntilde;O / Idioma</span>
        <p><?
$eachurl 
explode(''$fj_video_list);
$arrayano explode(','str_replace('','',$crow['Ano']) );
$eachurl_total count($arrayano);
$totalxd='0';
foreach(
$arrayano as $e){
$totalxd++;
if(
$eachurl_total==$totalxd){$coma='';}else{$coma=', ';}
echo 
'<a href="'.$urlpath.'ano/'.urlencode(strtolower($e)).'">'.$e.'</a>'.$coma;
}
$crow['Ano']?> / <img src="<?=$urlpath?>imgs/countries/<?=$crow['ideoma']?>.png" />&nbsp;
        <?
$eachurl 
explode(''$fj_video_list);
$arrayideoma explode(','str_replace('.','',$crow['ideoma']) );
$eachurl_total count($arrayideoma);
$totalxd='0';
foreach(
$arrayideoma as $e){
$totalxd++;
if(
$eachurl_total==$totalxd){$coma='';}else{$coma=', ';}
echo 
'<a href="'.$urlpath.'idioma/'.urlencode(strtolower($e)).'" class="">'.$e.'</a>'.$coma;
}
$crow['ideoma']?></p>
    </li>
    <li>
        <span>ESTRENO</span>
        <p>
        <?
$eachurl 
explode('<div class="mc-year-country">'$fj_video_list);
$arrayano explode(','str_replace('','',$crow['Ano']) );
$eachurl_total count($arrayano);
$totalxd='0';
foreach(
$arrayano as $e){
$totalxd++;
if(
$eachurl_total==$totalxd){$coma='';}else{$coma=', ';}
echo 
'<a href="'.$urlpath.'ano/'.urlencode(strtolower($e)).'" class="">'.$e.'</a>'.$coma;
}
$crow['Ano']?></p>
    </li>
    <li>
        <span>DURACI&Oacute;N</span>
        <p><?=$crow['Duracion']?> min.</p>
    </li>
    <li>
        <span>DIRECTOR</span>
        <p>
<?
$eachurl 
explode(''$fj_video_list);
$arraydirector explode(','str_replace('.','',$crow['Director']) );
$eachurl_total count($arraydirector);
$totalxd='0';
foreach(
$arraydirector as $e){
$totalxd++;
if(
$eachurl_total==$totalxd){$coma='';}else{$coma=', ';}
echo 
'<a href="'.$urlpath.'director/'.urlencode(strtolower($e)).'" class="">'.$e.'</a>'.$coma;
}
$crow['Director']?></p>
    </li>
    <li>
        <span>REPARTO</span>
        <p>
<?
$eachurl 
explode(''$fj_video_list);
$arrayreparto explode(', 'str_replace('.','',$crow['Reparto']) );
$eachurl_total count($arrayreparto);
$totalxd='0';
foreach(
$arrayreparto as $e){
$totalxd++;
if(
$eachurl_total==$totalxd){$coma='';}else{$coma=', ';}
echo 
'<a href="'.$urlpath.'actor/'.urlencode(strtolower($e)).'" class="">'.$e.'</a>'.$coma;
}
$crow['Reparto']?> </p>
    </li>
    <li>
        <span>G&Eacute;NERO</span>
        <p>
<?
$eachurl 
explode('<li class="lcc">'$fj_video_list);
$arraygeneros explode(','str_replace('.','',$crow['Generos']) );
$eachurl_total count($arraygeneros);
$totalxd='0';
foreach(
$arraygeneros as $e){
$totalxd++;
if(
$eachurl_total==$totalxd){$coma='.';}else{$coma=', ';}
echo 
'<a href="'.$urlpath.'genero/'.urlencode(strtolower($e)).'" class="tag">'.$e.'</a>'.$coma;
}
$crow['Generos']?></p>
    </li>
    <li>
        <span>SINOPSIS</span>
        <p><?=$crow['Sipnosis']?></p>
    </li>
</ul>
</div>
<div id="info-2" style="overflow:auto; height:20em;">
if($extension='si'){$urlepi=$urlpath.'ver/'.$crow['Url'].'-'.urlencode($growsx['NumEpisodio']).'.html';}else{$urlepi=$urlpath.$crow['Url'].'/'.$growsx['NumEpisodio'].'/';}
?> 
    <? if($crow['Estado']==){?>
    <b>Pr&oacute;ximo episodio:</b>
    <?
$lastepisode 
= @mysql_query("SELECT NumEpisodio, IF(NumEpisodio REGEXP '^[[:alpha:]]',NumEpisodio,LPAD(FORMAT(NumEpisodio,4),10,'0')) AS scene_sort FROM $SQL_Base.episodios_anime Where CodSerie='".$crow['Codigo']."' ORDER BY scene_sort DESC LIMIT 1;",$conwb)   or die(mysql_error());
$lastepisode=@mysql_result($lastepisode,0,'NumEpisodio');
for(
$i=$lastepisode+1;$i<$lastepisode+2;$i++){?>
<br><a href="/">Cap&iacute;tulo <?=$i?><?php         
$sql
=mysql_query("SELECT * FROM episodios_anime WHERE CodSerie = '".$crow['Codigo']."' ORDER BY CodEpisodio DESC LIMIT 1");
while(
$res=mysql_fetch_assoc($sql)) {
$fecha_inicial=$res['Fecha']; 
}
$dias_a_sumar=9
$tiempo=strtotime($fecha_inicial); 
$sumar=$dias_a_sumar*86400
echo 
date("j/n/Y"$tiempo+$sumar); 
?></a>
<br>
<? }// fin del for()?>
<? 
?>
<!-- FIN PROXIMOS EPISODIOS -->
<p class="column-left">Lista de Cap&iacute;tulos</p>
     
<p class="column-right">Visto</p>
<?
    
    $queryepisodiosx 
= @mysql_query("SELECT Nombre,Fuente,NumEpisodio,CodEpisodio,hits, IF(NumEpisodio REGEXP '^[[:alpha:]]',NumEpisodio,LPAD(FORMAT(NumEpisodio,4),10,'0')) AS scene_sort FROM $SQL_Base.episodios_anime Where CodSerie='".$crow['Codigo']."' ORDER BY scene_sort DESC;",$conwb)   or die(mysql_error());

    while (
$growsx = @mysql_fetch_array($queryepisodiosx)){    
?>
<?
if($extension='si'){$urlepi=$urlpath.'ver/'.$crow['Url'].'-'.urlencode($growsx['NumEpisodio']).'';}else{$urlepi=$urlpath.$crow['Url'].'/'.$growsx['NumEpisodio'].'/';}
?>
<ul class="movie-info">
 <li><?=$editbotton?>
  <p class="column-left">
  <a href="<?=$urlepi?>">V. <?=$growsx['NumEpisodio']?>
   <? if($growsx['Nombre']=='' && $growsx['Nombre']!==NULL){echo 'de '.ucwords($crow['Nombre']);}else{echo ': '.$growsx['Nombre'];}?>
  </p>
  <p class="column-right">Visto: <?=$growsx['hits']?>
  </p>
  </a>
 </li>
</ul>
<?
}

if(@
mysql_num_rows($queryepisodiosx)==0){
?>

<li>A&uacute;n no hay cap&iacute;tulos. Regresa m&aacute;s tarde.</li>
<?
}
?> 
</div>
<div id="info-3" style="overflow:auto; height:20em;">
<? 
    $alias
=$_POST['alias']; 
    
$comentario=$_POST['comentario']; 
     
    echo 
'<span style="margin-left: 5px; font-weight: bold;">'.$alias.'</span>'
    echo 
'<br>'
    echo 
'<span style="margin-left: 10px;">'.$comentario.'</span>'
?>
<span style="margin-left: 5px; font-weight: bold;"><?=$comen['Usuario']?></span></p>

<span style="margin-left: 10px;">Todo esto ser&iacute;a el comentario .</span></p>
<br><br>
</div>
<div id="info-4" style="overflow:auto; height:20em;">

<form id="comentario" name="comentario" action="" method="post">
<input id="alias" name="alias" value="" type="text" placeholder="Nombre..." class="nombre" />
<br />
<textarea style="margin-left:5px;" name="comentario" id="comentario" placeholder="Escribe tu comentario..." class="nombre"></textarea><br />
<input type="submit" name="Submit" value="Enviar" class="nombre">
</form>
<? 
    
    $alias
=$_POST['alias']; 
    
$comentario=$_POST['comentario']; 
     
    
$sql "INSERT INTO comentarios (id, alias, comentario) values ('', '$alias', '$comentario')"
    
$con = @mysql_connect($SQL_Host,$SQL_User,$SQL_Pass);
    
$result=mysql_query($sql$con); 
    if (!
$result){ 
        echo 
"ERROR: No se pudo guardar la informaci&oacute;n, contacte al administrador."
        echo 
"<br>".mysql_errno($enlace) . ": " mysql_error($enlace) . "\n"
    }else{ 
        echo 
"<b>Informaci&oacute;n guardada correctamente.</b>"
    }
?>

</div></div>
<!-- </ul>
<div id="capload"><aside></aside></div>
 <div id="paginas"></div> 
</section> <hr class="cap" /> -->
<!--<div class="title pt">Comentarios en Facebook (<div class="fb-comments-count" data-href="<?=$urlpath?><?=$crow['Url']?>"></div>)</div> 
<div class="fb-comments" data-href="<?=$urlpath?><?=$crow['Url']?>" data-num-posts="5" data-width="764"></div> -->
<!-- </section>  </div></div> -->

<?
}
if(
mysql_num_rows($serieinfo)==0){
header("Location: ".$urlpath."?ref=404");
}
?><div class="float-separator"></div></div>
<div style:"margin-top: 30em;"></div>
<?
$idseries 
$growsx['id'];
$conwbx = @mysql_query("UPDATE $SQL_Base.series_anime SET views = views + 1 WHERE id='$idseries'");
include(
'subfooter.php');
include(
'footer.php');
?>
el problema que tengo es que ingresa los datos de los comentarios en blanco aquí podéis hecharle un vistazo
[URL="http://todohd.esy.es/Prueba/1000-maneras-de-morder-el-polvo"]http://todohd.esy.es/Prueba/1000-maneras-de-morder-el-polvo[/URL]
haber si alguien me puede hecharle un cable, porque ya no sé como probarlo, después de casi 3 días intentando poner los tabs y que funcionase.
Desde ya muchas gracias y saludos a todos.
  #2 (permalink)  
Antiguo 11/07/2015, 05:29
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Cita:
Iniciado por manuelatienza Ver Mensaje
$sql = "INSERT INTO comentarios (id, alias, comentario) values (' ', '$alias', '$comentario')";
¿El ID por qué lo introduces como vació con ' '? ¿Es autoincrement en la base de datos?
  #3 (permalink)  
Antiguo 11/07/2015, 05:42
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Si es autoincrement, pero no creo que ese sea el problema.
Y otra cosa para que muestre todos los comentarios?
  #4 (permalink)  
Antiguo 11/07/2015, 05:48
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Puede estar ahí el problema, porque tienes un campo autoincremental, pero luego ahí lo estás insertando como vacío.

Código:
$sql = "INSERT INTO comentarios (alias, comentario) values ('$alias', '$comentario')";
No tienes que hacer INSERT de un campo incremental, debes especificar únicamente los campos que vayan a tomar un valor desde el formulario.

Prueba a hacerlo como te he puesto en la cita, creo que así debería insertarte bien el registro del textarea.

Para que muestre todo los comentarios deberas realizar una consulta de la tabla correspondiente a comentarios, y luego darle el formato de salida que quieras con HTML.

Otra cosa..¿no usas CSS?
  #5 (permalink)  
Antiguo 11/07/2015, 07:08
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Ok, ahora lo voy a probar, de momento no le voy a dar CSS hasta que no me salga bien, así lo he hecho hasta ahora, primero el código PHP y después el CSS. Porque darle el CSS cuando no me muestra los datos.
Saludos y gracias.

Editado: Hay algo que no está buen, pero no lo veo. Me sigue añadiendo los campos en blanco.

Última edición por manuelatienza; 11/07/2015 a las 08:00
  #6 (permalink)  
Antiguo 11/07/2015, 08:07
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Cita:
<form id="comentario" name="comentario" action="" method="post">
<input id="alias" name="alias" value="" type="text" placeholder="Nombre..." class="nombre" />
<br />
<textarea style="margin-left:5px;" name="comentario" id="comentario" placeholder="Escribe tu comentario..." class="nombre"></textarea><br />
<input type="submit" name="Submit" value="Enviar" class="nombre">
</form>
¿Por qué tienes el mismo name en el FORM que en el TEXTAREA? Prueba a quitar name="comentario" de la etiqueta FORM, a ver sí así se resuelve.
  #7 (permalink)  
Antiguo 11/07/2015, 08:21
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

He cambiado el id y name a comentarios y me sigue apareciendo "Información guardada correctamente."
Yo creó q por hay está el error, me explicó si pongo el código PHP encima del Formulario me imprime esto "No se pudo guardar la información, contacte al administrador."
  #8 (permalink)  
Antiguo 11/07/2015, 08:30
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Sólo habia que cambiar el nombre en el NAME del FORM, prueba otra cosa ahora, haz un echo $comentario después del INSERT, que quede algo así:

Cita:
$alias=$_POST['alias'];
$comentario=$_POST['comentario'];

$sql = "INSERT INTO comentarios (id, alias, comentario) values ('', '$alias', '$comentario')";
$con = @mysql_connect($SQL_Host,$SQL_User,$SQL_Pass);
$result=mysql_query($sql, $con);
if (!$result){
echo $comentario;
echo "ERROR: No se pudo guardar la informaci&oacute;n, contacte al administrador.";
echo "<br>".mysql_errno($enlace) . ": " . mysql_error($enlace) . "\n";
}else{
echo "<b>Informaci&oacute;n guardada correctamente.</b>";
}
Así podrás ver si se está recogiendo lo que escribes en comentarios.
  #9 (permalink)  
Antiguo 11/07/2015, 08:45
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Me sigue diciendo lo mismo.


Editado: Perdona me acabó de acordar yo tengo los input en hidden y los del formulario tienen un class para que sea visible eso tendrá algo que ver?

Última edición por manuelatienza; 11/07/2015 a las 08:50
  #10 (permalink)  
Antiguo 11/07/2015, 08:51
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Si no te muestra nada el echo $comentario es que no está recogiendo nada desde el TEXTAREA..no veo el problema ahora mismo..¿Te sigue guardando los datos vacíos en la base de datos?
  #11 (permalink)  
Antiguo 11/07/2015, 08:57
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Si cada ves que pulsas el botón Comenta debajo del formulario sale la dichosa frase, y si el código PHP lo pongo encima del formulario me da error.
Y por más q busco por internet y por la web no encuentro cual es el fallo. Supongo q preguntando en el mismo post de donde encontré el código supongo que podrán darme una posible salida.

Editado: lo saqué de aquí [URL="http://www.forosdelweb.com/f18/seccion-comentarios-con-php-mysql-1110587/"]http://www.forosdelweb.com/f18/seccion-comentarios-con-php-mysql-1110587/[/URL]
  #12 (permalink)  
Antiguo 11/07/2015, 09:05
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Prueba a preguntar al propietario, porque yo ahora mismo no sé donde está el fallo..siento no poder ayudarte más.

Un saludo.
  #13 (permalink)  
Antiguo 11/07/2015, 09:22
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Ya le he preguntado ahora sólo falta esperar y seguir buscando el fallo.
De todas maneras gracias.
  #14 (permalink)  
Antiguo 11/07/2015, 13:56
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: Inserta registros en blanco en mysql

hola que tal, buen día, vi tu mensaje por privado, mira sinceramente no puedo por ahora leer toooodo lo que se ha puesto en el post, me tomaria bastante tiempo, pero lo que te comenta xPHPerox es muy considerable, pues creo también que por ahí va el detalle, te explico un poco.

Cuando php te informa "información guardada correctamente" (nota que es una leyenda que tu mismo estableces) básicamente se refiere a que no hubo problemas en la ejecución de la instrucción de PHP, independientemente si la "información" es valida o no para tus propósitos.

Hago un paréntesis aquí, xPHPerox te comenta que en el FORM tienes un detalle con los nombres, si estas mandando por POST "comentario" y el form se llama "comentario" y un elemento como un input o un textarea se llama también "comentario", la logica me dice que tendras una incongruencia y no saldrá bien, hay que revisar bien eso como xPHPerox te sugirió, prueba nombrando al form "form" ó "captura" o como tú gustes, dejando los elementos (inputs, textareas, etc.) con los nombres y "id" iguales (o con los nombres que gustes).

Cierro aquí el paréntesis.

Pienso que el problema muy seguramente ha de estar en el momento de "enviar" la información y por lo tanto creo que la forma más fácil para "testear" es crear un nuevo archivo .php digamos que prueba1.php y en este tendrías unicamente lo siguiente:

Código:
<?PHP

$alias=$_POST['alias'];  
$comentario=$_POST['comentario'];

echo $alias.'<br>'.$comentario;

?>
Después, el formulario donde capturas el formulario dirigelo por POST a prueba1.php, asi estaremos descartando que el detalle sea por los nombres del FORM o algo similar, si sí ves la información, entonces tendríamos que checar el código de donde intentas guardar la información, en el post que yo te respondí hace tiempo te hablaba sobre hacer más archivos independientes que te permitieran usar segmentos (1 para capturar, otro para guardar, etc.) pero veo mucho código en lo que mandas, si llegaras a ver información en prueba1.php quiere decir que se está mandando bien la información y por lo tanto la estas perdiendo más tarde, quizás estas reemplazando información o borrando de alguna forma la "memoria", no sé, habría que revisar como te digo, pero sí lo primero que yo haría seria lo que te dije.

Comenta a ver como salen tus pruebas, saludos.
  #15 (permalink)  
Antiguo 12/07/2015, 04:44
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Te comentó yo no soy el otro, yo estuve buscando como hacer un sistema de comentario y vi ese post, lo vi sencillo y fácil y resulta que es más complicado de lo que parece. Eso es una parte después toca calentarse la cabeza en como relacionar cada comentario con el post.
Bueno que ne pierdo.
He creado el archivo Comentario.php, cuando ingreso los datos me lleva a esa página y me imprime lo que he puesto en el formulario.
Pero creó que en este código falla algo.
[PHP]<?
include('config/config.php');
$alias=$_POST['alias'];
$comentario=$_POST['comentario'];

$sql = "INSERT INTO comentarios (id, alias, comentario) values ('', '$alias', '$comentario')";
$result=mysql_query($sql, $link);
if (!$result){
echo "ERROR: No se pudo guardar la informaci&oacute;n, contacte al administrador.";
echo "<br>".mysql_errno($enlace) . ": " . mysql_error($enlace) . "\n";
}else{
echo "<b>Informaci&oacute;n guardada correctamente.</b>";
}
?>[PHP]
Porque si lo pongo encima del formulario me dice que contacte con el administrador y si lo pongo debajo me dice que se ha guardado.
Saludos y gracias por contestar.
P.D.: He cambiado el nombre del form y del id a comenta.
  #16 (permalink)  
Antiguo 12/07/2015, 07:26
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Cita:
$sql = "INSERT INTO comentarios (id, alias, comentario) values ('', '$alias', '$comentario')";
Si id es autoincremental debes quitarlo del Insert..no puedes hacer insert de un campo autoincremental.

Debes cambiar esa sentencia y dejarla así:

$sql = "INSERT INTO comentarios ( alias, comentario) values ('$alias', '$comentario')";

Haces insert únicamente de los campos a los que quieras dar valor, el id toma ya valor sólo al ser autoincremental.

Haz la prueba y comentanos.
  #17 (permalink)  
Antiguo 12/07/2015, 12:48
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Y para añadir la id del post?
La base de datos sería id, CodSerie, alias y comentario
Gracias ya estoy haciendo las pruebas
  #18 (permalink)  
Antiguo 12/07/2015, 13:47
 
Fecha de Ingreso: julio-2015
Mensajes: 67
Antigüedad: 8 años, 9 meses
Puntos: 5
Respuesta: Inserta registros en blanco en mysql

Si el ID del post es un tipo de dato autoincremental, no hace falta que lo insertes, ya toma valor solo.
  #19 (permalink)  
Antiguo 12/07/2015, 13:56
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

He hecho pruebas y no lo inserta en la base de datos y sobre el id del post para vincular los comentarios con el post, tampoco lo coge.
Esto de los comentarios me supera, sabéis si hay algún manual de como añadirlo los más fácil y simple posible?
Gracias y saludos.
  #20 (permalink)  
Antiguo 13/07/2015, 19:30
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
De acuerdo Respuesta: Inserta registros en blanco en mysql

Hola, disculpa la tardanza, creo que tendría que revisar todo el código para ver que está pasando, seria bueno que nos pasaras captura de pantalla de tu base de datos, supongo que usas phpmyadmin, me gustaría ver la estructura y la lista de registros (cuando dices que no grava, me interesa saber si no agrega ningún registro o si bien agrega un registro pero con cambios faltantes).

Segundo. comenta que archivo usas y que código tienes en él. ejemplo:

config/config.php

Código PHP:
//código del archivo
//etc 
www/comentarios.php

Código PHP:
//código del archivo
//etc 
si no es muy extenso (espero) creo que eso podría ayudar para darnos una mejor idea y hablar un poco más de lo mismo tanto tú como los que intentaremos ayudarte.

Saludos.

Pd. (prueba alternativa) si hiciste la prueba que te comentaba sobre mandar los datos del form a otro archivo "demo.php", quizás ahora podrías agregar a esa prueba, tratar de agregar los datos a la base de datos, ej:

Código PHP:

<? 

include('config/config.php'); //supongo que aquí están los datos de conexión y $link, revisa que esté bien la ruta, y también la sintaxis, según recuerdo es sin paréntesis, no se si de alguna forma influye.

$alias=$_POST['alias'];
$comentario=$_POST['comentario']; 

$sql "INSERT INTO comentarios (id, alias, comentario) values ('', '$alias', '$comentario')"
$result=mysql_query($sql$link); 
if (!
$result){ 
echo 
"ERROR: No se pudo guardar la informaci&oacute;n, contacte al administrador."
echo 
"<br>".mysql_errno($enlace) . ": " mysql_error($enlace) . "\n"
}else{ 
echo 
"<b>Informaci&oacute;n guardada correctamente.</b>"

?>
ya después aquí nos comentas que te sale también en esta prueba, saludos.
  #21 (permalink)  
Antiguo 13/07/2015, 19:50
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: Inserta registros en blanco en mysql

Observaciones adicionales a tu primer código:

#1
quita error_reporting(0); en la linea 2, eso te ayudará a saber si estas teniendo algún problema en tu código.

#2
linea 4, el include es sin paréntesis, ejemplo: include 'ruta/archivo';

#3
linea 205, tu form tiene como action el mismo archivo como ejecutador del código (arction=""), yo normalmente no lo uso así (ya es a gustos creo), pero sinceramente creo que debes evaluar muy bien en el código php si está siendo enviado por el form "id=comentario" para que se ejecute el código, sino, obviamente te dará error (pues si se ejecuta de entrada obviamente aún no existen datos a procesar, sino hasta que se envia el form OJO aqui), sospecho que el problema esta en relación a esto y aquí es donde debes enfocarte, te sugiero un archivo externo para que tome la acción respectiva con los datos que envies, y ya después puedes regresar al usuario después de procesar los datos a la URL previa en la que estaba, ejemplo:

info.php

Código:
//mucho código
//código de formulario
if ($mensaje!=""){
	//quiere decir que el usuario viene de guardar_comentario.php
	//tambien puedes usar sesiones, seria lo mejor
	echo $mensaje
}
{formulario envia a guardar_comentario.php}
guardar_comentario.php

Código:
//código de conexión
//código para recuperar los datos $_POST
//código para SQL
//demás código para guardar
if ($result){
$mensaje="guardado OK";
}else{
$mensaje="error al guardar";
}
$goback=$_SERVER["HTTP_REFERER"];
echo '<script language="javascript">document.location="'.$goback.'"</script>';

NOTA: te pongo incompleto el código, pero solo trato de darte la idea.

$goback puede ser incluso una URL especifica que tú indiques, previamente si deseas en info.php puedes guardar las variantes de tus filtros en variables de sesión, trabajar con variables de sesión tienen sus PROS, aun que es un poquito diferente, no sé si tienes experiencia con ellas pero son muy útiles.

Última edición por Mcruzmx; 13/07/2015 a las 19:51 Razón: agregar anotaciones
  #22 (permalink)  
Antiguo 14/07/2015, 09:34
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Mi archivo config.php
Código PHP:
<?php
$extension
='si';
$imgremota='si';

$fj_repro_width='350';
$fj_repro_height='300';

if(
$_SERVER['HTTP_HOST']=='localhost'){
$SQL_Host="localhost";
$SQL_Base="base datos";
$SQL_User="usuario";
$SQL_Pass="pass";
}else{
$SQL_Host="localhost";
$SQL_Base="base datos";
$SQL_User="usuario";
$SQL_Pass="pass";
}
//wer43f@gaFX
if($_SERVER['HTTP_HOST']=='localhost' or $_SERVER['HTTP_HOST']==localhost'){
// $fj_face_url='
https://www.facebook.com/';
// $fj_twitter_url='http://www.twitter.com/';
$titulito='Peliculas en HD';
$urlpath='http://localhost/';
$urlpathportadas='http://localhost/animes_image/';
$imgremota='no';
$logopath='logo';
}else{
//$fj_face_url='https://www.facebook.com/';
//$fj_twitter_url='http://www.twitter.com/';
$titulito='Peliculas en HD';
$urlpath='http://localhost/';
$urlpath_static_portadas=$urlpath.'animes_image/';
$logopath='logo';
}

if(
$_SERVER['HTTP_HOST']!=='localhost'){

$banner['300x250_1']='';

}
?>
  #23 (permalink)  
Antiguo 14/07/2015, 09:38
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Mi archivo Comentario.php
Código PHP:
<?

include('config/config.php'); //supongo que aquí están los datos de conexión y $link, revisa que esté bien la ruta, y también la sintaxis, según recuerdo es sin paréntesis, no se si de alguna forma influye. 

$alias=$_POST['alias']; 
$comentario=$_POST['comentario'];  

$sql "INSERT INTO comentarios (alias, comentario) values ('$alias', '$comentario')";  
$result=mysql_query($sql$link);  
if (!
$result){  
echo 
"ERROR: No se pudo guardar la informaci&oacute;n, contacte al administrador.";  
echo 
"<br>".mysql_errno($enlace) . ": " mysql_error($enlace) . "\n";  
}else{  

echo 
"<b>Informaci&oacute;n guardada correctamente.</b>";  
}  
?>
Ahora me da error en la línea 15 y 18
  #24 (permalink)  
Antiguo 14/07/2015, 09:53
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Primero daros las gracias por mis complicaciones, segundo los scripts venían con el include (así), antes intenté mandarlo a otro archivo pero no sé como vincular los comentarios con el post.
En la base de datos comentarios tiene id, CodSerie, alias y comentario. La id es autoincrement, CodSerie sería para añadir el código de la serie.
Intentaré haber si puedo hacerlo como me comentas, pero lo dudó.
Gracias
  #25 (permalink)  
Antiguo 15/07/2015, 09:04
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Si decido añadir el formulario.php fuera del info.php, el enlace sería así?
<a href="Comentario.php?cod="></a>
Se me ha resbalado el móvil de las manos y se ha puesto en solucionado.
  #26 (permalink)  
Antiguo 20/07/2015, 13:23
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: Inserta registros en blanco en mysql

hola que tal disculpa la tardanza, a veces no me llegan las notificaciones, mira, en tu respuesta donde pones el código (el cual corregí el include), pones "include ... config.php" y nomás, y en otra respuesta nos pones que hay en ese archivo, si notas en ninguna parte hay una sección en este archivo o en config que haga una conexión a la base de datos, sospecho que por eso te sale el error en la linea 15 (que corresponde según yo al final del código) intenta ahora así:

<?
include 'config/config.php'; //supongo que aquí están los datos de conexión y $link, revisa que esté bien la ruta, y también la sintaxis, según recuerdo es sin paréntesis, no se si de alguna forma influye.

$alias=$_POST['alias'];
$comentario=$_POST['comentario'];

$sql = "INSERT INTO comentarios (alias, comentario) values ('$alias', '$comentario')";
$result=mysql_query($sql, $link);
if (!$result){
echo "ERROR: No se pudo guardar la informaci&oacute;n, contacte al administrador.";
echo "<br>".mysql_errno($enlace) . ": " . mysql_error($enlace) . "\n";
}else{
echo "<b>Informaci&oacute;n guardada correctamente.</b>";
}
?>

Por otra parte, te comentaban que los cambios autoincrement no los debes incluir en el insert, personalmente yo siempre lo hago, de forma que quedaria así

INSERT INTO tabla (idautoincrement, campo2, campoN) VALUES ('', 'valor2', '$campoN');

prueba con esos cambios a ver que sucede.

Sobre tu otra respuesta de que no sabias enlazar el formulario y que pones una etiqueta <a>, sinceramente no entendí tu consulta, puedes reformularla? gracias.
  #27 (permalink)  
Antiguo 23/07/2015, 09:05
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Buenas tardes ahora mismo no tengo mucho tiempo de entrar en internet para probar, de todas maneras cuando tenga un hueco lo pruebo.
También he estado liado con el tema de registro y login, que ya lo tengo hecho, sólo me falta añadir el enlace que me dirija al perfil del usuario.
1
Cita:
include 'config/config.php'; //supongo que aquí están los datos de conexión y $link, revisa que esté bien la ruta, y también la sintaxis, según recuerdo es sin paréntesis, no se si de alguna forma influye.
En todos los archivos están así include("config/config.php") y funciona bien. Hay está la conexión y en otros archivos pone $conwb para conectarse a la base de datos. No es como lo he visto en varios vídeo tutoriales, pero supongo que cada programador tendrá su forma.
Cita:
INSERT INTO tabla (idautoincrement, campo2, campoN) VALUES ('', 'valor2', '$campoN');
Así es como lo tenía pero dijeron que no lo pusiera, o yo lo entendí mal.
Cita:
Sobre tu otra respuesta de que no sabias enlazar el formulario y que pones una etiqueta <a>, sinceramente no entendí tu consulta, puedes reformularla? gracias.
Es para crear el archivo comentario.php y vincular el archivo info.php al archivo comentario.php, que no se como vincularlo.
Gracias por vuestras ayudas.
  #28 (permalink)  
Antiguo 23/07/2015, 09:11
Avatar de xfxstudios  
Fecha de Ingreso: junio-2015
Ubicación: Valencia - Venezuela
Mensajes: 2.448
Antigüedad: 8 años, 9 meses
Puntos: 263
Respuesta: Inserta registros en blanco en mysql

en el insert no es necesario que menciones el id si este es autoincrement:

Código PHP:
Ver original
  1. "INSERT INTO tabla (campo1, campo2, campo3) VALUES ('valor1 , 'valor2' , 'valor3')"
__________________
[email protected]
HITCEL
  #29 (permalink)  
Antiguo 23/07/2015, 10:23
Avatar de Mcruzmx  
Fecha de Ingreso: abril-2006
Mensajes: 357
Antigüedad: 18 años
Puntos: 9
Respuesta: Inserta registros en blanco en mysql

Hola, todo depende a que te refieras con vincular, te sugiero tratar de explicarnos mejor, saludos.
  #30 (permalink)  
Antiguo 23/07/2015, 16:55
 
Fecha de Ingreso: julio-2015
Ubicación: Algeciras
Mensajes: 21
Antigüedad: 8 años, 9 meses
Puntos: 0
Respuesta: Inserta registros en blanco en mysql

Cita:
Iniciado por Mcruzmx Ver Mensaje
Hola, todo depende a que te refieras con vincular, te sugiero tratar de explicarnos mejor, saludos.
Me refiero a crear el archivo comentario.php y que se muestren los comentarios que pertenezca a ese post.
He intentado con $_GET pero no se como hacer que el archivo comentario.php muestre los comentarios perteneciente a ese post.
No se si esta más claro o lo estoy liando más.

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 08:09.