Pereiti prie turinio

PHP neišeina priskirti komentaro postui


Rekomenduojami pranešimai

Taigi ,pradėjau ekperimentuoti ir pabandžiau padaryti socialinio tinklo tipo postus na ir po jeis komentarus,ir susidūriau su problema kurios niekaip jau dvi dienas neišsprendžiu ir jau galvoju ,kad gal ir bloga mintis buvo pradėti vėl tyrinėti ir mokytis programuoti ,tuo labiau bijojau rašyti čia ir būti pasmerktam dėl visokių PDO nebūvimu netvarkingų skriptų ir panašiai ,bet visgi problema tame paimu postus juos man gražiai atvaizduoja komentarus parašo gražiai įterpia į duomenų bazę ,bet kai reikia juos išvesti išveda tik vieną postą paskutinį ir šalia jo vieną komentarą ar du kiek buvo priskirta tam postui,ir nustoja sistema kitus postus rodyti ,nors prieš tai rodė. Įtariu ,kad kažką blogai su while darau ,bet galva jau tiek pavargo ,kad žiūriu ir nebesusigaudau ,tad jei kuris padėtumėt būtų didelė padėka.

 

//paimam visus postus



$zinpsl = $_GET["zinpsl"];
if(!$n) { $one = 7; } $max_entries = "$one";
$total = mysql_num_rows(mysql_query("SELECT * FROM `posts`,`soc_vartotojai` WHERE id = user_id_p ORDER BY `post_id` DESC"));

if (!$zinpsl){$zinpsl=1;}
$start=($max_entries * $zinpsl)-$max_entries;
if ($total <= $max_entries){$num_page=1;}
else if (($total % $max_entries)==0){ $num_page=$total/$max_entries; } else {$num_page=$total/$max_entries + 1;}
$sks=($zinpsl-1)*$max_entries;

if($total <= 0){echo "<br/>Įrašų neturime<br/>";}
$query = "SELECT * FROM `posts`,`soc_vartotojai` WHERE id = user_id_p ORDER BY `post_id` DESC LIMIT $start, $max_entries";
$result = mysql_query($query) or die ("Nepavyko įvygdyti užklausos");
while ($row = mysql_fetch_array($result))
{
$id = $row["id"];
$post_id = $row["post_id"];
$profiliofoto = $row["profiliofoto"]; 
$vardas = $row["vardas"]; 
$pavarde = $row["pavarde"]; 
$status = $row["status"]; 
	$time_ago = $row['status_time'];
						echo '
<div id="post-show" class="post-show">';

echo '
<div class="post-show-inner">
<div class="post-header">
<div class="post-left-box">
<div class="id-img-box"><img src="'.$row['profiliofoto'].'"></img></div>
div class="id-name">
<ul>
<li><a href="#">'.$row['vardas'].' '.$row['pavarde'].'</a></li>
<li><small>'.$get->timeAgo($time_ago).'</small></li>
</ul>
</div>
</div>
<div class="post-right-box"></div>
</div>

<div class="post-body">
<div class="post-header-text">
'.$row['status'].'
</div>'.( ($row['status_image'] != 'NULL') ? '<div class="post-img">
<img src="'.$row['status_image'].'" class="art-lightbox"></img></div>' : '').'
<div class="post-footer">
<div class="post-footer-inner">
<ul>
<li><img src="images/patinka.png" alt=\"patinka\"/> <a href="#">Patinka</a></li>
<li><img src="images/komentuoti.png" alt=\"komentuoti\"/> <a href="#">Komentuoti</a></li>
<li><img src="images/dalintis.png" alt=\"dalintis\"/> <a href="#">Pasidalinti</a></li>
</ul>	
</div>
</div>



</div>';


//prasideda komentaru langas su komentarais///			



?>
<form action="<?php echo "tinklas.php?slapta=$slapta&vardas=$vrd&pavarde=$prd&post_id=$post_id&puslapis=komentuoti"; ?>" method="post"> 							
<div class="container">
 <img src="<?php echo $data['profiliofoto'];?>" alt="Avatar" style="width:30px;">
 <textarea  name="komentaras" style="height:40px; width:315px;" placeholder="Jūsų komentaras" ></textarea>
<div class="right-box">
<ul>

<li><input type="submit" name="komentuoti" value="Komentuoti" class="btn2"/></li>
</ul>
</div>

</div>
	</form>	


<?php



//bandom sukurti puslapiavima komentarams ir paimti komentarus is bazes priskiriant postui


$psl = htmlspecialchars($_GET['p'], ENT_QUOTES);




if(!$h) { $zinuciu = 5; } $max_entries = "$zinuciu";
$total = mysql_num_rows(mysql_query("select * from `komentarai` WHERE post_id='$post_id' ORDER BY laikas"));




if (!$psl){$psl=1;}
$start=($max_entries * $psl)-$max_entries;
if ($total <= $max_entries){$num_page=1;}
else if (($total % $max_entries)==0){ $num_page=$total/$max_entries; } else {$num_page=$total/$max_entries + 1;}
$sks=($psl-1)*$max_entries;

$sks=($psl-1)*$max_entries;
if($total <= 0){echo "<center><br/>Komentarų nėra.Būk pirmas(-a)!</center><br/><br/>";}



$query = "select * from `komentarai` WHERE post_id='$post_id' ORDER BY id DESC LIMIT $start, $max_entries";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_array($result))
{

$id = $row["id"];
$post_i = $row["post_id"];
$kas = $row["kas"];
$komentaras = $row["komentaras"];
$data = $row["laikas"];




//isvedam gauta info is duomenu bazes							

echo "									
<div class=\"container\">
 <img src=\"$profiliofoto\" alt=\"Avatar\" style=\"width:40px;\">
 <p><a href=\"#\"><b>$kas</b> </a> $komentaras</p>";

echo "  <span class='time-right'>$data</span>";
echo "
</div>
<img src=\"images/kompatinka.png\" alt=\"patinka\"/> <a href=\"#\">Patinka</a>  <img src=\"images/komatsakyti.png\" alt=\"komentuoti\"/> <a href=\"#\">Atsakyti</a>";



}


echo '

</div>';







echo '</div><br/>';




}



     }

Redagavo lapius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

$max_entries = "$zinuciu";

 

bandei kabutes panaikinti aplink $zinuciu?

 

edit: nvm dvigubos kabutės nekeičia reikšmės.

Labas,taip bandžiau šį variantą nieko. Aš įtariu ,kad gal jis nesupranta negauna id pagal kurį priskirti nes viename while suku kitą while bet nesu tikras

Redagavo lapius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Keliauji laiku? :OO 2018 metais niekas nenaudoja mysql ir šiaip naujoje PHP versijoje (7.x) mysql_ extension yra ištrintas, todėl jeigu atsinaujintum php versiją arba tiesiog WAMP ar XAMP ar bet ką tu ten naudoji, tau tiesiog neveiktų niekas.

 

O šiaip, jeigu kalbant į temą, tai spėju tau neveikia, nes turi viena while su tokiu pačiu kintamuoju $row viduje kito while su kintamuoju tokio pačio pavadinimo, todėl antras while overwritina ir išeina, kad rodo tik vieną postą. Šiaip nežinau, galbūt problema yra ne čia, bet pabandyt verta.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

aaaaaaa taip problema pas tave dėl to greičiausiai

sunku biški pasakyti kai viskas tokiu formatu ir nesimato kur kas baigiasi

jei tas antras ciklas yra pirmame ciklei tai tu pakeiti $result = mysql_query($query); reikšmę. Pabandyk pervadinti šitą antrą į $result2 ar kažkas pan.

 

pvz:

$query = "SELECT * FROM `posts`,`soc_vartotojai` WHERE id = user_id_p ORDER BY `post_id` DESC LIMIT $start, $max_entries";
$result = mysql_query($query) or die ("Nepavyko įvygdyti užklausos");
while ($row = mysql_fetch_array($result))
{
.....

$query2 = "select * from `komentarai` WHERE post_id='$post_id' ORDER BY id DESC LIMIT $start, $max_entries";
$result2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($result2))
{
$id = $row2["id"];
$post_i = $row2["post_id"];
$kas = $row2["kas"];
$komentaras = $row2["komentaras"];
$data = $row2["laikas"];
   ....

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Keliauji laiku? :OO 2018 metais niekas nenaudoja mysql ir šiaip naujoje PHP versijoje (7.x) mysql_ extension yra ištrintas, todėl jeigu atsinaujintum php versiją arba tiesiog WAMP ar XAMP ar bet ką tu ten naudoji, tau tiesiog neveiktų niekas.

 

O šiaip, jeigu kalbant į temą, tai spėju tau neveikia, nes turi viena while su tokiu pačiu kintamuoju $row viduje kito while su kintamuoju tokio pačio pavadinimo, todėl antras while overwritina ir išeina, kad rodo tik vieną postą. Šiaip nežinau, galbūt problema yra ne čia, bet pabandyt verta.

Gal ir keliauju laiku bandžiau aš t PDO mokytis sudėtingas reikalas tas objektinis programavimas kadangi į programavimą žengiau 2002 metais kažkur ir po keletos chatų nebeužsiemiau programavimu žinios taip ir liko tame laike ,dabar for fun bandau kažką kurti daryti kas man patinka ir tuo pačiu bandau tobulintis kažkiek ,bet liaudies išmintis byloje ,kad pilna puodynę sunku pripildyti naujo vandens ,tai man labai sunkiai imasi visi pdo aišku mysqli lengviau dairiau ir registracijas ir priminumus su juo bet vat kai eina sudėtingi darbai tai pdo man nesigauna todėl jo keliauju laiku :D. Patarimas suveikė super ačiū ,aišku dar nesuprantu kodėl man avatarus blogai rodo ,betč ia jau nedrįsiu net klausti nors norėtūsi ,bet ir taip gėda

 

aaaaaaa taip problema pas tave dėl to greičiausiai

sunku biški pasakyti kai viskas tokiu formatu ir nesimato kur kas baigiasi

jei tas antras ciklas yra pirmame ciklei tai tu pakeiti $result = mysql_query($query); reikšmę. Pabandyk pervadinti šitą antrą į $result2 ar kažkas pan.

 

pvz:

$query = "SELECT * FROM `posts`,`soc_vartotojai` WHERE id = user_id_p ORDER BY `post_id` DESC LIMIT $start, $max_entries";
$result = mysql_query($query) or die ("Nepavyko įvygdyti užklausos");
while ($row = mysql_fetch_array($result))
{
.....

$query2 = "select * from `komentarai` WHERE post_id='$post_id' ORDER BY id DESC LIMIT $start, $max_entries";
$result2 = mysql_query($query2) or die(mysql_error());
while ($row2 = mysql_fetch_array($result2))
{
$id = $row2["id"];
$post_i = $row2["post_id"];
$kas = $row2["kas"];
$komentaras = $row2["komentaras"];
$data = $row2["laikas"];
   ....

Labai ačiū ,postus rodo

Redagavo lapius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Gal ir keliauju laiku bandžiau aš t PDO mokytis sudėtingas reikalas tas objektinis programavimas kadangi į programavimą žengiau 2002 metais kažkur ir po keletos chatų nebeužsiemiau programavimu žinios taip ir liko tame laike ,dabar for fun bandau kažką kurti daryti kas man patinka ir tuo pačiu bandau tobulintis kažkiek ,bet liaudies išmintis byloje ,kad pilna puodynę sunku pripildyti naujo vandens ,tai man labai sunkiai imasi visi pdo aišku mysqli lengviau dairiau ir registracijas ir priminumus su juo bet vat kai eina sudėtingi darbai tai pdo man nesigauna todėl jo keliauju laiku :D

Tai nebutinai PDO :D Tiesiog mysqli_ naudok :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Viskas kaip ir veikia apart puslapiavimo nebėra nuorodos rodyti daugiau

EDIT:problema ta pati kintamūjų pavadinimus pakeisti reikėjo :D

 

Liko tik avatarus susitvarkyt ir bus galima galvą pailsint po dviejų dienų galvojimo :D

Redagavo lapius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

kuom tas kodas blogas pas jį? čia gi plain php

 

- Readability (Variable naming - tai angliskai, tai lietuviskai ir kazkokie neaiskus trumpiniai, Indentation)

- PHP persipines su HTML, SQL

- Form actiono URL

- Center tagas

- Vietoj kodo kruvos, galima isskaidyt bent i atskiras funkcijas

- t.t.

 

Yra kur tobulet.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...