paddy79
15.07.2009, 10:26:04
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
15.07.2009, 10:29:32
Zainteresuje się funkcja COUNT w mysql.
paddy79
15.07.2009, 10:42:07
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
15.07.2009, 10:44:50
Nie podałeś czego to są statystyki.
http://dev.mysql.com/doc/refman/5.1/en/gro...#function_countPrzyklad
SELECT count(pole) FROM tabela WHERE pole="test"
zlicza ci liczbe wystapien wartosci test w polu
SzamanGN
15.07.2009, 10:46:44
Ile rekordów w tabeli (iloscwpisow):
SELECT COUNT(kolumna1) AS iloscwpisow FROM tabela LIMIT 1
Ilość wpisów użytkownika o numerze (id) 1 (wpisyuzytkownika):
SELECT COUNT(kolumna1) AS wpisyuzytkownika FROM tabela WHERE uzytkownik=1 LIMIT 1
paddy79
15.07.2009, 11:23:05
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
15.07.2009, 12:16:45
Nie tworzysz żadnych nowych tabel. To zapytanie jest do twojej tabeli, np:
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:
<?php
$zapytanie=mysql_query('SELECT COUNT( firstname ) AS iloscwpisow FROM DATA LIMIT 1'); echo 'Ilość imion w tabeli DATA: '.$wynik['iloscwpisow']; ?>
paddy79
15.07.2009, 12:23:14
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
15.07.2009, 12:44:12
Sprawdź to:
<!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"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <?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( firstname ) AS iloscwpisow FROM DATA LIMIT 1');
$wynik=mysql_fetch_assoc($zapytanie);
echo 'Ilość imion w tabeli DATA: '.$wynik['iloscwpisow'];
?>
paddy79
15.07.2009, 12:55:40
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
15.07.2009, 13:01:51
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
15.07.2009, 13:05:31
<?php
$zapytanie=mysql_query('SELECT COUNT(1) AS `iloscwpisow` FROM `DATA` '); ?>
powinno pomoc.
najlepiej jak sobie zainstalujesz jakis GUI do mysqla, i wszelkie polecenia wczesniej tam sprawdzal
SzamanGN
15.07.2009, 13:08:04
Bardzo dobra rada z tym GUI. Ja testuję na phpMyAdmin.
Fifi209
15.07.2009, 13:12:14
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 )

<?php
$zapytanie=mysql_query('SELECT COUNT(1) AS `iloscwpisow` FROM `DATA` '); ?>
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
15.07.2009, 13:33:30
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
15.07.2009, 13:33:50
niestety dalej nie dziala tym razem nie wyrzuca zadnego bledu ale ekran jest pusty
alegorn
15.07.2009, 14:01:56
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

teoretycznie powinno juz zadzialac.
walnij w skrypcie:
var_dump($wynik);die; i sprawdz co ci wtedy wyswietli.....
paddy79
16.07.2009, 11:26:45
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
16.07.2009, 11:34:58
Domyśl się, po co jest bbcode, wtedy pogadamy.
alegorn
16.07.2009, 13:02:41
ugh....
<?php
$zapytanie=mysql_query('SELECT COUNT(*) AS `iloscwpisow` FROM `DATA` var_dump($wynik);die; '); ?>
noo. teraz tos mnie zaskoczyl.
zapraszam do lektury:
var_dump" title="Zobacz w manualu PHP" target="_manualdie" title="Zobacz w manualu PHP" target="_manualzlaczyles php z sql...
var_dum sluzy do debugowania w php
<?php
$zapytanie=mysql_query('SELECT COUNT(*) AS `iloscwpisow` FROM `DATA`'); ?>
mysle ze dobrym wyjsciem bylo by zainwestowanie w ksiazke z podstawami php i mysql....
paddy79
16.07.2009, 13:31:30
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
16.07.2009, 13:35:23
Mamy Ci składnię sprawdzać? Kpisz?
paddy79
16.07.2009, 13:44:02
rrix czy ktos ciebie pytal o zdanie!
Fifi209
16.07.2009, 13:50:07
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
16.07.2009, 13:53:50
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

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.