Pominięcie konkretnego albumu w panelu najnowsze fotki
|
khaman |
Dodany dnia 13.03.2009 10:27:54
|
Postów: 2507 Pomógł: 78
Data rejestracji: 26.06.2007 12:11
|
Mam taki kod panelu wyświetlającego najnowsze fotki:
$result=dbquery(
"SELECT tp.*, ta.* FROM ".$db_prefix."photos tp
LEFT JOIN ".$db_prefix."photo_albums ta USING(album_id)
WHERE ".groupaccess('album_access')." ORDER BY photo_datestamp DESC LIMIT 6"
);
if(dbrows($result)>0){
@opentable("Najnowsze Fotki");
echo "<table align='center' cellpadding='0' cellspacing='4'><tr>";
while ($data=dbarray($result)) {
$randphotodir = PHOTOS.(!@ini_get("safe_mode") ? "album_".$data['album_id']."/" : "");
echo "<td align='center'><a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' class='gallery'><img src='".$randphotodir.$data['photo_thumb1']."' title='".$data['photo_title']."' alt='".$data['photo_title']."' border='0' /></a></td>";
}
echo "</tr></table>";
@closetable();
}
Chciałbym aby panel pomijał fotki dodane do konkretnego ID albumu. Może ktoś wie jak zmodyfikować ten kod aby ten panel pomijał konkretny album o podanym ID?
Edytowane przez khaman dnia 13.03.2009 10:28:43
Posty pomocne oznaczaj jako pomógł Nie pomagam na PW/GG | Brak stopki = brak pomocy
|
|
|
|
Wścibski Gość |
Dodany dnia 24.11.2024 22:55:07
|
Pan Kontekstualny
Postów: n^x
Data rejestracji: Zawsze
|
|
IP: localhost |
|
|
Chemikpil |
Dodany dnia 13.03.2009 10:40:31
|
Bywalec
Postów: 999 Pomógł: 54
Data rejestracji: 04.05.2008 21:46
|
Być może nie będzie to najlepsze rozwiązanie ale można zrobić tak.
$result=dbquery(
"SELECT tp.*, ta.* FROM ".$db_prefix."photos tp
LEFT JOIN ".$db_prefix."photo_albums ta USING(album_id)
WHERE ".groupaccess('album_access')." ORDER BY photo_datestamp DESC LIMIT 6"
);
if(dbrows($result)>0){
@opentable("Najnowsze Fotki");
echo "<table align='center' cellpadding='0' cellspacing='4'><tr>";
while ($data=dbarray($result)) {
if($data['album_id'] != id_albumu) {
$randphotodir = PHOTOS.(!@ini_get("safe_mode") ? "album_".$data['album_id']."/" : "");
echo "<td align='center'><a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' class='gallery'><img src='".$randphotodir.$data['photo_thumb1']."' title='".$data['photo_title']."' alt='".$data['photo_title']."' border='0' /></a></td>";
}}
echo "</tr></table>";
@closetable();
}
Kliknij i zaczekaj na załadowanie kodu ...
W id_albumu podajesz id które ma być pomijane przy wyświetlaniu.
Edytowane przez Chemikpil dnia 13.03.2009 10:42:08
|
|
|
|
khaman |
Dodany dnia 13.03.2009 10:51:46
|
Postów: 2507 Pomógł: 78
Data rejestracji: 26.06.2007 12:11
|
Dzięki. Właśnie w pewnym sensie to jest to tylko wtedy zostaje puste miejsce i z tym nie mogłem sobie poradzić aby panel zupełnie ignorował ten album.
Posty pomocne oznaczaj jako pomógł Nie pomagam na PW/GG | Brak stopki = brak pomocy
|
|
|
|
Chemikpil |
Dodany dnia 13.03.2009 11:02:27
|
Bywalec
Postów: 999 Pomógł: 54
Data rejestracji: 04.05.2008 21:46
|
A masz gdzieś użyty ten panel? Chciał bym zobaczyć dokładnie jak wygląda to puste miejsce.
|
|
|
|
khaman |
Dodany dnia 13.03.2009 11:09:40
|
Postów: 2507 Pomógł: 78
Data rejestracji: 26.06.2007 12:11
|
Już włączyłem. Główna strona ( www.khaman.pl ) na dole (oryginalny jest na górze).
Edytowane przez khaman dnia 13.03.2009 11:09:55
Posty pomocne oznaczaj jako pomógł Nie pomagam na PW/GG | Brak stopki = brak pomocy
|
|
|
|
Chemikpil |
Dodany dnia 13.03.2009 11:32:19
|
Bywalec
Postów: 999 Pomógł: 54
Data rejestracji: 04.05.2008 21:46
|
Problem robi się bodajże w zapytaniu do bazy:
.groupaccess('album_access')." ORDER BY photo_datestamp DESC LIMIT 6"
Chodzi tu o limit. On pobiera z bazy tylko 6 zdjęć. Zapewne 3 zdjęcie które brakują u ciebie w panelu są z albumu który wykluczasz. Wyświetla więc on tylko te 3 które ma w pamięci.
Jak zrobić by już w zapytaniu pomijał album nie powiem bo nie wiem ;/.
Można to jednak ominąć inaczej. Zamiast dawać limit w zapytaniu zrób to w panelu. Zrób zmienną np $i i niech ona zwiększa się co wyświetlenie. Powinno to wyglądać tak:
$result=dbquery(
"SELECT tp.*, ta.* FROM ".$db_prefix."photos tp
LEFT JOIN ".$db_prefix."photo_albums ta USING(album_id)
WHERE ".groupaccess('album_access')." ORDER BY photo_datestamp DESC"
);
if(dbrows($result)>0){
@opentable("Najnowsze Fotki");
echo "<table align='center' cellpadding='0' cellspacing='4'><tr>";
$i = 0;
while ($data=dbarray($result)) {
if($i < 6) {
if($data['album_id'] != id_albumu) {
$randphotodir = PHOTOS.(!@ini_get("safe_mode") ? "album_".$data['album_id']."/" : "");
echo "<td align='center'><a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' class='gallery'><img src='".$randphotodir.$data['photo_thumb1']."' title='".$data['photo_title']."' alt='".$data['photo_title']."' border='0' /></a></td>";
$i++;
}}
}
echo "</tr></table>";
@closetable();
}
Kliknij i zaczekaj na załadowanie kodu ...
Edytowane przez Chemikpil dnia 13.03.2009 11:34:54
|
|
|
|
khaman |
Dodany dnia 13.03.2009 11:56:27
|
Postów: 2507 Pomógł: 78
Data rejestracji: 26.06.2007 12:11
|
Chemix jesteś debeściak Właśnie nie umiałem tego limitu przeskoczyć. Przy okazji piwko wisze
Posty pomocne oznaczaj jako pomógł Nie pomagam na PW/GG | Brak stopki = brak pomocy
|
|
|
|
Seba0p |
Dodany dnia 13.03.2009 14:10:38
|
Początkujący
Postów: 127 Pomógł: 25
Data rejestracji: 24.07.2007 11:28
|
Można też tak:
$wyklucz_a = "1";
$result = dbquery("SELECT a.album_id, photo_id, photo_thumb1, photo_title FROM ".DB_PHOTOS." a INNER JOIN ".DB_PHOTO_ALBUMS." b USING(album_id) WHERE ".groupaccess('album_access').($wyklucz_a != "" ? " AND album_id NOT IN (".$wyklucz_a.")" : "")." ORDER BY photo_datestamp DESC LIMIT 6");
if(dbrows($result) > '0'){
@opentable("Najnowsze Fotki");
echo"<table align='center' cellpadding='0' cellspacing='4'><tr>";
while($data = dbarray($result)){
$randphotodir = PHOTOS.(!@ini_get("safe_mode") ? "album_".$data['album_id']."/" : "");
echo"<td align='center'><a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' class='gallery'><img src='".$randphotodir.$data['photo_thumb1']."' title='".$data['photo_title']."' alt='".$data['photo_title']."' border='0' /></a></td>";
}
echo"</tr></table>";
@closetable();
}
W zmiennej $wyklucz_a umieszczamy id albumów, które mają zostać pominięte, np.:
$wyklucz_a = "1";
lub
$wyklucz_a = "1,2,3,4";
|
|
|
|
Kopciak77 |
Dodany dnia 13.03.2009 19:27:50
|
Przedszkolak
Postów: 87 Ostrzeżeń: 3
Data rejestracji: 08.08.2008 20:40
|
Seba0p napisał/a:
Można też tak:
$wyklucz_a = "1";
$result = dbquery("SELECT a.album_id, photo_id, photo_thumb1, photo_title FROM ".DB_PHOTOS." a INNER JOIN ".DB_PHOTO_ALBUMS." b USING(album_id) WHERE ".groupaccess('album_access').($wyklucz_a != "" ? " AND album_id NOT IN (".$wyklucz_a.")" : "")." ORDER BY photo_datestamp DESC LIMIT 6");
if(dbrows($result) > '0'){
@opentable("Najnowsze Fotki");
echo"<table align='center' cellpadding='0' cellspacing='4'><tr>";
while($data = dbarray($result)){
$randphotodir = PHOTOS.(!@ini_get("safe_mode") ? "album_".$data['album_id']."/" : "");
echo"<td align='center'><a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' class='gallery'><img src='".$randphotodir.$data['photo_thumb1']."' title='".$data['photo_title']."' alt='".$data['photo_title']."' border='0' /></a></td>";
}
echo"</tr></table>";
@closetable();
}
W zmiennej $wyklucz_a umieszczamy id albumów, które mają zostać pominięte, np.:
$wyklucz_a = "1";
lub
$wyklucz_a = "1,2,3,4";
A powiecie jak to zrobić w tym kodzie ?
<?php
if (!defined("IN_FUSION")) { die("Access Denied"); }
$result = dbquery("SELECT panel_name FROM ".DB_PANELS." WHERE panel_filename = 'latest_images_panel'");
$panel_name = "<b><blink>Nowe Zdjêcia</blink><b>";
if (dbrows($result) != 0) {
$data = dbarray($result);
$panel_name = $data['panel_name'];
}
$result = dbquery("SELECT * FROM ".DB_PHOTOS." ORDER BY photo_id DESC LIMIT 0,30");
if (dbrows($result) != 0) {
openside($panel_name);
$table_nummer = 0;
echo "<center><table border='1'cellspacing='5'>";
while($data = dbarray($result)) {
$itemsubject = trimlink($data['photo_id'], 23);
$itemdescription = trimlink($data['photo_title'], 23);
if($table_nummer <=5){
if($table_nummer == 0){ echo"<tr>\n";}
echo "<td align='center'>$itemdescription<br><a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' title='".$data['photo_title']."' class='side'> <img src='".BASEDIR."images/photoalbum/album_".$data['album_id']."/".$data['photo_thumb1']."' border='2' /></a><br />\n";
echo "</td>\n";
$table_nummer++;
}
else{
$table_nummer = 0;
echo "</tr>";
echo "<tr>";
echo "<td align='center'>$itemdescription<br><a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' title='".$data['photo_title']."' class='side'> <img src='".BASEDIR."images/photoalbum/album_".$data['album_id']."/".$data['photo_thumb1']."' border='2' /></a><br />\n";
echo "</td>\n";
$table_nummer++;
}
#echo "<a href='".BASEDIR."photogallery.php?photo_id=".$data['photo_id']."' title='".$data['photo_title']."' class='side'>$itemdescription</a>\n"; //
}
closeside();
}
?>
Dziękuję |
|
|
|
bartek124 |
Dodany dnia 13.03.2009 20:15:41
|
Weteran
Postów: 3264 Pomógł: 236
v7.02.06 Data rejestracji: 26.05.2007 12:25
|
Najlepiej od razu w zapytaniu definiować które dane chcemy wyciągnąć, a które nie, ponieważ później generuje się mniejsza tablica z danymi oraz potrzebujemy mniej kombinacji w kodzie, aby pokazać tylko to, co chcemy.
Nie pomagam na komunikatorach oraz PW!
|
|
|
|
Kopciak77 |
Dodany dnia 13.03.2009 20:29:04
|
Przedszkolak
Postów: 87 Ostrzeżeń: 3
Data rejestracji: 08.08.2008 20:40
|
bartek124 napisał/a:
Najlepiej od razu w zapytaniu definiować które dane chcemy wyciągnąć, a które nie, ponieważ później generuje się mniejsza tablica z danymi oraz potrzebujemy mniej kombinacji w kodzie, aby pokazać tylko to, co chcemy.
Dzięki zrobione i nawet to jest proste
Edytowane przez Kopciak77 dnia 15.03.2009 22:20:23
|
|
|