Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]zlicznie z tabeli
Forum PHP.pl > Forum > Przedszkole
paddy79
witam
potrzebuje zrobic cos takiego zeby na stronie pojawialy mi sie proste statystyki.Wyglada to mniej wiecej tak ze mam baze i w niej tabele i chcialbym zeby na tronie pojawialo mi sie ile jest danych rekordow:
np tabela ma 10 rekordow i chcialbym zeby zliczalo ile jest wpisow z poszczegolnych pol.

Z gory dziekuje za pomoc
wookieb
Zainteresuje się funkcja COUNT w mysql.
paddy79
pewnie tak ale moglbys podpowiedziec jak to konkretnie zrobic. czy mam utworzyc nowa tabele? z taka funkcja?
W sumie to stawiam pierwsze kroki w php i mysql.

dzieki
wookieb
Nie podałeś czego to są statystyki.
http://dev.mysql.com/doc/refman/5.1/en/gro...#function_count

Przyklad
  1. SELECT count(pole) FROM tabela WHERE pole="test"

zlicza ci liczbe wystapien wartosci test w polu
SzamanGN
Ile rekordów w tabeli (iloscwpisow):
  1. SELECT COUNT(kolumna1) AS iloscwpisow FROM tabela LIMIT 1


Ilość wpisów użytkownika o numerze (id) 1 (wpisyuzytkownika):
  1. SELECT COUNT(kolumna1) AS wpisyuzytkownika FROM tabela WHERE uzytkownik=1 LIMIT 1
paddy79
o to mi chodzi czyli rozumiem ze musze stworzyc nowa tabele ktora by mi to zliczala, cos takiego
CREATE TABLE stat(
SELECT COUNT( firstname ) AS iloscwpisow
FROM DATA LIMIT 1 ;
SzamanGN
Nie tworzysz żadnych nowych tabel. To zapytanie jest do twojej tabeli, np:

  1. SELECT COUNT( firstname ) AS iloscwpisow FROM DATA LIMIT 1


Jeżeli chodzi o wpis "COUNT( firstname ) AS iloscwpisow", to oznacza że wynikiem zapytania będzie pole o nazwie iloscwpisow o wartości równej ilości danych rekordów.
Zastosowanie przypisania nazwy (AS nazwa) ułatwia nam odwołanie do otrzymanego wyniku, np:

  1. <?php
  2. $zapytanie=mysql_query('SELECT COUNT( firstname ) AS iloscwpisow FROM DATA LIMIT 1');
  3. $wynik=mysql_fetch_array($zapytanie);
  4. echo 'Ilość imion w tabeli DATA: '.$wynik['iloscwpisow'];
  5. ?>
paddy79
wrzucilem cos takiego :
<?php
$database="elcapaa";
mysql_connect ("mysql03.iomart.com", "elcapaa", "Ezmzs2qJ");
@mysql_select_db($database) or die( "Unable to select database");
$result = mysql_query( "SELECT * FROM data" )
or die("SELECT Error: ".mysql_error());
$num_rows = mysql_num_rows($result);
$zapytanie=mysql_query('SELECT COUNT( firstname ) AS iloscwpisow FROM DATA LIMIT 1');
$wynik=mysql_fetch_array($zapytanie);
echo 'Ilość imion w tabeli DATA: '.$wynik['iloscwpisow'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>

wyrzuca mi taki blad
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /www.elcap.org/admin/stats.php on line 9
Ilość imion w tabeli DATA:
SzamanGN
Sprawdź to:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Untitled Document</title>
  5. </head>
  6. <?php
  7. $database="elcapaa";
  8. mysql_connect ("mysql03.iomart.com", "elcapaa", "Ezmzs2qJ");
  9. @mysql_select_db($database) or die( "Unable to select database");
  10. $zapytanie=mysql_query('SELECT COUNT( firstname ) AS iloscwpisow FROM DATA LIMIT 1');
  11. $wynik=mysql_fetch_assoc($zapytanie);
  12. echo 'Ilość imion w tabeli DATA: '.$wynik['iloscwpisow'];
  13. ?>
  14. </body>
  15. </html>
paddy79
niestety to samo
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /www.elcap.org/admin/stats.php on line 13
Ilość imion w tabeli DATA:
SzamanGN
Ile masz wpisów w swojej tabeli?
Sprawdzałem opis błędu i problem może powstać, gdy nie ma danych - brak wpisów.
Jak nie masz żadnego wpisu, to dodaj kilka do testów.

Sprawdzałem u siebie i u mnie chodzi.
alegorn
  1. <?php
  2. $zapytanie=mysql_query('SELECT COUNT(1) AS `iloscwpisow` FROM `DATA` ');
  3. ?>

powinno pomoc.

najlepiej jak sobie zainstalujesz jakis GUI do mysqla, i wszelkie polecenia wczesniej tam sprawdzal
SzamanGN
Bardzo dobra rada z tym GUI. Ja testuję na phpMyAdmin.
Fifi209
Cytat(SzamanGN @ 15.07.2009, 13:08:04 ) *
Bardzo dobra rada z tym GUI. Ja testuję na phpMyAdmin.


A co to dział opinie?

Cytat(alegorn @ 15.07.2009, 13:05:31 ) *
  1. <?php
  2. $zapytanie=mysql_query('SELECT COUNT(1) AS `iloscwpisow` FROM `DATA` ');
  3. ?>

powinno pomoc.

najlepiej jak sobie zainstalujesz jakis GUI do mysqla, i wszelkie polecenia wczesniej tam sprawdzal


Miał dobre zapytanie, wystarczy jakby limit 1 usunął na końcu.
alegorn
Cytat(fifi209 @ 15.07.2009, 14:12:14 ) *
Miał dobre zapytanie, wystarczy jakby limit 1 usunął na końcu.



z tego co widze - raczej nie, limit 1 - jest zbedny w tym zapytaniu, ale nie powoduje bledu mysql (przynajmniej na 5.x)
raczej stawialbym na uzycie slowa DATA, jest slowem zastrzezonym, i prawdopodobnie jest to przyczyna tych problemow.

rowniez ilosc wierszy (wczesniejsze pytanie) jest bez znaczenia, wazne by byla tabela i tyle.

dobrze jest sobie wyrobic nawyk w stosowaniu odwrotnego apostrofa, unikamy niepotrzebnych komplikacji
paddy79
niestety dalej nie dziala tym razem nie wyrzuca zadnego bledu ale ekran jest pusty
alegorn
hmm, przed chwila napisalem cos zle - wywalilem to juz.. tak bywa jak sie wali z pamieci, a wieki juz nie musialme bawic sie z mysql na tym poziomie smile.gif

teoretycznie powinno juz zadzialac.
walnij w skrypcie: var_dump($wynik);die; i sprawdz co ci wtedy wyswietli.....
paddy79
no cos wkoncu zadzialalo z tym ze pokazuje liczbe 3 a jest 6 wpisow

nie sorki moj blad ciagle pusty ekran
<?php require_once('Connections/asdfasf.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

mysql_select_db($database_asdfasf, $asdfasf);
$query_Recordset1 = "SELECT * FROM stat";
$Recordset1 = mysql_query($query_Recordset1, $asdfasf) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php
$zapytanie=mysql_query('SELECT COUNT(*) AS `iloscwpisow` FROM `DATA` var_dump($wynik);die; ');
?>
</body>
</html>

to co udalo mi sie wytworzyc
erix
Domyśl się, po co jest bbcode, wtedy pogadamy.
alegorn
ugh....
  1. <?php
  2. $zapytanie=mysql_query('SELECT COUNT(*) AS `iloscwpisow` FROM `DATA` var_dump($wynik);die; ');
  3. ?>


noo. teraz tos mnie zaskoczyl.
zapraszam do lektury:
var_dump" title="Zobacz w manualu PHP" target="_manual
die" title="Zobacz w manualu PHP" target="_manual

zlaczyles php z sql...
var_dum sluzy do debugowania w php
  1. <?php
  2. $zapytanie=mysql_query('SELECT COUNT(*) AS `iloscwpisow` FROM `DATA`');
  3. $wynik = mysql_fetch_assoc($zapytanie);
  4. var_dump($wynik);die; );
  5. ?>


mysle ze dobrym wyjsciem bylo by zainwestowanie w ksiazke z podstawami php i mysql....
paddy79
niestey dalej niedziala nie wiem moze robie cos zle ale wyrzuca taki blad:
Parse error: syntax error, unexpected ')' in /www.elcap.org/admin/stats/a.php on line 14

a to moj kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php
$database="elcapaa";
mysql_connect ("mysql03.iomart.com", "elcapaa", "Ezmzs2qJ");
@mysql_select_db($database) or die( "Unable to select database");
$zapytanie=mysql_query('SELECT COUNT(*) AS `iloscwpisow` FROM `DATA`');
$wynik = mysql_fetch_assoc($zapytanie);
var_dump($wynik);die; );
?>
</body>
</html>
erix
Mamy Ci składnię sprawdzać? Kpisz?
paddy79
rrix czy ktos ciebie pytal o zdanie!
Fifi209
Cytat(paddy79 @ 16.07.2009, 13:44:02 ) *
rrix czy ktos ciebie pytal o zdanie!


Lepiej sobie zainstaluj debugger, bo forum to nie parser php. Tak pytał go ktoś o zdanie, nawet bym powiedział, że ty. Jesteś bezczelny, ludzie pomagają ci jak potrafią a to że jesteś dzieciakiem, który przeczytał 3 zdania o php i myśli że świeci to inna bajka. Gdybym ja był moderatorem już dawno bym wywalił ten temat a ciebie zbanował na ip od razu, choć pewnie masz neo.
nospor
Cytat
rrix czy ktos ciebie pytal o zdanie!
wow. Moderator ci napisal, ze za parser tu nie robimy a ty takim tonem....
no coz, widze masz niesamowitą umiejetnosc zamykania sobie tematow smile.gif

do tego dochodzi nagminne nie stosowanie bbcode

ps: jak juz znajdziesz ten parse error i wyrazisz chec stosowanie bbcode - zapraszam na PW a otworze temat
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.