Foros del Web » Programando para Internet » PHP »

Aceptar amigos o eliminar php

Estas en el tema de Aceptar amigos o eliminar php en el foro de PHP en Foros del Web. Hola a todos! Tengo un script donde pueden agregarse amigos pero primero se les envia un mensaje privado al usuario donde hay un form para ...
  #1 (permalink)  
Antiguo 07/03/2011, 11:04
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Aceptar amigos o eliminar php

Hola a todos!
Tengo un script donde pueden agregarse amigos pero primero se les envia un mensaje privado al usuario donde hay un form para aceptar o rechazar la solicitud de amistad.
Cuando agrego a un amigo funciona bien agrega a la base de datos y el estado agrega 2 que es esperando.

0 es: eliminado
1 es:aceptado
2 es:esperando

El problema que tengo es si yo quiero aceptar esa solicitud no puedo hacer el update para que status cambie a 1 o capaz la estoy haciendo mal.
Mi tabla sql es este:
Código PHP:
CREATE TABLE  `friends` (
  `
friends_idint(11NOT NULL auto_increment,
  `
username1varchar(250NOT NULL,
  `
username2varchar(250NOT NULL,
  `
statusenum('0','1','2') default '2',
  
PRIMARY KEY  (`friends_id`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=
En username1 guarda el usuario logueado con la session, username2 es al usuario a quien envia la solicitud de amistad status es el estado de esa solicitud.
EL codigo que tengo es follow.php donde inserta en la base de datos los datos:
Código PHP:
<?php 
session_start
(); 
include 
'include/php/conexion.php'

         
/* 0:eliminado, 
   1:aceptado, 
   2:esperando */ 
   
$username2 $_GET['username']; 
   if ( isset(
$_SESSION['userid'])){ 
         
            
$username $_SESSION['username']; 
         
 
    
$sql "INSERT INTO friends (username1,username2,status) VALUES ('".$_SESSION['username']."','".$username2."','2')"
    
$query mysql_query($sql) or die(mysql_error()); 
     
     
        
$title='Solicitud de amigos'
        
$to=$username2
        
$content=''.$username.' Quiere ser tu amigo.<br/> 
        <form action=add_user.php method=post> 
        <input type=submit class=add_user name=add value=Confirmar solicitud/> 
        </form><br /> 
        <form action=delete_user.php method=post> 
        <input type=submit class=delete_user name=delete value=Rechazar solicitud/> 
        </form>'

         
     
        
$from$_SESSION['username']; 
 
      
        
mysql_query("INSERT INTO messages (from_user, to_user, message_title, message_contents, message_date) VALUES ('$from','$to','$title','$content',now())") OR die("Could not send the message: <br>".mysql_error());?> 
        <script type="text/javascript">alert('Se ha enviado la solicitud de amistad!'); history.go(-1);</script> 
    <?php 
    
}else{ 
    
header("Location:login.php"); 
    } 
?>
El codigo add_user.php
Código PHP:
<?php
/*----------------------------
creado el:07/03/20100
descripcion: confirmar amigo usuarios
*--------------------------------------------*/
session_start();
include 
'include/php/conexion.php';


        
/* 0:eliminado,
   1:aceptado,
   2:esperando */
   
$username2 $_GET['username'];
   if ( isset(
$_SESSION['userid'])){
        
            
$username $_SESSION['username'];
        
$id $_GET['id'];

    
$sql "UPDATE `friends` SET `status` = '1' WHERE `friends_id` =$id;";

    
$query mysql_query($sql) or die(mysql_error());
    
    echo 
'Solicitud exitosa.';
    }else{
    
header("Location:login.php");
    }
?>
Cuando acepto una solicitud me aparece este error:
Código PHP:
You have an error in your SQL syntaxcheck the manual that corresponds  to your MySQL server version for the right syntax to use near '' at line  1 
Bueno quien pueda ayudarme se los agradezco mucho o alguna sugerencia tambien sirve mucho.
Saludos y gracias.
  #2 (permalink)  
Antiguo 07/03/2011, 11:06
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Aceptar amigos o eliminar php

¿y cual es la consulta que arroja el error?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/03/2011, 11:13
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Aceptar amigos o eliminar php

Este sql:
Código PHP:
 $sql "UPDATE `friends` SET `status` = '1' WHERE `friends_id` =$id;"
  #4 (permalink)  
Antiguo 07/03/2011, 11:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Aceptar amigos o eliminar php

imprime la consulta antes de ejecutar y observa, ¿esta bien formada?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/03/2011, 11:44
Avatar de Perr0  
Fecha de Ingreso: mayo-2005
Ubicación: Santiago de Chile, Chile
Mensajes: 676
Antigüedad: 18 años, 10 meses
Puntos: 79
Respuesta: Aceptar amigos o eliminar php

buenas aledla

prueba con esto primero

$sql = "UPDATE `friends` SET `status` = '1' WHERE `friends_id` =$id;";

quitar el último punto y coma dentro de las comillas...

sino, prueba haciendo un cambio al username en vez del status

$sql = "UPDATE friends SET username1 = '1' WHERE friends_id=$id";

si te funciona bien

tendras que cambiar el campo status por un tynint, con ello bastara

salu2 y cuentas
__________________
Numerador Mp3 en Access =)
http://www.mediafire.com/download/r9...pdw/mp3(2).zip
  #6 (permalink)  
Antiguo 07/03/2011, 11:59
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Aceptar amigos o eliminar php

Hice un echo de la consulta sql
Código PHP:
$sql "UPDATE friends SET username1 = '1' WHERE friends_id=$id"
Y sale asi:

Código PHP:
UPDATE friends SET username1 1 WHERE friends_id=You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 
  #7 (permalink)  
Antiguo 07/03/2011, 12:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Aceptar amigos o eliminar php

¿entonces ya te diste cuenta que no toma el $id la consulta?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 07/03/2011, 12:07
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Aceptar amigos o eliminar php

Si no me toma el id
aunque en el codigo esta el $id = $_GET['id'];
ahora probando un echo de la consulta me sale asi:
Código PHP:
UPDATE friends SET username1 '1' WHERE friends_id='..' 
  #9 (permalink)  
Antiguo 07/03/2011, 12:10
Avatar de arepavieja  
Fecha de Ingreso: marzo-2011
Mensajes: 207
Antigüedad: 13 años, 1 mes
Puntos: 9
Respuesta: Aceptar amigos o eliminar php

Pon el $id entre comillas simples:

Código MySQL:
Ver original
  1. $sql = "UPDATE friends SET username1 = '1' WHERE friends_id='$id'";
  #10 (permalink)  
Antiguo 07/03/2011, 12:16
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Aceptar amigos o eliminar php

Le agrege con comillas simples y pasa lo mismo.
En las respuestas que me estan ayudando ponen el sql para que actualize el username1 en vez de status.
Asi que lo modifique y lo puse asi:
Código PHP:
echo $sql "UPDATE friends SET status = 1 WHERE username1='$username'"
  #11 (permalink)  
Antiguo 07/03/2011, 14:00
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Aceptar amigos o eliminar php

El problema es que con esta ultima consulta vas a aceptar todas las solicitudes de amistad que tenga username1.

Entonces, si en $_GET['id'] estas obteniendo un valor incorrecto, lo logico es pensar que el error lo tienes en la pagina donde generas el enlace para aceptar la amistad.
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 07/03/2011, 14:23
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Aceptar amigos o eliminar php

Ok muchas gracias Triby.
Voy a cambiar el codigo para obtener el id de los usuarios y guardarlos en las base de datos.
Muchas gracias a todos por la ayuda.
Saludos
  #13 (permalink)  
Antiguo 25/03/2011, 20:43
Avatar de ale_dla  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 189
Antigüedad: 15 años
Puntos: 3
Respuesta: Aceptar amigos o eliminar php

Hola a todos!
Despues de tanto tiempo vuelvo a pedir ayuda modifique todo la base de datos de amistades:
Código PHP:
CREATE TABLE `friends` (
  `
friendsidint(11NOT NULL auto_increment,
  `
user1int(11NOT NULL,
  `
user2int(11NOT NULL,
  `
statusenum('0','1','2'NOT NULL default '2',
  
PRIMARY KEY  (`friendsid`)
ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=
El codigo index.php solamente muestra todos los usuarios.
Código PHP:
<table width="100%">
                  <
tr>
                    <
td width="13%" rowspan="2"><div style=" height:50px; overflow:hidden;"><a href="../../profile/profile.php?id=' . $userid . '" target="_self">' . $user_pic . '</a></div></td>
                    <
td width="14%" class="style7"><div align="right">Nombre:</div></td>
                    <
td width="73%"><a href="../../profile/profile.php?id=' . $userid . '" target="_self"><b>' . $username . '</b></a> </td>
                      <
td></td>
                  </
tr>
                  <
tr>
                    <
td class="style7"><div align="right"></div></td>
                    <
td><a href="follow.php"><img src="follow.png" border="0"/></a> </td>
                  </
tr>
                  </
table>
                  <
hr /> 
El follow.php inserta en la base de datos el user1 que es el usuario que inicio sesion guarda el id, en user2 es al usuario que envia la invitacion de amistad y en status es el estado de esa solicitud que por defecto es 2 en espera.
Este es el codigo follow.php
Código PHP:
<?php
/*----------------------------
creado el: 26/02/0211
descripcion: agregar como amigo usuarios
*--------------------------------------------*/
session_start();
include 
'include/php/conexion.php';

//Conexion con la Base de Datos
$link=@dbConnect();
if (!
$link) {
    echo 
"Error conectando a la Base de Datos."
}

if (
$link =="202") {
    echo 
"Error seleccionando la Base de Datos.";
}

        
/* 0:eliminado,
   1:aceptado,
   2:esperando */
   
$id $_GET['id'];
        if ( isset(
$_SESSION['userid'])){
        
            
$username $_SESSION['username'];
        

    
$sql "INSERT INTO friends (user1,user2,status) VALUES ('".$_SESSION['userid']."','".$userid2."','2')";
    
$query mysql_query($sql) or die(mysql_error());
    
    
        
$title='Solicitud de amigos';
        
$to=$userid2;
        
$content=''.$username.' Quiere ser tu amigo.<br/>
        <form action=add_user.php method=post>
        <input type=submit class=add_user name=add value=Confirmar solicitud/>
        </form><br />
        <form action=delete_user.php method=post>
        <input type=submit class=delete_user name=delete value=Rechazar solicitud/>
        </form>'
;
        
    
        
$from$_SESSION['userid'];

        
mysql_query("INSERT INTO messages (from_user, to_user, message_title, message_contents, message_date) VALUES ('$from','$to','$title','$content',now())") OR die("Could not send the message: <br>".mysql_error());?>
        <script type="text/javascript">alert('Se ha enviado la solicitud de amistad!'); history.go(-1);</script>
    <?php
    
}else{
    
header("Location:login.php");
    }
?>
El problema es que no guarda en user2 el id del usuario a quien agrego como amigo.
Quien pueda ayudarme nuevamente se los agradezco.
Saludos !
  #14 (permalink)  
Antiguo 25/03/2011, 23:27
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 14 años, 11 meses
Puntos: 322
Respuesta: Aceptar amigos o eliminar php

Tal vez no lo encuentro, pero bueno, lo dire...
Veo que en la consulta tienes $userid2, pero en tu archivo no la veo, me pregunto... Tienes esa variable declarada? Donde?

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies

Etiquetas: aceptar
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 23:46.