Foros del Web » Programando para Internet » PHP »

problema para insertar registro en base de datos

Estas en el tema de problema para insertar registro en base de datos en el foro de PHP en Foros del Web. buen dia colegas, me pueden ayudar con este problema que tengo. no me guarda la dato"r_text_index" en la base de datos la tengo en el ...
  #1 (permalink)  
Antiguo 13/08/2012, 15:43
Avatar de hulray  
Fecha de Ingreso: septiembre-2006
Mensajes: 630
Antigüedad: 17 años, 7 meses
Puntos: 3
problema para insertar registro en base de datos

buen dia colegas, me pueden ayudar con este problema que tengo.

no me guarda la dato"r_text_index" en la base de datos la tengo en el nonbre de "text_index". Todos los demas me guardan bien...


textoindex1.php
Código PHP:
<?
include('../config.php'); //incluimos el config.php que contiene los datos de la conexión a la db

$r_id_index " Ingresar";

if((
$r_id_index == ' Ingresar') )
{

    
$sql "SELECT * from users where nick='".$_SESSION["usuario"]."'";
    
    
$rs=mysql_query($sql);
    while(
$row=mysql_fetch_array($rs))
    {
    
$r_id       $row["id"];
    
$r_nombre   $row["nombre"];
    
$r_pass     $row["pass"];
    
$r_usuario  $row["nick"];
    
$r_mail     $row["email"];
    
$r_cargo    $row["rollo"];
    
$r_fecha    $row["fecha"];
    
$r_level     $row["level"];
    
$r_active    $row["active"];
     }

            
$sql2="select * from textindex";
            
$rs2=mysql_query($sql2);
            while(
$row2=mysql_fetch_array($rs2))
            {
            
//$r_id_index       = $row2["id_index"];
            
$r_fecha_index    $row2["fecha_index"];
            
$r_hora_index     $row2["hora_index"];
            
$r_text_index     $row2["text_index"];
             }


include_once (
"textoindex2.php");





if((
$r_text_index != ' ') )
{

mysql_query("INSERT INTO textindex (fecha_index,hora_index,nombre,nick,text_index) values ('$r_fecha_index_actual','$r_hora_index','$r_nombre','$r_usuario','$r_text_index') ");
echo 
'Usuario registrado con éxito';
}
}

?>
textoindex2.php
Código PHP:
<?php
include_once ("../menu.php");


$r_fecha_index    date(Ymd);
    
$r_fecha_index_aa    substr($r_fecha_index,0,4);
    
$r_fecha_index_mm    substr($r_fecha_index,4,2);
    
$r_fecha_index_dd    substr($r_fecha_index,6,2);
    
$r_fecha_index_actual $r_fecha_index_dd.$r_fecha_index_mm.$r_fecha_index_aa;

    
$r_hora_index=(date("H:i"));



?>
     </ul>
    </div>
   
    <div class="appsBody">
      <div class="appsBody">
        <p>&nbsp;</p>
      </div>
    </div>
</div>
  
  
  <div class="appsBody">
  <div class="topwrap_acceso"></div>
  <div class="wrapper">
    <p><?
echo 'Bienvenido ';
echo 
$r_nombre

?>.
    Agregue una noticia en la pagina index. 
   
   
  <form method="post" target="_parent" action="textoindex1.php?id_index=<? echo $r_id_index?>">

   <?
   
   
echo "<input type =\"text\" name =\"r_id_index\" size=8 maxlength = 8 value=\"$r_id_index\">";
   echo 
"<input type =\"text\" name =\"r_fecha_index\" size=8 maxlength = 8 value=\"$r_fecha_index_actual\">";
   echo 
"<input type =\"text\" name =\"r_hora_index\" size=8 maxlength = 8 value=\"$r_hora_index\">";
   echo 
"<input type =\"text\" name =\"r_nombre\" size=8 maxlength = 8 value=\"$r_nombre\">";
   echo 
"<input type =\"text\" name =\"r_usuario\" size=8 maxlength = 8 value=\"$r_usuario\">";
  
 echo 
"<textarea name=\"r_text_index\" id=\"r_text_index\"></textarea><br>";
  
  echo   
"<input type=\"submit\" name=\"submit\" value=\"Agregar\">";
?>

      </label>
      <p>  
</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
      <p>&nbsp;</p>
    </form>
  #2 (permalink)  
Antiguo 13/08/2012, 16:55
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: problema para insertar registro en base de datos

Hola,

Me parese que en tu condicional tienes un spacio y lo que creo que testeas por =! ""
Código PHP:
Ver original
  1. if(($r_text_index != '')

Ademas puedes comprobar si ubo algun error o si la table no conocida..
Código PHP:
Ver original
  1. if(($r_text_index != ' ') )
  2.     {
  3.        
  4.         mysql_query("INSERT INTO textindex (fecha_index,hora_index,nombre,nick,text_index) values ('$r_fecha_index_actual','$r_hora_index','$r_nombre','$r_usuario','$r_text_index') ");
  5.         echo mysql_error();
  6.                 echo 'Usuario registrado con éxito';
  7.     }

Revisa si por ayi va la cosa.
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com
  #3 (permalink)  
Antiguo 13/08/2012, 17:01
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: problema para insertar registro en base de datos

Hola!

Cuando preguntas si ($r_text_index != ' ') preguntas si el texto es distinto de "espacio", por lo tanto siempre estás intentando insertar el registro a no ser que ingreses un "espacio", por lo tanto se está intentando insertar cuando cargas la página por primera vez o cuando no ingresas nada

Si ingresas algun texto o cambias algo en el formulario lo envías por POST y también por GET, sin embargo nunca haces lecturas de variables POST o GET, por lo tanto sigues guardando el dato de la tabla de la base de datos (que sigue siendo nulo por la insercion que haces al principio)

Supongo que no se entiende así que hago un paso a paso:

1.- Cargas la página, al hacer esto, como $r_text_index es distinto de "espacio" inserta un registro con $r_text_index vacío.

2.- Luego escribes datos en el formulario y lo envias, estos datos son enviador por POST (y GET).

3.- El código nunca lee estos datos de POST ni GET, sin embargo vuelve a leer la base de datos e inserta los mismos campos que antes (con $r_text_index vacío)

4.- En teóría tras esto deberías tener 2 registros nuevos iguales.

Entonces debes solucionar 2 cosas

lo primero es cambiar el espacio (' ') por vacío ('')

Y luego hacer las lecturas con POST

Y como adicional, puedes borrar la variable GET ya que creo que no la necesitarás :)

Saludos!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 13/08/2012, 17:09
Avatar de utan  
Fecha de Ingreso: agosto-2012
Mensajes: 126
Antigüedad: 11 años, 8 meses
Puntos: 17
Respuesta: problema para insertar registro en base de datos

hola,

$r_text_index esta defindo previamente por un query anterior, asi que el espacio que tenia no solo era testiando si era en blanco pero si tambien era un espacio en si..

original de el ariba de la condiconal..

Código PHP:
Ver original
  1. $r_text_index     = $row2["text_index"];

ahora la condicional orginal de el

Código PHP:
Ver original
  1. if(($r_text_index != ' ') )

A eso me refiero.. por eso le pido que pase la funcion de mysql_error por si acaso no esta definido el row en la base de datos..
__________________
Mis conocimientos son limitado, pero si te puedo ayudar lo are gustoso mi chat particular, visitalo gracias http://rendezvouschat.com

Etiquetas: mysql, registro, sql, usuarios
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:26.