Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

no me guarda el valor del campo!!!! AYUDA!!!

Estas en el tema de no me guarda el valor del campo!!!! AYUDA!!! en el foro de Bases de Datos General en Foros del Web. Hola todos!!! este es mi primer post y espero conseguir la ayuda que no he conseguido en ningun otro lugar. Bueno...ai va la cosa: Tengo ...
  #1 (permalink)  
Antiguo 04/11/2003, 12:32
 
Fecha de Ingreso: noviembre-2003
Mensajes: 5
Antigüedad: 20 años, 5 meses
Puntos: 0
no me guarda el valor del campo!!!! AYUDA!!!

Hola todos!!! este es mi primer post y espero conseguir la ayuda que no he conseguido en ningun otro lugar. Bueno...ai va la cosa:

Tengo un portal en PHP-Nuke (http://blackdeath.webcindario.com ) y modifique el modulo "Your_Account" para que los usuarios puedan poner un link a una imagen (su foto), la informacion se guarda en un campo que cree en la tabla "nuke_users".

La cosa es que desde el modulo PHP no guarda el valor en el campo, por que si le adiciono un valor a ese campo en cualquier usuario desde phpMyAdmin, se muestra en el modulo.

Conclusiones: ?que tengo que hacer para guardar un valor en un campo creado en la tabla "nuke_users" ??? es problema del modulo o de la basew de datos.

NOTAS: el campo es de tipo VARCHAR (255)
PD: la base de datos esta alojada en un servidor gratuito, (eso importa??)

GRACIAS!!!!
  #2 (permalink)  
Antiguo 05/11/2003, 02:32
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
Primero bienvenido a este foro.
Segundo, quizá lo que te voy a decir es una perogrullada, pero es que no me entra otra posibilidad. Supongo que el resto de campos si se estan actualizando o guardando, con lo que te faltará es que en la instruicción insert/update (no sé que exactamente que hace ese módulo) tienes que poner que se inserte o se actualice el campo en cuestión, es decir:
1. en la instrucción insert deberías incluir el campo y el valor que corresponde: insert into nuke_users (..., campo_imagen) values (...,'$linkimagen')
2. en la instrucción update pasa lo mismo: update nuke users set ... , campo_imagen='$linkimagen' where ...

Donde $linkimagen es el valor que se le está dando al campo que te interesa.

Espero que esto te ayude, porque sin ver los fuentes no te puedo aportar más.

Un saludo.
  #3 (permalink)  
Antiguo 05/11/2003, 09:13
 
Fecha de Ingreso: noviembre-2003
Mensajes: 5
Antigüedad: 20 años, 5 meses
Puntos: 0
aki les pongo el codigo

hola...gracias por aberme dado esa respuesta, aunke sigo sin entender algunas cosillas, ya que no soy muy avanzado en MySQL. Para que veas mejor como funciona el modulo, aki te pongo la funcion "edituser" del index.php de "Your_Account"

Nota: lo que esta en azul, fue la adicion que hice para guardar el valor en el campo.

como no puedo poner el codigo entero, te puse solo la parte mas cercana. saludos!!!

-----------------------------------------------------------------------------------


echo "<tr><td bgcolor='$bgcolor2'>"._FORUMSDATE.":<br>"._FORUMSD ATEMSG."</td><td bgcolor='$bgcolor3'>";
echo "<input size='15' maxlength='14' type=\"text\" name=\"user_dateformat\" value=\"$userinfo[user_dateformat]\">";
echo "</td></tr>";

echo "<tr><td bgcolor='$bgcolor2'>"._SIGNATURE.":<br>"._OPTIONAL ."</td>"
."<td bgcolor='$bgcolor3'><textarea wrap=\"virtual\" cols=\"50\" rows=\"5\" name=\"user_sig\">$userinfo[user_sig]</textarea><br>"._255CHARMAX."</td></tr>"
."<tr><td bgcolor='$bgcolor2'>"._USERPHOTO.":<br>"._OPTIONAL ."</td>"
."<td bgcolor='$bgcolor3'><input type=\"text\" name=\"user_photo\" value=\"$userinfo[user_photo]\" size=\"50\" maxlength=\"255\"></td></tr>"

."<tr><td bgcolor='$bgcolor2'>"._EXTRAINFO.":<br>"._OPTIONAL ."</td>"
."<td bgcolor='$bgcolor3'><textarea wrap=\"virtual\" cols=\"50\" rows=\"5\" name=\"bio\">$userinfo[bio]</textarea><br>"._CANKNOWABOUT."</td></tr>"
."<tr><td bgcolor='$bgcolor2'>"._PASSWORD.":</td><br>"
."<td bgcolor='$bgcolor3'><input type=\"password\" name=\"user_password\" size=\"22\" maxlength=\"20\">&nbsp;&nbsp;&nbsp;<input type=\"password\" name=\"vpass\" size=\"22\" maxlength=\"20\"><br>"._TYPENEWPASSWORD."</td></tr>"
."<tr><td bgcolor='$bgcolor3' colspan='2' align='center'>"
."<input type=\"hidden\" name=\"username\" value=\"$userinfo[username]\">"
."<input type=\"hidden\" name=\"user_id\" value=\"$userinfo[user_id]\">"
."<input type=\"hidden\" name=\"op\" value=\"saveuser\">"
."<input type=\"submit\" value=\""._SAVECHANGES."\">"
."</form></td></tr></table>";
CloseTable();
include("footer.php");
} else {
main($user);
}
}

function saveuser($realname, $user_email, $femail, $user_website, $user_avatar, $user_icq, $user_aim, $user_yim, $user_msnm, $user_from, $user_occ, $user_interests, $newsletter, $user_viewemail, $user_allow_viewonline, $user_notify, $user_notify_pm, $user_popup_pm, $user_attachsig, $user_allowbbcode, $user_allowhtml, $user_allowsmile, $user_timezone, $user_dateformat, $user_sig, $bio, $user_password, $vpass, $username, $user_id) {
global $user, $cookie, $userinfo, $EditedMessage, $user_prefix, $db, $module_name, $minpass;
cookiedecode($user);
$check = $cookie[1];
$check2 = $cookie[2];
$sql = "SELECT user_id, user_password FROM ".$user_prefix."_users WHERE username='$check'";
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$vuid = $row[user_id];
$ccpass = $row[user_password];
$user_sig = htmlspecialchars($user_sig);
$user_email = check_html($user_email, nohtml);
$femail = check_html($femail, nohtml);
$user_website = check_html($user_website, nohtml);
$bio = check_html($bio, nohtml);
$user_avatar = check_html($user_avatar, nohtml);
$user_icq = check_html($user_icq, nohtml);
$user_aim = check_html($user_aim, nohtml);
$user_yim = check_html($user_yim, nohtml);
$user_msnm = check_html($user_msnm, nohtml);
$user_occ = check_html($user_occ, nohtml);
$user_from = check_html($user_from, nohtml);
$user_interests = check_html($user_interests, nohtml);
$realname = check_html($realname, nohtml);
$user_avatar = "gallery/$user_avatar";
if (($user_id == $vuid) AND ($check2 == $ccpass)) {
if (!eregi("http://", $user_website)) {
$user_website = "http://$user_website";
}
if ((isset($user_password)) && ("$user_password" != "$vpass")) {
echo "<center>"._PASSDIFFERENT."</center>";
} elseif (($user_password != "") && (strlen($user_password) < $minpass)) {
echo "<center>"._YOUPASSMUSTBE." $minpass "._CHARLONG."</center>";
} else {
if ($bio) { filter_text($bio); $bio = $EditedMessage; $bio = FixQuotes($bio); }
if ($user_password != "") {
cookiedecode($user);
$db->sql_query("LOCK TABLES ".$user_prefix."_users WRITE");
$user_password = md5($user_password);
$db->sql_query("UPDATE ".$user_prefix."_users SET name='$realname', user_email='$user_email', femail='$femail', user_website='$user_website', user_password='$user_password', bio='$bio', user_avatar='$user_avatar', user_icq='$user_icq', user_occ='$user_occ', user_from='$user_from', user_interests='$user_interests', user_sig='$user_sig', user_aim='$user_aim', user_yim='$user_yim', user_msnm='$user_msnm', newsletter='$newsletter', user_viewemail='$user_viewemail', user_allow_viewonline='$user_allow_viewonline', user_notify='$user_notify', user_notify_pm='$user_notify_pm', user_popup_pm='$user_popup_pm', user_attachsig='$user_attachsig', user_allowbbcode='$user_allowbbcode', user_allowhtml='$user_allowhtml', user_allowsmile='$user_allowsmile', user_timezone='$user_timezone', user_dateformat='$user_dateformat' WHERE user_id='$user_id'");

$sql = "SELECT user_id, username, user_password, storynum, umode, uorder, thold, noscore, ublockon, theme FROM ".$user_prefix."_users WHERE username='$username' AND user_password='$user_password'";
$result = $db->sql_query($sql);
if ($db->sql_numrows($result) == 1) {
$userinfo = $db->sql_fetchrow($result);
docookie($userinfo[user_id],$userinfo[username],$userinfo[user_password],$userinfo[storynum],$userinfo[umode],$userinfo[uorder],$userinfo[thold],$userinfo[noscore],$userinfo[ublockon],$userinfo[theme],$userinfo[commentmax]);
} else {
echo "<center>"._SOMETHINGWRONG."</center><br>";
}
$db->sql_query("UNLOCK TABLES");
} else {
$db->sql_query("UPDATE ".$user_prefix."_users SET name='$realname', user_email='$user_email', femail='$femail', user_website='$user_website', bio='$bio', user_avatar='$user_avatar', user_icq='$user_icq', user_occ='$user_occ', user_from='$user_from', user_interests='$user_interests', user_sig='$user_sig', user_aim='$user_aim', user_yim='$user_yim', user_msnm='$user_msnm', newsletter='$newsletter', user_viewemail='$user_viewemail', user_allow_viewonline='$user_allow_viewonline', user_notify='$user_notify', user_notify_pm='$user_notify_pm', user_popup_pm='$user_popup_pm', user_attachsig='$user_attachsig', user_allowbbcode='$user_allowbbcode', user_allowhtml='$user_allowhtml', user_allowsmile='$user_allowsmile', user_timezone='$user_timezone', user_dateformat='$user_dateformat' WHERE user_id='$user_id'");
}
Header("Location: modules.php?name=$module_name");
}
}
}
  #4 (permalink)  
Antiguo 06/11/2003, 02:39
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
El problema es como te dije en el anterior mensaje: pusiste el campo de pantalla para recoger el dato, pero no modificaste la instrucción que salva ese dato en la tabla correspondiente.
En este caso (por lo que has puesto), la actualización de los datos se hace en la función "saveuser". Lo que tienes que hacer es pasar como parámetro a esta función el campo que has añadido y modificar las dos instrucciones update para que lo tengan en cuenta.
La función quedaría así:
Código PHP:
function saveuser($realname$user_email$femail$user_website$user_avatar$user_icq$user_aim$user_yim$user_msnm$user_from$user_occ$user_interests$newsletter$user_viewemail$user_allow_viewonline$user_notify$user_notify_pm$user_popup_pm$user_attachsig$user_allowbbcode$user_allowhtml$user_allowsmile$user_timezone$user_dateformat$user_sig$bio$user_password$vpass$username$user_id$user_photo)
{
global 
$user$cookie$userinfo$EditedMessage$user_prefix$db$module_name$minpass;
cookiedecode($user);
$check $cookie[1];
$check2 $cookie[2];
$sql "SELECT user_id, user_password FROM ".$user_prefix."_users WHERE username='$check'";
$result $db->sql_query($sql);
$row $db->sql_fetchrow($result);
$vuid $row[user_id];
$ccpass $row[user_password];
$user_sig htmlspecialchars($user_sig);
$user_email check_html($user_emailnohtml);
$femail check_html($femailnohtml);
$user_website check_html($user_websitenohtml);
$bio check_html($bionohtml);
$user_avatar check_html($user_avatarnohtml);
$user_icq check_html($user_icqnohtml);
$user_aim check_html($user_aimnohtml);
$user_yim check_html($user_yimnohtml);
$user_msnm check_html($user_msnmnohtml);
$user_occ check_html($user_occnohtml);
$user_from check_html($user_fromnohtml);
$user_interests check_html($user_interestsnohtml);
$realname check_html($realnamenohtml);
$user_avatar "gallery/$user_avatar";
$user_photo check_html ($user_photonohtml); // AÑADIDO
if (($user_id == $vuid) AND ($check2 == $ccpass))
{
   if (!
eregi("http://"$user_website))
   {
      
$user_website "http://$user_website";
   }
   if ((isset(
$user_password)) && ("$user_password" != "$vpass"))
   {
       echo 
"<center>"._PASSDIFFERENT."</center>";
   }
   elseif ((
$user_password != "") && (strlen($user_password) < $minpass))
   {
       echo 
"<center>"._YOUPASSMUSTBE." $minpass "._CHARLONG."</center>";
   } else
   {
       if (
$bio) { filter_text($bio); $bio $EditedMessage$bio FixQuotes($bio); }
       if (
$user_password != "")
       {
           
cookiedecode($user);
           
$db->sql_query("LOCK TABLES ".$user_prefix."_users WRITE");
           
$user_password md5($user_password);
           
$db->sql_query("UPDATE ".$user_prefix."_users SET name='$realname', user_email='$user_email', femail='$femail', user_website='$user_website', user_password='$user_password', bio='$bio', user_avatar='$user_avatar', user_icq='$user_icq', user_occ='$user_occ', user_from='$user_from', user_interests='$user_interests', user_sig='$user_sig', user_aim='$user_aim', user_yim='$user_yim', user_msnm='$user_msnm', newsletter='$newsletter', user_viewemail='$user_viewemail', user_allow_viewonline='$user_allow_viewonline', user_notify='$user_notify', user_notify_pm='$user_notify_pm', user_popup_pm='$user_popup_pm', user_attachsig='$user_attachsig', user_allowbbcode='$user_allowbbcode', user_allowhtml='$user_allowhtml', user_allowsmile='$user_allowsmile', user_timezone='$user_timezone', user_dateformat='$user_dateformat', user_photo='$user_photo' WHERE user_id='$user_id'"); // MODIFICADO

           
$sql "SELECT user_id, username, user_password, storynum, umode, uorder, thold, noscore, ublockon, theme FROM ".$user_prefix."_users WHERE username='$username' AND user_password='$user_password'";
           
$result $db->sql_query($sql);
           if (
$db->sql_numrows($result) == 1)
           {
               
$userinfo $db->sql_fetchrow($result);
               
docookie($userinfo[user_id],$userinfo[username],$userinfo[user_password],$userinfo[storynum],$userinfo[umode],$userinfo[uorder],$userinfo[thold],$userinfo[noscore],$userinfo[ublockon],$userinfo[theme],$userinfo[commentmax]);
           }
           else
           {
               echo 
"<center>"._SOMETHINGWRONG."</center><br>";
           }
           
$db->sql_query("UNLOCK TABLES");
       }
       else
       {
            
$db->sql_query("UPDATE ".$user_prefix."_users SET name='$realname', user_email='$user_email', femail='$femail', user_website='$user_website', bio='$bio', user_avatar='$user_avatar', user_icq='$user_icq', user_occ='$user_occ', user_from='$user_from', user_interests='$user_interests', user_sig='$user_sig', user_aim='$user_aim', user_yim='$user_yim', user_msnm='$user_msnm', newsletter='$newsletter', user_viewemail='$user_viewemail', user_allow_viewonline='$user_allow_viewonline', user_notify='$user_notify', user_notify_pm='$user_notify_pm', user_popup_pm='$user_popup_pm', user_attachsig='$user_attachsig', user_allowbbcode='$user_allowbbcode', user_allowhtml='$user_allowhtml', user_allowsmile='$user_allowsmile', user_timezone='$user_timezone', user_dateformat='$user_dateformat', user_photo='$user_photo' WHERE user_id='$user_id'"); //MODIFICADO
       
}
       
Header("Location: modules.php?name=$module_name");
   }
}

Además tienes que modficar la tabla nuke_users para añadirle el campo user_photo que contendrá el dato que quieres
alter table nuke_users add(user_photo varchar(100))

Espero que esto te sirva.
Un saludo.
  #5 (permalink)  
Antiguo 06/11/2003, 10:35
 
Fecha de Ingreso: noviembre-2003
Mensajes: 5
Antigüedad: 20 años, 5 meses
Puntos: 0
hola!!!
MUCHISIMAS gracias por haber respuesto a mi pregunta que tan tenso me tenia. No obstante sigue sin funcionar. He hecho todo al pie de la letra como dijistes, y sin embargo, lo que pasa es que el modulo NO GUARDA ningun cambio en los campos.

Cuando lo restauro como estaba antes, si me guarda los cambios.

Que extrano verdad.??? la verdad no se pq??

sera un bug del 6.5???

un saludo
  #6 (permalink)  
Antiguo 07/11/2003, 03:36
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
¿has hecho la modificación de la tabla como te puse?
Cita:
alter table nuke_users add(user_photo varchar(100))
Si te fijas, las únicas modificaciones que hay que hacer en la función son:
1. añadir un parámetro para recoger el nuevo dato
Cita:
, $user_photo
2. pasar un filtro de limpieza sobre el nuevo campo
Cita:
$user_photo = check_html ($user_photo, nohtml); // AÑADIDO
3. modificar dos instrucciones update para añadir la actualización del nuevo campo:
Cita:
, user_photo='$user_photo'
He revisado la sintaxis y parece todo correcto, así que pienso que te falta por hacer la primera parte: añadir el campo a la tabla.

Sino, prueba a hacer las modificaciones en lugar de copiar y pegar.
Un saludo.
  #7 (permalink)  
Antiguo 07/11/2003, 09:34
 
Fecha de Ingreso: noviembre-2003
Mensajes: 5
Antigüedad: 20 años, 5 meses
Puntos: 0
hola.

no lo copie, y lo pegue. Lo hice todo paso por paso, como tu mismo lo dijietes, el campo ya esta creado en la BD y con un valor 255.

No importa el tamano que se le da en el modulo?, por que yo pongo ahi: size=\"50\" maxwidth=\"255\"

salludos y muchas gracias!!!!
  #8 (permalink)  
Antiguo 07/11/2003, 16:34
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
¿No te aparece ningun mensaje de error?.
Si has hecho las cosas paso por paso, revisa que no te falte ninguna como ni ninguna comilla (el update e insert de un char debe de ir entre comillas).
En cuanto al tamaño del campo, en principio no tiene problema, truncaría a 100, pero si lo quieres de ese tamaño modifica el tamaño del campo.
  #9 (permalink)  
Antiguo 11/11/2003, 09:10
 
Fecha de Ingreso: noviembre-2003
Mensajes: 5
Antigüedad: 20 años, 5 meses
Puntos: 0
hola, gracias por seguir respondiendo.

No da ningun mensaje de error, lo unico que pasa cuando le hago los cambios al modulo es que al abrirlo desde el explorer, se pone la pantalla en blanco.

salu2
  #10 (permalink)  
Antiguo 11/11/2003, 16:05
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 8 meses
Puntos: 2
¿modificaste la llamada al a función para que incluya el núevo parámetro?
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 16:22.