MySQLi - propojení dvou tabulek – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

MySQLi - propojení dvou tabulek – PHP – Fórum – Programujte.comMySQLi - propojení dvou tabulek – PHP – Fórum – Programujte.com

 

Slim0
Návštěvník
30. 10. 2014   #1
-
0
-

Ahoj,

snažím se dát dohromady propojení dvou tabulek, pomocí MySQLi, ale nějak mi to nejde a nemůžu přijít na to, jak to jinak zrealizovat.

 Úkol je takový, abych z tabulky seznam (Podle ID), dostal člověka, který spravuje danou část a udělat, aby se mi z druhé tabulky vypsal jeho e-mail.

if ($stmt_email_autora = $mysqli->prepare("SELECT email FROM `i_uzivatele` INNER JOIN i_seznam ON i_seznam.spravuje = i_uzivatele.id WHERE `i_seznam.id`=?"))
        {
            $stmt_email_autora->bind_param("i", $this->sekce_id);          
            $stmt_email_autora->execute(); 
            $stmt_email_autora->bind_result($email);      
            $stmt_email_autora->fetch(); 
            
            echo $email;
             
        $vysledek->free_result();
            
        }
            
        $stmt_email_autora->close();

Předem díky za pomoc!

Nahlásit jako SPAM
IP: 90.179.211.–
peter
~ Anonymní uživatel
4016 příspěvků
30. 10. 2014   #2
-
0
-

LEFT JOIN?
A nemas definovane, z jake tabulky mas email (SELECT email ...).

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:888a:b3...–
Slim0
Návštěvník
30. 10. 2014   #3
-
0
-

#2 peter
Mohl bys mi to prosím hodit do příkladu, abych se v tom zorientoval? Ještě v tom trochu tápám.

Moc díky!

Nahlásit jako SPAM
IP: 90.179.211.–
Kit+15
Guru
30. 10. 2014   #4
-
0
-

#1 Slim
Ten sloupeček se přece nejmenuje "i_seznam.id", ale "id" v tabulce "i_seznam".

K čemu tam máš to "i_" na začátku názvu tabulek?

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Slim0
Návštěvník
30. 10. 2014   #5
-
0
-

#4 Kit
to je jenom prefix názvu tabulky

Nahlásit jako SPAM
IP: 90.179.211.–
Kit+15
Guru
30. 10. 2014   #6
-
0
-

#5 Slim
Maďarská notace se přece už dávno nepoužívá.

Ve které tabulce máš sloupec "i_seznam.id"? Není zrovna rozumné dávat tečku do názvu sloupce.

Nahlásit jako SPAM
IP: 147.229.242.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
4016 příspěvků
30. 10. 2014   #7
-
0
-

Mno, zkopirujes dotaz sem a nastavis mysql, kliknes format
http://www.dpriver.com/…mat.htm ;

SELECT email
FROM   `i_uzivatele`
       INNER JOIN i_seznam
               ON i_seznam.spravuje = i_uzivatele.id
WHERE  `i_seznam.id` =?  

To ti to preformatuje zhruba takto (myslim, ze by to php zkouslo i takto zformatovane, kdyz tam das spravne uvozovky). V tom dotazu jedine slovo email je na prvnim radku a neni u nej uveden nazev tabulky. No, a misto inner join bych pouzil LEFT JOIN. Coz bezne clovek, ktery sestavi takovyto sql dotaz si umi dohledat googlem priklady, takze jsem neocekaval, ze by si neporadil.
Do i_ sem vrtat nechtel
Do nejednotnosti v uzivani `tabulka` a pak bez zpetnych apostrofu jsem taky nevrtal. Coz byla ovsem chyba, protoze, jak pise Kit, je mezi tim rozdil a je to dalsi mozna chyba.
i_uzivatele.id - tohle oznacuje tabulku.sloupec
`i_seznam.id` - tohle oznacuje nazev tabulky (sloupece nebo databaze); kdezto pravdepodobne by to spravne melo by i_seznam.id nebo `i_seznam`.`id`
Ty zpetne apostrofy se tam davaji pro jistotu, pokud pouzivas exoticke nazvy sloupcu, ktere se shoduji nahodou s klicovymi slovy. Jako treba pro polohu zleva muzes pouzit tabulka.left nebo jen left, jenze LEFT je soucasne prikaz pro LEFT JOIN. Atd...
 

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:888a:b3...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 80 hostů

Podobná vlákna

Propojení dvou tabulek — založil Pavelv

Propojení dvou tabulek MySQL. — založil hustoles

Propojení tabulek + výpočty — založil MeFi100

Spojení dvou tabulek — založil Forest

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý