Autor Zpráva
Nailen
Profil
Zdravím návštěvníky tohoto vlákna a předem děkuji za vaši radu.

Mám databázi a v ní tabulku tab1 a tabulku tab2. Tyto tabulky chci spojit pomocí JOIN. Pokud zadám následující příkaz v phpMyadminu, tak se mi vypíše přesně co potřebuji. Tedy tabulky se spojí a vypíší se mi dva řádky pouze ty kde id_user je rovno jedné.

SELECT neco1, neco2    
FROM tab1 INNER JOIN tab2
ON    
tab1.id_tab2 = tab2.id       
WHERE 
tab1.id_user = 1
ORDER BY tab2.id

pokud ale tento kód vložím do php scriptu stránky a spustím ho pomocí tohoto příkazu: $stmt = $mysqli->query(" ... ");
a následně vypíši výsledek pomocí tohoto příkazu echo $stmt->num_rows; tak dostávám číslo, které je násobkem obou řádků tabulky. Tedy každý řádek z tab1 se mi spojí s řádkem tab2.

Poradí mi někdo, kde mám chybu?

Děkuji
Kajman
Profil
Nailen:
Poradí mi někdo, kde mám chybu?

Chyba možná bude ve vkládání kódu do php skriptu. Ukažte ten php kód.
Nailen
Profil
Kajman:

$stmt = $mysqli->query("SELECT neco1, neco2
    FROM " . $db_table_prefix . "tab1 INNER JOIN " . $db_table_prefix . "tab2` 
    ON    
    " . $db_table_prefix . "tab1.id_tab2 = " . $db_table_prefix . "tab2.id       
    WHERE 
    " . $db_table_prefix . "tab1.id_user = " . $loggedInUserID . "
     ORDER BY " . $db_table_prefix . "tab2.id");
    
    echo 'Z databáze jsme získali ' . $stmt->num_rows . ' záznamů.</br>';  
    
    while ($vypis = $stmt->fetch_assoc())
    { 
    ...
    }
Keeehi
Profil
echo "SELECT neco1, neco2
    FROM " . $db_table_prefix . "tab1 INNER JOIN " . $db_table_prefix . "tab2` 
    ON    
    " . $db_table_prefix . "tab1.id_tab2 = " . $db_table_prefix . "tab2.id       
    WHERE 
    " . $db_table_prefix . "tab1.id_user = " . $loggedInUserID . "
     ORDER BY " . $db_table_prefix . "tab2.id";
To ti vypíše ten příkaz, který se reálně spouští. Tak ho zkopíruj a vlož do phpMyAdmin a uvidíš, kde je problém. Já bych řekl, že to bude ten zpětný apostrof.
Nailen
Profil
og Keeehi

Dobrý den,

děkuji za vaši odpověď. Toho jednoho zpětného apostrofu jsem si ani nevšiml. Pozůstatek kopírování z admina.

Ještě jednou děkuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: