Wartość zwracana przez zapytanie COUNT

0

Hej.

Może i banalne pytanie ale mam problem z takim fragmentem kodu:

        $query = "SELECT COUNT(*) FROM `users` WHERE `mail` LIKE '".$email."'";				
						
	if($result = mysqli_query($db, $query))
	{
		$result = (db_result_to_array($result)[0]['COUNT(*)']);
		mysqli_close($db);
		return $result;
	}

Na localhoscie wszystko działa dobrze ale jak wrzuciłem na serwer nie ładuje mi się strona i wyświetla się błąd mówiący, że w linijce:

$result = (db_result_to_array($result)[0]['COUNT(*)']);

jest unexpected '['.

0

db_result_to_array()

Co to za metoda?

0

To funkcja zmieniająca odpowiedź z SQL w tablicę, pewnie są lepsze metody, ale kiedyś tak się nauczyłem i zawsze jej używam :D

function db_result_to_array($result)
{
	$array = array();
	for($licznik = 0; $row = mysqli_fetch_assoc($result); $licznik++){
		$array[$licznik] = $row;
	}
	return $array;
}
0

Napisz, jaką masz wersję PHP na localu oraz jaką na serwerze.

0

Na localu: 5.5.12 a na serwerze 5.4.23 a tutaj widać problem:
http://ntmmed.webd.pl/tiptop/

Trochę to dziwne bo podczas ładowania indexu w ogóle ta funkcja nie jest wywoływana.

0

Wystarczy, że ją dołączysz za pomocą include/require i nawet, gdy jej nie wywołasz to i tak zostanie Ci wyrzucony błąd.

0

Musisz zrezygnować ze swojej metody obsługi danych z bazy. Skorzystaj z tego, co podesłał Ci @Tumeg i przyjmij podejście obiektowe, a nie strukturalne, które tam wyżej prezentujesz. Poradzisz sobie, czy podesłać Ci przykładowy kod, na którym byś się mógł wzorować?

0

Byłbym bardzo wdzięczny za jakiś przykład :)

1

Prosty przykład. Można by to ubrać w jakąś konkretną klasę, w tej chwili jest to instancja klasy mysqli z dalszym jej wykorzystaniem.

Czy programujesz w ogóle obiektowo? Jeśli nie, to wątpie, żeby Ci ten przykład coś mówił ;)


<?php

    $mysqli = new mysqli("host", "user", "password", "db_name");

    $query_txt = "SELECT...";

    if(!$mysqli->connect_errno)
    {
        if($result = $mysqli->query($query_txt))
        {
            while($row = $result->fetch_array())
            {
                //Obsluga danych z poszczegolnych wierszy

                //$row to w tej chwili tablica asocjacyjna
            }
        }
        else
        {
            //Obsluga bledu zapytania
        }
    }
    else
    {
        //Obsluga bledu polaczenia
    }

?>

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