Marusz
23.05.2003, 22:14:00
Witam grupowiczow. Zaczne od petli. Napisalem sobie prosty skrypt newsowy. No i gdy chce wyswietlic sobie 10 newsow znajdujacych sie w bazie danych, wpisuje:
[php:1:08b8bdfb14]<?php
for($i="1"; $i<="10"; $i++){
$wyn = mysql_fetch_assoc($zap);
echo "ID: $wyn[ID]" . "<br>";
echo "Dnia" . " $wyn[data] " . "newsa napisal " . "$wyn[autor] (<a href='mailto:$wyn[email]'>$wyn[email]</a>)" . "<br>";
echo "Temat: " . "$wyn[temat]<br><br>";
echo "Tresc:<br> " . "$wyn[tresc]<br>";
echo "<a href='$PHP_SELF?action=wiecej&id=$wyn[ID]'>wiecej</a><br>";
echo "<br><br>";
}
?>[/php:1:08b8bdfb14]
Wszystko by było fajnie, gdyby tych newsów w bazie było 10... ale nie ma. W przypadku 2 newsow wyswietla je i 8 pustych pol ID, email, etc. Probowalem z petla while, ale za to ta bedzie mi wyswietlac wszystkie newsy ktore beda znajdowac sie w bazie (a wiadomo, ze powyzej 15stu moze to dziwnie wygladac). Jak sie uporac z tym problemem?
Druga sprawa to popularne readmore albo showmore w newsie. News zbudowany jestz tematu, krotkiej tresci zapowiadajacej co bedzie sie dzialo i z linku otwierajacego calosc. Wszystko dobrze, ale jak zrobic, aby po kliknieciu na przycisk wiecej, znikaly wszystkie newsy, pozostawal ten do ktorego nalezy przycisk i rozwinieta tresc? Zdaje sobie sprawe, ze mozna to zrobic za pomoca dwoch stron, ale interesuje mnie, jak poradzic sobie z tym problemem majac do dyspozycji tylko jedna strone.
Dziekuje za odpowiedzi.
spenalzo
23.05.2003, 22:27:37
Hmmm, aby nie wyświetlać pustych miejsc dodaj sobie warunek if()
[php:1:8c983d0899]<?
for($i="1"; $i<="10"; $i++)
{
$wyn = mysql_fetch_assoc($zap);
if(!empty($wyn[tresc]))
{
echo "ID: $wyn[ID]" . "<br>";
echo "Dnia" . " $wyn[data] " . "newsa napisal " . "$wyn[autor] (<a href='mailto:$wyn[email]'>$wyn[email]</a>)" . "<br>";
echo "Temat: " . "$wyn[temat]<br><br>";
echo "Tresc:<br> " . "$wyn[tresc]<br>";
echo "<a href='$PHP_SELF?action=wiecej&id=$wyn[ID]'>wiecej</a><br>";
echo "<br><br>";
}
}
?>[/php:1:8c983d0899]
Natomiast żeby korzystać z jednej strony przy wyświetlaniu listy newsów skorzystaj z prostej pętli if()
[php:1:8c983d0899]<?
if(!empty($HTTP_GET_VARS["nid"]))
{
# tutaj wyświetlanie całości newsa
}
else
{
# tutaj wyświetlanie listy
}
?>[/php:1:8c983d0899]
Oczywiście aby to działało przekazujesz link z listy wraz ze zmienna $nid która oznacza ID newsa. Potem wyciągasz z bazy news z takim ID i go wyświetlasz. Nazwa zmiennej $nid jest oczywiście przykładowa.
50 zł się należy :-P
DeyV
24.05.2003, 08:57:48
Dużo łatwiej jest inaczej...
[php:1:783bf67d87]<?php
$pyt = "sele ..... LIMIT $od , $ile " ;
$wynik = mysql_query($pyt);
while ($wyn = mysql_fetch_assoc($zap) ){
.....
.....
}
?>[/php:1:783bf67d87]
Project
24.05.2003, 09:01:43
A ja na ten sam topic odpoiwadalem na forum php
:(
BEZ SENSU!!!
Dlaczego ktos zaklada 2 takie same topici na roznych forach??
To bez sensu...
i znowu na daremne sie napisalem
:(((((((((
Marusz
24.05.2003, 14:43:32
Mea culpa, mea culpa... Jestem idiota
Kiedy pisalem posta i wyslalem go, to stwierdzielm, ze cos musialo pojsc nie tak, skoro go nie moge znalezc na forum (a czytam tylko
http://forum.php.pl/viewforum.php?f=1, czasem zerkam na inne). Wieczorem stwierdzilem, ze musialem zamiast Wyslij wcisnac Podglad i stad to zamieszanie. Przepraszam! To przez ten cholerny upal. Pozdrawiam.