PHP Centeri avaleht Skriptikogu Küsimuste-vastuste leht Teadete vaatamine ja saatmine Foorum - koht küsimiseks Otsingumootor Siit saad infot meie kohta

Kasutajanimi:  
  Parool: 
  Registreeri!   Unustasid salasõna?

Foorumid Programmeerimine PHP & MySQL imelikul kombel osi kirjeid ei loeta välja
Autor Abi Postitus Abi

gamer

Postitusi: 138
Tase: 5
Olek: Offline

Hinnang: Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10Administratiivhinnang: 4/10
imelikul kombel osi kirjeid ei loeta välja

PHP kood:

if($_GET[fid]>&& $_GET[tid]==0){
$tulemus mysql_query("SELECT * FROM foorum_teemad where kaustaid='".$_GET['fid']."' ORDER BY id DESC;");
echo 
'<table border=0>';

while (
$kirje mysql_fetch_array($tulemus))
{

    
$tulemus2 mysql_query("SELECT * FROM foorum_vastused where teemaid='".$kirje['id']."' order by id ASC;");
    
$kokku mysql_num_rows($tulemus2);
    
$inimeseaeg mysql_query("SELECT * FROM kasutajad WHERE kasutajanimi='".$_SESSION['kasutaja']."' LIMIT 1;");
    while (
$inimaeg mysql_fetch_array($inimeseaeg))
{
    
$kontroll mysql_query("SELECT * FROM foorum_vastused WHERE teemaid='".$kirje['id']."' ORDER BY id DESC LIMIT 1;");
    while (
$kason mysql_fetch_array($kontroll))
{


$aeg=$kason["date"];

$jada explode(' ',$aeg);

$jada2 explode('-',$jada[0]);
$jada3 explode(':',$jada[1]);



$loppaeg=mktime($jada3[0], $jada3[1], $jada3[2], $jada2[1], $jada2[2], $jada2[0]);

$aeg2=$inimaeg["aeg"];
$jada1 explode(' ',$aeg2);

$jada22 explode('-',$jada1[0]);
$jada32 explode(':',$jada1[1]);





$loppaeg2=mktime($jada32[0], $jada32[1], $jada32[2], $jada22[1], $jada22[2], $jada22[0]);
if (
$loppaeg>$loppaeg2)
{
    
$pilt='foorum_uus.jpg';
    }else{
        
$pilt='pildid-leht/foorum.gif';
    }
    echo 
'<tr bgcolor=#9BBDF9><td><img src='.$pilt.'></td><td width=250><font size=-2><a href=index.php?page=foorum&koht=vaatateemat&fid='.$_GET['fid'].'&tid='.$kirje['id'].'>'.$kirje['pealkiri'].'</a></td><td width=50><font size=-2><div align="right"><i><a href=index.php?page=inimesed&koht=inimene&inimene='.$kirje['kasutajaid'].'>'.$kirje['kasutajaid'].'</a></div></i></td><td width=65><font size=-2><div align="right">'.$kokku.' vastust</div></td><td><font color=#000066 size=-2><div align="right">['.$kirje['date'].']</div></td></tr>';

}
}
}

echo 
'</table>';



nimelt lõplik kood ons elline, peaks kuvama foorumis teemad ja siis vastavalt kas teemas on uusi vastuseid muutma pilti. probleemiks on aga see, et ennem selle lõigu:

PHP kood:

$inimeseaeg mysql_query("SELECT * FROM kasutajad WHERE kasutajanimi='".$_SESSION['kasutaja']."' LIMIT 1;");
    while (
$inimaeg mysql_fetch_array($inimeseaeg))
{
    
$kontroll mysql_query("SELECT * FROM foorum_vastused WHERE teemaid='".$kirje['id']."' ORDER BY id DESC LIMIT 1;");
    while (
$kason mysql_fetch_array($kontroll))
{


$aeg=$kason["date"];

$jada explode(' ',$aeg);

$jada2 explode('-',$jada[0]);
$jada3 explode(':',$jada[1]);



$loppaeg=mktime($jada3[0], $jada3[1], $jada3[2], $jada2[1], $jada2[2], $jada2[0]);

$aeg2=$inimaeg["aeg"];
$jada1 explode(' ',$aeg2);

$jada22 explode('-',$jada1[0]);
$jada32 explode(':',$jada1[1]);





$loppaeg2=mktime($jada32[0], $jada32[1], $jada32[2], $jada22[1], $jada22[2], $jada22[0]);
if (
$loppaeg>$loppaeg2)
{
    
$pilt='foorum_uus.jpg';
    }else{
        
$pilt='pildid-leht/foorum.gif';
    }



ennem selle lõigu lisamist kuvati ilusasti kõik kirjed, nüüd aga kuvatakse vaid need kirjed mis olid sisse kantud ennems elle lõigu lisamist, uusi kirjeid aga ei näidata, jutt on küll segane, aga mina pol eveel lahendust leidnud, ehk on mõnel helgemal peal mingi mõte

edit: peaks ütlema et neil postitustel mida näidatakse on h:m:s vastavalt 0:0:0 kuna algselt kasutati ainult date't mysql'i salvestamisel, nüüdsest aga datetime

___________________________________________________
Tahad veebilehte? Ise ei oska/viitsi. Siin on sulle lahendus.
Klikka: http://www.zone.ee/danelahman/ ja saad omale soodsalt veebilehe.

29.10.2004 09:10:28 Vajutades siia näed kasutaja gamer profiili

yrgo
]}[¹@£$!"#%½¬$½

Postitusi: 67
Tase: 4
Olek: Offline

Hinnang: Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10Administratiivhinnang: 5/10
RE: imelikul kombel osi kirjeid ei loeta välja

kogu see kood on äärmiselt ebaefektiivselt  kirjutatud, ei viitsinud põhjalikumalt süvenema hakata. Kuid alljärgnevalt paar mõtet:

kõige lihtsam oleks sul kogu see osa koodist ümber kirjutada. Lisaks _on_ võimalik ühe sql päringuga võimalik ka mitmest tabelist korraga andmeid kätte saada, ning selliseid totakaid üksteise sisse kapseldatud while tsükleid ei tohiks ka teha. Põhimõtteliselt pärid sa iga kirjet hullupööra palju kordi.

teine hea idee, on kasutada võimalikult palju sql sisseehitatud funktsioone, näiteks aja formaatimiseks DATE_FORMATit jne, sest antud juhul käib sqli sees andete  convertimine tunduvalt kiiremini kui phps.

30.10.2004 19:09:15 Vajutades siia näed kasutaja yrgo profiili
Kokku: 25955 registreerunud kasutajat, 9711 teemat, 54603 postitust.
Täna on esmaspäev, 25. mai 2020. Kell on 08:50.

    Vaata selle lehe printerisõbralikku versiooni

Avaleht   -    Skriptikogu   -    Teated   -    Foorum   -    Reklaam   -    Tagasiside   -    Kasutamise reeglid

© Copyright 2002-2020 PHP Center. Kõik õigused reserveeritud.