Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]Prawdopodbny bład w SELECT
Forum PHP.pl > Forum > Przedszkole
stefik4
Witam zrobiłem sobie "znajomych" w portalu ale nie działa ;/


Strukture bazy 'znajomi' mam :

Kod
CREATE TABLE `znajomi` (
   `all` int(25) NOT NULL auto_increment, // zwykly index
   `id` INT(11) NOT NULL, // kto ma tego znajomego
   `kogo` INT(50) NOT NULL, // kto nim jest
   PRIMARY KEY  (`all`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin2 AUTO_INCREMENT=3;


Wszysko mam pola typu INT bo przechowuje tam tylko ID tych osob ale z wyswietlaniem jest problem ;/

  1. <?php session_start();
  2. include "header.php";
  3. include "menu.html";
  4. include "config.php";
  5.  
  6. $kto = $_SESSION['userid'];
  7.  
  8.  
  9.  
  10.    $wykonaj = mysql_query('SELECT `znajomi`.`id`,`users2`.`username`, `users2`.`team` FROM `znajomi`,`users2` WHERE `znajomi`.`id`='.$_SESSION['userid'].'');
  11.    
  12.    
  13.  
  14. echo '<div id="logged"><b><a>Twoi znajomi:</a><b><br>';
  15.  
  16.  
  17. ?>
  18.  
  19.    <table>
  20. <?while($ad = mysql_fetch_array($wykonaj)){?>
  21.    <tr>
  22.        <td><?=++$i?>. </td>
  23.        <td><b><?=$ad['username']?></b></a></td>
  24.        <td><?=$ad['team']?></a></td>
  25.    </tr>
  26. <?}
  27. ?></table>


A wyniki wyświetlane sa tak:

Twoi znajomi:
1. stefik4 Admin Team
2. stefik4 Admin Team
3. Bierni Bierni TeaM
4. Bierni Bierni TeaM
5. thomasso AZS Częstochowa
6. thomasso AZS Częstochowa

Po 1. Czemu wyświetla nawet mnie ?
po 2. Czemu wyświetla podwójnie ?
porady-it.pl
Rozumiem że pomiędzy tabelą znajomi i users2 istnieje jakieś powiązanie którego w zapytaniu nie określiłeś. Podaj strukturę tabeli users2 winksmiley.jpg
stefik4
Kod
CREATE TABLE `users2` (
  `userid` int(25) NOT NULL auto_increment,
  `name` varchar(25) NOT NULL default '',
  `email` varchar(255) NOT NULL default '',
  `username` varchar(25) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `team` varchar(255) NOT NULL default '',
  `logo` varchar(255) NOT NULL default '',
  `money` bigint(255) NOT NULL default '1000000',
  `data` varchar(100) NOT NULL default '2009-00-00',
  `ip` varchar(1000) NOT NULL,
  `vip` varchar(10) NOT NULL default '0',
  `vip_do` varchar(100) NOT NULL,
  `notatka` varchar(500) NOT NULL,
  `poziom` varchar(10) NOT NULL default '1',
  `liga` int(10) NOT NULL default '0',
  `sponsor` int(10) NOT NULL,
  PRIMARY KEY  (`userid`),
  UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin2 COMMENT='Members' AUTO_INCREMENT=5;


Prosz....
porady-it.pl
  1. SELECT z.id, u.username, u.team
  2. FROM znajomi z
  3. INNER JOIN users2 u ON z.id = u.userid
  4. WHERE z.id = $_SESSION['userid']


Kurcze chyba źle zrozumiałem tabele winksmiley.jpg

Powinno być raczej tak:

  1. SELECT z.userid, u.username, u.team
  2. FROM znajomi z
  3. INNER JOIN users2 u ON z.kogo= u.userid
  4. WHERE z.id = $_SESSION['userid']
stefik4
Nie działa, bo wyświetla mi tylko mnie tam:

Twoi znajomi:
1. stefik4 Admin Team
2. stefik4 Admin Team

blinksmiley.gif
porady-it.pl
  1. SELECT z.userid, u.username, u.team
  2. FROM znajomi z
  3. INNER JOIN users2 u ON z.kogo= u.userid
  4. WHERE z.id = $_SESSION['userid']
stefik4
zamiast Twojego z.userid dalem z.id i działa superancko winksmiley.jpg
Dzieki.
porady-it.pl
Fakt winksmiley.jpg Zawsze można wyciągnąć dwa identyfikatory i mieć linki do profilu znajomego i własnego smile.gif

  1. SELECT z.id, u.userid, u.username, u.team
  2. FROM znajomi z
  3. INNER JOIN users2 u ON z.kogo= u.userid
  4. WHERE z.id = $_SESSION['userid']
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.