ugrás a tartalomhoz

Teljesen érthetetlen probléma (egyszerű értékátadásnál)

Anonymous · 2005. Május. 16. (H), 19.01
hello!

Szóval van egy egyszerű fórum scriptem, amiben az oldalakra bontást akarom megoldani 20 hozzászólásonként. Most kezdtem a php-t, szóval ez még nagy feladat és biztos nem a legegyszerűbb a script.

A lényeges rész az ez:

while ($hsz_info = mysql_fetch_array($hsz_lekerd_eredm)) {
$hsz_azon = $hsz_info['hsz_azon'];
//tömbbe tesszük a hozzászólások azonosítóit
$b[$k] = $hsz_azon;
$k++;
print "hsz_azon: " . $hsz_azon . "| ";
$hsz_szoveg = nl2br(stripslashes($hsz_info['hsz_szoveg']));
$hsz_letrejotte = $hsz_info['fmt_hsz_letrejotte'];
$hsz_bekuldoje = stripslashes($hsz_info['hsz_bekuldoje']);
print "b[k]: " . $b[$k] . "| ";

Na most a baj a következő: itt a $hsz_azon kap értéket (és jó értéket kap mindig), amit át kéne adnia a $b tömb elemeinek, de a $b tömb üres végig! Elvileg jó a script, mégsem kap értéket. MIÉRT???

online megnézhetitek: http://gytk.atw.hu/includes/forum/temalista_link.php (bármelyik témára kattintva) (ott ki vannnak írva a problémás változók értékei is)

Előre is köszi! (és bocs, ha nagyon egyszerű a megoldás)
 
1

Értéknövelés

Török Gábor · 2005. Május. 16. (H), 19.42

$b[$k] = $hsz_azon;
$k++;
// ...
print "b[k]: " . $b[$k] . "| ";
Értéket adsz $b tömb $k-adik elemének, majd kiíratod a $k+1-edik elemét, ami minden bizonnyal üres, ezért nem látsz semmit az oldalon. A kiíratás után növeld $k értékét.

--
slink
http://20y.hu/
2

köszönet és nagyobb probléma

Anonymous · 2005. Május. 16. (H), 20.14
Köszönöm a választ, ez meg is oldódott, de ez volt a kisebbik probléma, mert a nagyobbik az az, hogy nem jelennek meg a hozzászólások a következő feltétel után:

$kisebb_hatar = 1;
$nagyobb_hatar = 20;
//viszgáljuk, hogy azokat írja csak ki, ami erre az oldalra tartozik
if ( ($hsz_azon >= $b[$kisebb_hatar]) && ($hsz_azon <= $b[$nagyobb_hatar])) {
print "baba";
...
}
Ez a kód az előző után van közvetlenül.

És nem értem, hogy miért nem megy bele, hiszen az összes érték a két megadott szám közé esik. Valami ötlet?
3

Mit is?

Török Gábor · 2005. Május. 16. (H), 20.36
Ezzel a feltétellel pontosan mit is szeretnél vizsgálni? Ha kiolvasod az első hozzászólást, akkor a $b tömbnek pontosan egy eleme lesz (0-dik indexű). Utána pedig a feltételben olyan elemek értékei között vizsgálod (első és 20-dik index), amelyek még nincsenek is definiálva.

--
slink
http://20y.hu/
4

bocs, lemaradt...

Anonymous · 2005. Május. 16. (H), 20.44
Nem, az is az 1.től kap értéket, mert a forrás így néz ki:
$k = 1;
while ($hsz_info = mysql_fetch_array($hsz_lekerd_eredm)) {
...

Csak először nem tartottam fontosnak beletenni a kiiratás megoldásához.
Valami más ötlet? (amúgy akkor is mennie kellene, csak figyelmen kívül hagyná az 0. elemet.)
5

Lásd előző

Török Gábor · 2005. Május. 16. (H), 20.49
Időközben szerkesztettem az előbbi hozzászólásomat, mert rájöttem, hogy nem a kérdésedre válaszoltam, közben te pedig arra válszoltál. Nézd meg az előzőt, légy szíves.

--
slink
http://20y.hu/
7

köszönöm!

Anonymous · 2005. Május. 16. (H), 22.35
Köszönöm szépen a segítséget!
A tanácsok alapján szinte a fél scriptet át kellett írnom, de mostanra sikerült és végre működik a fórum és a lapozás is:)))

Akinek kedve van, megtekintheti a http://gytk.atw.hu címen!

Bye!

Danci
6

Helyes

tiny · 2005. Május. 16. (H), 20.53
Helyes kód:

$kisebb_hatar=1;
$nagyobb_hatar=20;

If (($hsz_azon >= $kisebb_hatar) && ($hsz_azon<=$nagyobb_hatar))
{
//...
}
Hiba:
A baj az volt, hogy a $b[] tömb elemeit vizsgáltad, nem pedig a határértéket.
Üdv:
Mr.Tiny