Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: 2 pytania: petla i "showmore" w skrypcie newsowym
Forum PHP.pl > Forum > Gotowe rozwiązania
Marusz
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
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
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
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
Mea culpa, mea culpa... Jestem idiota winksmiley.jpg 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.
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-2024 Invision Power Services, Inc.