Wątek przeniesiony 2014-11-22 12:16 z PHP przez dzek69.

Zwracanie ilości wierszy w kolumnie w bazie MySQL

0

Cześć wam. Wiecie może jak mogę pobrać ilość wierszy kolumny w bazie mysql? Chciałbym pobrać wszystkie nicki użytkowników z bazy i zapisać je przy pomocy echo, bez tej danej nie mogę zrobić pętli do czytania userów.

for($i = 0;$i < ??;i++)
{
echo .$user[$i].'<br>';
}

Nie wiem nawet czy to dobre rozwiązanie, na co dzień nie programuje w PHP.

0

Nie potrzebna Ci ta informacja. Wystarczy rzucić pobraną tablicę do pętli foreach. Ew. jeżeli Ci bardzo zależy to sizeof($user). Taką informację możesz też pobrać bezpośrednio z zapytania SQL : http://php.net/manual/en/mysqli-result.num-rows.php ,a w przypadku używania klasy PDO http://php.net/manual/en/mysqli-result.num-rows.php . Co nie zmienia faktu, że wydaje się to w tej sytuacji zbędne.

0

Albo - w przypadku tradycyjnego mysqli - możesz jeszcze pracować po prostu w pętli while.

query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";

if ($result = $mysqli->query($query)) {

    /* fetch object array */
    while ($row = $result->fetch_row()) {
        printf ("%s (%s)\n", $row[0], $row[1]);
    }

    /* free result set */
    $result->close();
}
0

Znalazłem coś takiego i nie działa mi ta pętla, poza tym MYSQL_ASSOC jak i BOTH, NUM nie wchodzi w notepadzie++, nie mam autouzupełniania z tych rzeczy.

	$query = mysql_query("SELECT nick FROM online");
	
	while($ludzie = mysql_fetch_array($query, MYSQL_ASSOC));
	{
		echo '<br>'.$ludzie['nick'];
	}

widzicie tu jakiś błąd? Według tego starałem się zrobić. http://php.net/manual/en/function.mysql-fetch-array.php

1

Zamknąłeś przebieg pętli while zaraz po zdeklarowaniu warunku. Najprawdopodobniej wkradła Ci się literówka.

while($ludzie = mysql_fetch_array($query, MYSQL_ASSOC));

(usuń średnik na końcu)

Notepad++ to nie IDE, żeby miało wszystkie zmienne globalne standardowych bibliotek.

dodanie znacznika <code class="php"> - @furious programming

0

Aż wstyd mi odpisywać, tak głupi błąd, no jakbym nie napisał to przysięgam, że chyba nie zauważyłbym tego nigdy. Dzięki ci bardzo!

Mam jeszcze takie pytanie odnośnie sesji, mam zapisywanie ludzi, którzy zalogowali się do tabelki online. Jeżeli sesja minie to jest usuwanie tego nicku z bazy, lecz jeżeli użytkownik zaloguje się i gdy sesja ma 10 min a użytkownik po 2 minutach wyłączy stronę to zostanie on w bazie online. Wiecie jak można temu zapobiec? Musi jakoś wykonać się skrypt ze strony użytkownika aby sprawdził czy sesja nie minęła ale jak ma się wykonać skoro użytkownik wyłącza stronę. Jakoś to z użyciem czasu zrobić?

0

Na zdarzenie window.onunload możesz wysłać ajaxowy request, który poinformuje serwer, że użytkownik zamknął stronę. Problem w tym, że wywoła się również jak użytkownik przejdzie na inną podstronę. Ja swego czasu pisałem coś w rodzaju keepAlive. Klient (przeglądarka) wysyłał co jakiś czas ajaxem informację "jeszcze tu jestem" do serwera, co przedłużało sesję php. Możesz też coś takiego zastosować do weryfikacji aktywności, sprawdzając ostatni sygnał od klienta.

1 użytkowników online, w tym zalogowanych: 0, gości: 1