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

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×