CREATE TABLE IF NOT EXISTS `pre_prezenty` (
`id_prezentu` tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,
`id_uzytkownika` tinyint(3) DEFAULT '0',
`id_rezerwujacego` tinyint(3) DEFAULT '0',
`skr_prezentu` varchar(255) collate utf8_polish_ci DEFAULT NULL,
`koszt` int(10) UNSIGNED DEFAULT NULL,
`szczegoly` text collate utf8_polish_ci,
`link` varchar(255) collate utf8_polish_ci DEFAULT NULL,
`mini_fotka` mediumblob,
`rezerwacja` varchar(1) collate utf8_polish_ci DEFAULT NULL,
`realizacja` varchar(1) collate utf8_polish_ci DEFAULT NULL,
`typ_prezentu` varchar(20) collate utf8_polish_ci DEFAULT 'prezent',
`dt_dodania` date DEFAULT NULL,
`dt_realizacji` date DEFAULT '0000-00-00',
PRIMARY KEY (`id_prezentu`),
UNIQUE KEY `id_prezentu` (`id_prezentu`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=0 ;
#---------------------------
#---BAZA UZYTKOWNIKOW-------
#---------------------------
CREATE TABLE IF NOT EXISTS `pre_users` (
`id_uzytkownika` tinyint(3) UNSIGNED NOT NULL AUTO_INCREMENT,
`imie` varchar(20) collate utf8_polish_ci DEFAULT NULL,
`nazwisko` varchar(20) collate utf8_polish_ci DEFAULT NULL,
`email` varchar(30) collate utf8_polish_ci DEFAULT NULL,
`uzytkownik` varchar(8) collate utf8_polish_ci DEFAULT NULL,
`haslo` varchar(32) collate utf8_polish_ci DEFAULT NULL,
`dt_rejestracji` datetime DEFAULT NULL,
`dt_logowania` datetime DEFAULT NULL,
`blokada` varchar(1) collate utf8_polish_ci DEFAULT NULL,
`uprawnienia` varchar(1) collate utf8_polish_ci DEFAULT NULL,
PRIMARY KEY (`id_uzytkownika`),
UNIQUE KEY `id_uzytkownika` (`id_uzytkownika`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=0 ;
Z bazy pre_prezenty ma pobrać wszystkie pola .
Przy wyświetlaniu zamiast id_użytkownika, ma wyświetlić imie i nazwisko pobrane z bazy pre_users. Tu właśnie mam problem
Zrobiłem takie zapytanie
SELECT * FROM $M_TABELA LEFT JOIN $M_TABELA2 ON $M_TABELA.id_uzytkownika=$M_TABELA2.id_uzytkownika
WHERE $M_TABELA.id_rezerwujacego='$usr' AND rezerwacja='1' AND realizacja='1' ORDER BY id_prezentu DESC
Ale niestety pobrał dane użytkownika o id_uzytkownika 2 a nie jeden. Pomimo że dane w bazie się zgadzają i M_TABELA2.id_uzytkownika = 1 i M_TABELA.id_uzytkownika = 1.
Może być to problemem , że w M_TABELA.id_uzytkownika jest drugim polem, a nie pierwszym?
udało mi się to rozwiązać tak
<?php
$wynik = mysql_query("SELECT * FROM $M_TABELA JOIN $M_TABELA2 ON $M_TABELA.id_uzytkownika=$M_TABELA2.id_uzytkownika WHERE $M_TABELA.id_rezerwujacego='$usr' AND rezerwacja='1' AND realizacja='1' ORDER BY id_prezentu DESC") or
die('Brak polączenia z bazą :('.mysql_error()); ?>
a w pętli while dopisałem pola z $M_TABELA2 i poszło jak się patrzy.
Czy tak może zostać czy to nie jest poprawne.