Mam dwa nastepujace problemy. W tym poscie opisze pierwszy z nich.
1. Mam na mysli zliczanie rekordow w bazie przy danych warunkach
Sprawa wyglada nastepujaco
Mam relacyjna baze danych (mysql) o nazwie gazety z takimi oto tablicami:
*Tablica gazeta
gazeta_id int(11)
tytul_id int(11)
rocznik int(11)
numer int(11)
numerwew varchar(255)
rodzaj_id int(11)
sklad varchar(255)
grafika varchar(255)
stan int(11)
ilosc int(11)
*Tablica kraj
kraj_id int(11)
nazwakraju varchar(255)
e_order int(11)
*Tablica rodzaj
rodzaj_id int(11)
rodzajnazwa varchar(255)
e_order int(11)
*Tablica tematyka
tematyka_id int(11)
tematykanazwa varchar(255)
e_order int(11)
*Tablica tytul
tytul_id int(11)
tytul varchar(255)
e_order int(11)
stantytulu varchar(255)
tematyka_id int(11)
kraj_id int(11)
Menu generuje przez php na zasadzie najpierw strona.php?tematyka=$rekord['tematyka_id'] a nastepnie na nastepnej stronie pobieram tematyke getem
I tak podzielilem strony na menu ze wzgledu na tematyke
wygenerowalem tytuly. Po kliknieciu na tytul wygenerowalem roczniki owych tytulow
po kliknieciu na roczniki generuje poszczegolne gazety (liste) a nastepnie dany numer gazety
Problem pojawil sie kiedy probuje w liscie rocznikow wygenerowac obok rocznika ilosc gazet w danym roczniku wychodza mi jakies bzdury. Ponizej wklejam swoj kod i prosze o pomoc w znalezieniu bledu.
<? $_GET['tematyka_id'] = $tematyka; $_GET['tytul_id'] = $tytul; echo '<td colspan="5" width="845"><div align="left"><a href="gazety.php">Gazety</a> - <a href="gazetyzaz?tematyka='.$tematyka.'">Tytuły</a></div></td>'; ?> <tr class="nbb"> <td width="45"><div align="center">Nr.</div></td> <td width="300"><div align="center">Rocznik</div></td> <td width="200"><div align="center">Rodzaj</div></td> <td width="100"><div align="center">Ilo¶ć</div></td> <td width="200"><div align="center">% posiadania</div></td> </tr> <? $zapytanie = "SELECT * FROM tytul, gazeta, rodzaj, tematyka WHERE tytul.tematyka_id=temat
yka.tematyka_id AND gazeta.tytul_id=tytul.tytul_id AND gazeta.rodzaj_id=rodzaj.ro
dzaj_id AND tematyka.tematyka_id='$tematyka' AND tytul.tytul_id='$tytul' ORDER BY rocznik DESC"; $i = 0; { if($rocznik2[$rekord['rocznik']] == 1){ echo '<td width="300"><div align="center"><a href="gazetyrocznik.php?tematyka='.$tematyka.'&tytul='.$tytul.'&rocznik='.$odnosnik.'">'.$rekord['rocznik'].'</a></div></td>'; $pytam = "SELECT Count(gazeta_id) FROM tytul, gazeta, rodzaj, tematyka WHERE tytul.tematyka_id=tematyka.tema
tyka_id AND gazeta.tytul_id=tytul.tytul_id AND gazeta.rodzaj_id=rodzaj.rodzaj_id
AND tematyka.tematyka_id='$tematyka' AND tytul.tytul_id='$tytul' AND rocznik='$odnosnik'"; } } ?> </table>
Tak naprawde nie zle dziala tylko kod od drugiego zapytania ($pytam). Co ciekawe w phpmyadmin w sql wrzucilem zapytanie zamieniajac zmienne na odpowiednie i okazuje sie ze zapytanie jest dobrze.
Oto co mi zwrocil sql
zapytanie SQL:
SELECT Count( gazeta_id ) FROM tytul, gazeta, rodzaj, tematyka WHERE tytul.tematyka_id = tematyka.tematyka_id AND gazeta.tytul_id = tytul.tytul_id AND gazeta.rodzaj_id = rodzaj.rodzaj_id AND tematyka.tematyka_id = '3' AND tytul.tytul_id = '2' AND gazeta.rocznik = '2005';
Cytat
Count(gazeta_id)
226
226
Nie rozumiem dlaczego zatem echo '<td width="200"><div align="center">'.Count('gazeta_id').'</div></td>'; zwraca mi liczby 147, 0 ,1 albo nic nie zwraca i nie wypisuje bledu
Bardzo prosze o informacje dlaczego tak jest oraz jesli to nie jest problem jak powinno to wygladac w moim kodzie.
Z powarzaniem
Zicher

Poza [ b ] mamy też [ php ] i [ sql ]. Proszę używać pełnego zestawu tagów bbCode.
~mike_mech