| Autor | Zpráva | ||
|---|---|---|---|
| V4sek Profil * |
#1 · Zasláno: 23. 3. 2014, 11:03:08
Dobrý den, mám kod pro zobrazení všech obrázků z dané kategorie.
$sql2 = MySQL_Query("SELECT kategorie.seo_en, obrazky.nazev_en, obrazky.img, obrazky.seo_enn FROM kategorie
LEFT JOIN kategorie_obrazky on kategorie.id = kategorie_obrazky.id_kategorie
LEFT JOIN obrazky on obrazky.id = kategorie_obrazky.id_obrazky
WHERE kategorie.seo_en = '".$_GET["id"]."'");
if (MySQL_Num_Rows($sql2)>0){
define ("COLS", 2); // počet sloupců
echo "<table class='ohranic'>\n";
for ($i = 0; $zaznam = mysql_fetch_assoc($sql2); $i++)
{
if ($i % COLS == 0) echo "<tr>";
echo "<td>";
echo "<div style='width:225px;padding:10px;'>
<div><img src=\"/images/obrazky/".$zaznam['img']."\" width=\"255\" height=\"255\"></div>
<div><a href=\"/".$zaznam['seo_enn']."\">".$zaznam['nazev_en']."</a></div>
</div>";
echo"</td>";
if ($i % COLS == COLS - 1) echo "</tr>\n";
}
echo "</table>\n";
} else {
none('V této kategorii není žádný obrázek.');
}Skript funguje, nicméně, když v kategorii není žádný obrázek, tak to nenapíše "V této kategorii není žádný obrázek." Ale v té kategorii je obrázek, který není načten (obrázek neexistuje). Když dám nějakou kategorii, kde jsou obrázky tak to funguje bez problémů, načte se obrázek i název. Nevíte někdo v čem mám chybu? |
||
| Tori Profil |
#2 · Zasláno: 23. 3. 2014, 11:07:01
V4sek:
„Ale v té kategorii je obrázek, který není načten (obrázek neexistuje).“ Jak může být v kategorii a přitom neexistovat? |
||
| V4sek Profil * |
#3 · Zasláno: 23. 3. 2014, 11:10:23
obrázek neexistuje je tam pouze
<img src=\"/images/obrazky/\" width=\"255\" height=\"255\">
|
||
| Tori Profil |
#4 · Zasláno: 23. 3. 2014, 11:49:29
Pokud nepotřebujete pole kategorie.seo_en (v ukázaném kódu nikde není), použijte
INNER JOIN. Pokud ano, měla by stačit podmínka (pokud dotaz vrací jen jeden řádek výsledků a v něm je prázdné pole obrazky.img, tak obrázek neexistuje). V druhém případě to bude chtít nějak upravit celý cyklus.
|
||
| V4sek Profil * |
#5 · Zasláno: 23. 3. 2014, 13:34:10
Děkuji INNER JOIN to vyřešil bravůrně. Ještě bych se chtěl zeptat šlo by do mého SQL dotazu zapsat ještě jeden
$result = mysql_query("SELECT p.*, r.prumer
FROM obrazky p
LEFT JOIN (SELECT rating_id, AVG(rating_num) prumer
FROM ratings
GROUP BY rating_id
) r ON r.rating_id = p.id");Vůbec nevím jak na to, lze to vůbec? |
||
| Tori Profil |
Zkuste:
SELECT o.nazev_en, o.img, o.seo_enn, IFNULL(AVG(r.rating_num), 0) prumer FROM kategorie k INNER JOIN kategorie_obrazky ko ON k.id = ko.id_kategorie INNER JOIN obrazky o ON o.id = ko.id_obrazky LEFT JOIN ratings r ON r.rating_id = o.id WHERE k.seo_en = '".$_GET["id"]."' GROUP BY o.id Anebo takhle, otestujte s EXPLAINem, co je výhodnější. SELECT o.nazev_en, o.img, o.seo_enn, IFNULL(AVG(r.rating_num), 0) prumer FROM obrazky o LEFT JOIN ratings r ON r.rating_id = o.id WHERE o.id IN (SELECT ko.id_obrazky FROM kategorie_obrazky ko INNER JOIN kategorie k ON k.id = ko.id_kategorie WHERE k.seo_en = '".$_GET["id"]."') GROUP BY o.id |
||
| V4sek Profil * |
#7 · Zasláno: 23. 3. 2014, 16:35:54
Bohužel nefunguje, nezobrazuje ani hvězdičky, když je zadám ručne v databázi
$sql2 = MySQL_Query("SELECT o.nazev_en, o.img, o.seo_enn,o.id, IFNULL(AVG(r.rating_num), 0) prumer
FROM obrazky o
LEFT JOIN ratings r ON r.rating_id = o.id
WHERE o.id IN
(SELECT ko.id_obrazky
FROM kategorie_obrazky ko
INNER JOIN kategorie k ON k.id = ko.id_kategorie
WHERE k.id = '".$_GET["id"]."')
GROUP BY o.id");
if (MySQL_Num_Rows($sql2)>0){
define ("COLS", 2); // počet sloupců
echo "<table class='ohranic'>\n";
for ($i = 0; $zaznam = mysql_fetch_assoc($sql2); $i++)
{
if ($i % COLS == 0) echo "<tr>";
echo "<td>";
echo "<div style='width:225px;padding:10px;'>".$zaznam['nazev_en']."
<div><img src=\"/images/obrazky/".$zaznam['img']."\" width=\"255\" height=\"255\"></div>
<div><a href=\"/".$zaznam['seo_enn']."\">".$zaznam["id"]."".pullRating("".$zaznam["id"]."",false,false,false)."</a></div>
</div>";
echo"</td>";
if ($i % COLS == COLS - 1) echo "</tr>\n";
}
echo "</table>\n";
} else {
none('V této kategorii není žádný obrázek.');
}Schvalně jsem to převedl z seo_en na id, protože pak bude určitě stím bordel. |
||
| Tori Profil |
A když ten samotný dotaz spustíte v PhpMyAdmin (s nějakým existujícím ID), hlásí nějakou chybu? A ten druhý dotaz taky nejde?
|
||
|
Časová prodleva: 12 let
|
|||
0