Kære udviklere,
Nu sidder jeg og har lidt problemer med noget sql. Jeg vil lave et vennesystem som skal være brugerdefineret således at brugere kan blive venner med hinanden. Igen noget der burde være meget simpelt. Det virker også fint med at man kan være venner, men det øjeblik jeg skal have udskrevet "vennerne" på de gældende brugerprofiler bliver det et problem.
Et eksempel: bruger med ID 2 har ansøgt bruger med ID 1, og bruger med ID 1 har accepteret ansøgningen. Begge profiler skal have udskrevet hinandens ID/billede mm. Problemet er at på begge profiler får jeg udskrevet ID nummer 2, som jo er ansøgeren.
'friendship_user1' er ansøgerenMin tabel ser således ud:
friendship_id | friendship_user1 | friendship_user2 | friendship_active | friendship_date_of_request | friendship_date_of_accept
-----------------------------------------------------------------------
1 | 2 | 1 | 1 | 12-07-2012 |
SQL for tabellen:
- -- phpMyAdmin SQL Dump
- -- version 3.4.5
- -- http://www.phpmyadmin.net
- --
- -- Vært: localhost
- -- Genereringstid: 13. 07 2012 kl. 16:23:31
- -- Serverversion: 5.5.16
- -- PHP-version: 5.3.8
-
- SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
- SET time_zone = "+00:00";
-
-
- /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
- /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
- /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
- /*!40101 SET NAMES utf8 */;
-
- --
- -- Database: `brugere`
- --
-
- -- --------------------------------------------------------
-
- --
- -- Struktur-dump for tabellen `friendship`
- --
-
- CREATE TABLE IF NOT EXISTS `friendship` (
- `friendship_id` int(11) NOT NULL AUTO_INCREMENT,
- `friendship_user1` int(11) NOT NULL,
- `friendship_user2` int(11) NOT NULL,
- `friendship_active` int(11) NOT NULL,
- `friendship_date_of_request` varchar(30) NOT NULL,
- `friendship_date_of_accept` varchar(30) NOT NULL,
- PRIMARY KEY (`friendship_id`)
- ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
-
- --
- -- Data dump for tabellen `friendship`
- --
-
- INSERT INTO `friendship` (`friendship_id`, `friendship_user1`, `friendship_user2`, `friendship_active`, `friendship_date_of_request`, `friendship_date_of_accept`) VALUES
- (1, 2, 1, 1, '12-07-2012', '');
-
- /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
- /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
- /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Måden jeg prøver på at få udskrevet data'en på er således:
- SELECT * FROM friendship INNER JOIN members ON friendship_user1 = member_id INNER JOIN profile_pictures ON FK_member_id = member_id WHERE (friendship_user1 = '2' && friendship_user2 != '2') && friendship_active = '1' OR (friendship_user2 = '2' && friendship_user1 != '2') && friendship_active = '1'
- function print_friends($user_id)
- {
- $sql = "SELECT * FROM friendship INNER JOIN members ON friendship_user1 = member_id INNER JOIN profile_pictures ON FK_member_id = member_id WHERE (friendship_user1 = '".$user_id."' && friendship_user2 != '".$user_id."') && friendship_active = '1' OR (friendship_user2 = '".$user_id."' && friendship_user1 != '".$user_id."') && friendship_active = '1'";
- $query = mysql_query($sql);
-
- if(!$query)
- {
- die(mysql_error());
- mysql_close();
- }
- else
- {
- if(mysql_num_rows($query) > 0)
- {
- while($row = mysql_fetch_assoc($query))
- {
- echo $row["friendship_user1"];
- }
- }
- else
- {
- echo "Ingen venner endnu...";
- }
- }
- }
$user_id er ID'et som findes i $_GET["id"].
Jeg håber at der er nogle der kan hjælpe, og hvis jeg har forklaret det for dårligt så skriv det endelig
.
Indlæg senest redigeret d. 13.07.2012 16:27 af Bruger #16025