Skocz do zawartości
Viva

Problem PHP, dodawanie myslq

Polecane posty

Witam,

 

Mam następujący problem, po użyciu kodu niżej nie wyświetla mi napisu Łącznie pobrań:

 

$result = $db->query("SELECT dcount FROM dle_files") or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$total = $row['SUM(dcount)'];
echo "Łącznie pobrań: $total";
}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

SUM jest funkcją SQL i to w zapytaniu należy ją umiećić np. SELECT SUM(dcount) AS suma FROM dle_files a potem odwołać się bez pętli do $row['suma']

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hmm, racja. Nie wiem jak tego nie zauważyłem.

Ale dalej nie działa...

$result = $db->query("SELECT SUM(dcount) FROM dle_files");
while($row = mysql_fetch_array($result))
{
$total = $row['dcount'];
echo "Łącznie pobrań: $total";
}

Taka wersja też

$result = $db->query("SELECT SUM(dcount) FROM dle_files");

$row = mysql_fetch_array($result);
echo "Łącznie pobrań: $row";
Edytowano przez Viva (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Hmm, racja. Nie wiem jak tego nie zauważyłem.

 

Ale dalej nie działa...

 

$result = $db->query("SELECT SUM(dcount) FROM dle_files");
while($row = mysql_fetch_array($result))
{
$total = $row['dcount'];
echo "Łącznie pobrań: $total";
}

Taka wersja też

 

$result = $db->query("SELECT SUM(dcount) FROM dle_files");

$row = mysql_fetch_array($result);
echo "Łącznie pobrań: $row";
$result = $db->query("SELECT SUM(dcount) as dcount FROM dle_files");
while($row = mysql_fetch_array($result))
{
$total = $row['dcount'];
echo "Łącznie pobrań: $total";
}

Powinno zadziałać

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Również próbowałem w ten sposób, nie ma nawet napisu Łącznie pobrań:

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość l3szcz

Usuń pętle while.

$result = mysql_query("SELECT SUM(dcount) as dcount FROM dle_files");
$fetch = mysql_fetch_array($result);
echo 'Łącznie pobrań: '.$fetch['dcount'];

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

 

Usuń pętle while.

 

$result = mysql_query("SELECT SUM(dcount) as dcount FROM dle_files");
$fetch = mysql_fetch_array($result);
echo 'Łącznie pobrań: '.$fetch['dcount'];

 

Pokazuje napis, liczby brak.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wcześniej łączysz się z bazą i mysql_query zwraca identyfikator wyniku a nie false?

SQL-kę puszczasz też ręcznie przez jakiegoś phpmyadmina żeby sprawdzić, że jest OK?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość l3szcz

Inaczej.. Korzystasz z DLE tak? Skorzystaj wiec z ich funkcji fetch :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wcześniej łączysz się z bazą i mysql_query zwraca identyfikator wyniku a nie false?

SQL-kę puszczasz też ręcznie przez jakiegoś phpmyadmina żeby sprawdzić, że jest OK?

 

Jak puszczam przez SQL normalnie zwraca sumę.

 

Dałem taki skrypt:

<?php
$link = mysql_connect('localhost','xxx','xxx');
if (!$link)
{
    die('Nie polaczono : ' . mysql_error());
}
echo 'Connected successfully';
mysql_query('SELECT * FROM dle_files');
?>

Z bazą łączy i wyświetla komunikat, ale danych nie pokazuje.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Prawidłowo, ten ostatni skrypt nie powinien wyświetlać danych - mysql_query niczego nie wyświetli.

Nawiązujesz połączenie, podajesz nazwę serwera, login i hasło. Potem pobierasz dane z tabeli. Brakuje tu informacji o bazie danych, z której próbujesz coś pobrać:

$rs = mysql_query('SELECT * FROM nazwa_bazy.dle_files');

while($row = mysql_fetch_array($rs))

{

var_dump($row);

}

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Teoretycznie poszło

Connected successfullyarray(2) { [0]=> string(3) "777" ["SUM(dcount)"]=> string(3) "777" } 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

$result = $db->query("SELECT SUM(dcount) as ilosc FROM nazwa_bazy.dle_files") or die(mysql_error());

while($row = mysql_fetch_array($result))

{

echo "Łącznie pobrań: {$row ['ilosc']}";

}

 

Tutaj też powinno pójść ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

$result = $db->query("SELECT SUM(dcount) as ilosc FROM nazwa_bazy.dle_files") or die(mysql_error());

while($row = mysql_fetch_array($result))

{

echo "Łącznie pobrań: {$row ['ilosc']}";

}

 

Tutaj też powinno pójść ;)

 

Też bym chciał :P

 

Tak jak wcześniej, brak liczby.

 

Zastanawiam się czy da się zrobić to za pomocą pętli while, np:

    $file_d = $row['dcount'];
    $files_dc += $file_d;
Edytowano przez Viva (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

var_dump($db);

 

To jest tylko zmienna CMS'a. Jak robię oddzielnie mysql_connect i daję mysql_query jest to samo.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Więc tabela jest pusta.

 

Skrypt:

$rs = mysql_query('SELECT SUM(dcount)FROM nazwa_bazy.dle_files');
while($row = mysql_fetch_array($rs))
{
var_dump($row);
}

Daje odpowiedź:

array(2) { [0]=> string(3) "782" ["SUM(dcount)"]=> string(3) "782" }
Edytowano przez Gość (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Aaaa używasz array..... więc [0] albo zamień array na assoc

$result = $db->query("SELECT SUM(dcount) as ilosc FROM nazwa_bazy.dle_files") or die(mysql_error());
while($row = mysql_fetch_assoc($result))
{
echo "Łącznie pobrań: {$row['ilosc']}";
}
$result = $db->query("SELECT SUM(dcount) as ilosc FROM nazwa_bazy.dle_files") or die(mysql_error());
while($row = mysql_fetch_array($result))
{
echo "Łącznie pobrań: {$row[0]}";
}
Edytowano przez zidek (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Zaloguj się, aby skomentować

Będziesz mógł dodać komentarz po zalogowaniu się



Zaloguj się

×