• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

MySQL, PHP - nie wyświetla się ostatni rekord przy użyciu while

Object Storage Arubacloud
0 głosów
177 wizyt
pytanie zadane 29 września 2015 w PHP przez runway Użytkownik (640 p.)

Witam serdecznie.

function news_show_short()
{
	$newsquery = mysql_query("SELECT * FROM news ORDER BY id DESC");
	$rowidnews = mysql_fetch_array($newsquery);
	$postid = $rowidnews['id'];
	
	while($newsrow = mysql_fetch_array($newsquery))
	{
		$postid = $newsrow[0];
		$comloadquery = mysql_query("SELECT id FROM news_comments WHERE postid=$postid");
		$newsnumber = mysql_num_rows($comloadquery);
		$newsstring = '
		<h2>
			<a href="news.php?id='.$newsrow[0].'">'.$newsrow[1].'</a>
		</h2>
		<p class="lead">
			dodano przez <a href="index.php">'.$newsrow[3].'</a>
		</p>
		<p><span class="glyphicon glyphicon-time"></span> dodano: '.$newsrow[2].'</p>
		<p><span class="glyphicon glyphicon-book"></span> kategoria: '.$newsrow[7].'</p>
		<hr>
		<img class="img-responsive" src="'.$newsrow[6].'" alt="">
		<hr>
		<p>'.$newsrow[4].'</p>
		<a class="btn btn-primary" href="#">Read More <span class="glyphicon glyphicon-chevron-right"></span></a>
		<a class="btn btn-primary" href="#">Komentarze: '.$newsnumber.'</a>

		<hr>
		';
		echo ''. $newsstring .'';
	}
}

 

Problem tkwi w tym, że nie wyświietla się ostatni rekord dodany do bazy. Z 15 dodanych rekordów wyświetla się tylko 14 - news o id. 15 nie wyświetla się. Co tutaj jest nie tak? Z góry mówię, że mysql_ używam bo jest mi prościej, wiem, że teraz mysqli_ lepsze ale wiecie... ;p

2 odpowiedzi

0 głosów
odpowiedź 29 września 2015 przez Boshi VIP (100,240 p.)
Ten kod nie ma krzty sensu.

Druga pętla jest zależna od wyników z tabeli  news- widzisz tu analogie?  Kod  na śmietnik, do niczego więcej się nie nadaje.
komentarz 29 września 2015 przez writen Nałogowiec (29,060 p.)

Druga pętla jest zależna

Gdzie widzisz drugą pętlę?

 

komentarz 29 września 2015 przez Boshi VIP (100,240 p.)
Błąd, coś mi się przewidziało. Nie zmienia to faktu, że wyciąganie rekordow po id jest zależne od tabeli neews. Nie wspominając o innych udziwnieniach które chyba tylko autor rozumie;]

  Kod do śmietnika.
komentarz 29 września 2015 przez writen Nałogowiec (29,060 p.)
Mimo tego uważam, że warto wskazać gdzie leży błąd.
0 głosów
odpowiedź 29 września 2015 przez writen Nałogowiec (29,060 p.)

Po co ci ten zapis przed pętlą?

$rowidnews = mysql_fetch_array($newsquery);
$postid = $rowidnews['id'];

Usuń to.

Funkcja mysql_fetch_array pobiera pierwszy wiersz, przesuwa wskaźnik do przodu i przez to pętla liczy od następnego, pomijając poprzedni.

A gdy poprawisz kod i zacznie już działać, przepisz go korzystając z biblioteki mysqli lub PDO.

Podobne pytania

0 głosów
2 odpowiedzi 721 wizyt
+1 głos
4 odpowiedzi 166 wizyt
0 głosów
2 odpowiedzi 390 wizyt

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...