Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z Limitem wyswietlanych wierszy
Forum PHP.pl > Forum > Bazy danych > MySQL
webmaster_tczew
Sprawa wygląda tak:

musze wyswieltic z tablicy artykuły naglowek artykułu a z tablicy galeria fotke do tego artykulu moje tabelki wygladaja tak:

[sql:1:4e281c71b6]CREATE TABLE `artykuly` (
`m` int(11) NOT NULL auto_increment,
`tekst_artykulu` text,
`naglowek` text,
`autor` varchar(100) default NULL,
`mail` varchar(100) default NULL,
`utworzony` datetime default NULL,
`dzial` varchar(60) NOT NULL default '',
PRIMARY KEY (`m`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `galeria` (
`m` int(11) NOT NULL auto_increment,
`foto` varchar(100) default NULL,
`opis` varchar(100) default NULL,
`dzial` varchar(60) default NULL,
PRIMARY KEY (`m`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;[/sql:1:4e281c71b6]

w wierszu dział jest identyfikator poszczegolnych artykulow i zdjec np gdy dodam artykul i nadam mu dzial=walentynki to kilka fotek do tego działu bedzie rowniez nosilo nazwe dzial=walentynki i chodzi mi o to aby wyswietlic tylko 1 foto do 1 artykulu bo czasem fotek jest wiecej probuje to tak zrobic ale wyswietla mi ile jest fotek id artykułów

To jest moj kodzik do tego zapytania

[php:1:4e281c71b6]<?php
$zapytanie = "SELECT * FROM galeria, artykuly";
$wynik = mysql_query ($zapytanie)
or die ("");

$wykonaj = mysql_query($zapytanie);
while($wiersz = mysql_fetch_object($wykonaj))

{
$dz = "".$wiersz['dzial']."";
$naz = "".$wiersz['nazwa']."";
$nag = "".$wiersz['naglowek']."";

$prod[0] = "".$wiersz['foto']."";
$img = $prod[0];

if ($dz == $naz)
{
echo "$nag";
echo "$img<br>";
}

}
?>[/php:1:4e281c71b6]

i wyswietla mi takie cos:

Walentynki 2004HPIM2728.JPG
Mikołajki 2003HPIM2726.JPG
Mikołajki 2003HPIM2722.JPG
Mikołajki 2003HPIM2733.JPG


a chciałbym aby wyswietliło:

Walentynki 2004HPIM2728.JPG
Mikołajki 2003HPIM2726.JPG

Jka ktos ma jakis pomysł aby zlimitowac ilosc takich samych wyswietlanych wierszy to prosiłbym o pomoc
Bakus
na końcu zapytania zastusuj:
[sql:1:3c25ba396b]LIMIT 1,1[/sql:1:3c25ba396b]
Foxx
Ale wtedy mu nie pobierze dalszych INNYCH kategorii, nie?
Jeżeli będzie kilka różnych - pobierze tylko nazwę pierwszej z brzegu...
Mogę się mylić bo jest późno smile.gif
spenalzo
Dodaj do zapytania może
[sql:1:0c8a55196f]... GROUP BY artykuly.dzial, galeria.dzial[/sql:1:0c8a55196f]
itsme
moja propozycja dodaj jeszcze jedn kolumne do tabeli galeria i nazwij ja domyslnie wstaw 1 przy fotce ktora ma siw wyswietlac.
Plusem jest to ze zawsze bedziesz wiedzial ktora sie wyswietli :-)

zapytanie
[sql:1:1f0f3a56b9]SELECT * FROM artykuly LEFT JOIN galeria ON (artykuly.dzial=galeria.dzial) where galeria.domyslnie=1[/sql:1:1f0f3a56b9]

Bledy w bazie
pole m winno sie nazywac odpowiednio do tabeli czyli id_artykuly i id_galeria ponadto jest to dziwnie polaczone dzialami ogolnie wyczuwal lekki balagan.

propozycja:
okreslic cele i ponownie zaprojektowac baze przynajmniej w ramach tych tabel
webmaster_tczew
Cytat
Bledy w bazie
pole m winno sie nazywac odpowiednio do tabeli czyli id_artykuly i id_galeria ponadto jest to dziwnie polaczone dzialami ogolnie wyczuwal lekki balagan.

propozycja:  
okreslic cele i ponownie zaprojektowac baze przynajmniej w ramach tych tabel


Bledów i balaganu nie ma w bazach poprostu one sa zaprojektowane zupelnie do czegos innego ale ja postanowilem danez z nich wykorzystac jeszcze do czegos innego winksmiley.jpg wiec tak to wyglada mysle ze ten pomysl z 1 i kolumna domyslna jest bardzo dobry tylko teraz musze cosik napisac aby mi 2 razy nie wpisywalo 1 do tego samego działu ale to juz sie da dzieki panowie za pomoc i szybką odpowiedz[/manual]
spenalzo
Cytat
moja propozycja dodaj jeszcze jedn kolumne do tabeli galeria i nazwij ja domyslnie wstaw 1 przy fotce ktora ma siw wyswietlac.  
Plusem jest to ze zawsze bedziesz wiedzial ktora sie wyswietli :-)

Ale przy dodawaniu musiałby albo usuwać wcześniejsze jedynki (z danej kat.) albo ignorować jedynke i zapisuwać jako zero - żeby nie było zdublowanych,
webmaster_tczew
Cytat
Cytat
moja propozycja dodaj jeszcze jedn kolumne do tabeli galeria i nazwij ja domyslnie wstaw 1 przy fotce ktora ma siw wyswietlac.  
Plusem jest to ze zawsze bedziesz wiedzial ktora sie wyswietli :-)

Ale przy dodawaniu musiałby albo usuwać wcześniejsze jedynki (z danej kat.) albo ignorować jedynke i zapisuwać jako zero - żeby nie było zdublowanych,


Własnie o to chodzi jak by tu zrobic aby nie dublowac jak cos wymysle to wkleje tu to moze komus to sie potem przyda
spenalzo
Cytat
Własnie o to chodzi jak by tu zrobic aby nie dublowac jak cos wymysle to wkleje tu to moze komus to sie potem przyda

Po prostu przed wykonaniem zapytania dodającego wykonaj wcześniej jedno, które ustawi wszystkie pola na 0 dla danej kategorii.
webmaster_tczew
mam dwa poysły do tego jedno podsunął mi spenalzo:

Cytat
Po prostu przed wykonaniem zapytania dodającego wykonaj wcześniej jedno, które ustawi wszystkie pola na 0 dla danej kategorii.


A nad drugim pomyslałem i doszedłem do wniosku ze mozna by bylo zrobic tak podczas dodania fotki chexboxa z mozliwoscia zaznaczenia ze to bedzie ta glowna fotka ktora bede chcial wyswietic jasli uznam ze to bedzie glowna to damy w polu 1 a jesli nie to 0 potem sktypcik sprawdzi mi czy czasem w dziale tym nie istnieje juz jakas rekord z 1 jesli istnieje to skrypt odesle ze fotka glowna juz istnieje i nie moge dodac kolejnej albo ale nie wiem jak do tego sie zabrac wykasuje mi z tego dzialu 1 i zamieni ja na 0 a nowe foto ktore bede mial zapisze z 1 smile.gif jak ktos ma jakies pomysły to piszcie winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.