Avatar billede kimg Nybegynder
17. august 2001 - 23:27 Der er 27 kommentarer og
2 løsninger

Vise antal udvalgte poster

Hvordan tæller jeg udvalgte poster, jeg har 20 kategorier, jeg vil gerne have vist hvor mange jeg har i hver kategori

Kim
Avatar billede repsac Nybegynder
17. august 2001 - 23:29 #1
SELECT COUNT(*) FROM tabelnavn WHERE kategori = underbukser ... eller hvad det nu er ... ;)
Avatar billede poull Nybegynder
17. august 2001 - 23:30 #2
function antal_poster($sid) {
    $bruger = sid_til_brugernavn($sid);
    $indhold = mysql_query(\"SELECT * FROM post WHERE modtager = \'$bruger\'\");
    return mysql_num_rows($indhold);
}
Avatar billede repsac Nybegynder
17. august 2001 - 23:31 #3
=>poull: C&P hva\' ... ;o)
Avatar billede poull Nybegynder
17. august 2001 - 23:32 #4
Her er et lille eksempel hvor jeg angiver en id og så henter jeg brugernavnet via en funktion (uvæsenligt men et eksempel)
Så laver jeg en SELECET i den pågældende tabel og så tæller jeg hvor mange der er valgt
Avatar billede poull Nybegynder
17. august 2001 - 23:33 #5
Tja, så vidst jeg nemlig at det virker :) Men det er vel heller ikke det værste for her på eksperten går det sommetider hurtigt.
Avatar billede repsac Nybegynder
17. august 2001 - 23:37 #6
that\'s right ... ;o)
Jeg vil mene det dog er at overdrive at skulle trække alt ud af tablen post (where etc. etc.) bare for at lave en tælling ...
Hvorfor ikke lade MySQL ordne det?
- ved faktisk ikke rigtigt hvad der er hurtigst ...
Avatar billede poull Nybegynder
17. august 2001 - 23:39 #7
Tja, jeg ved heller ikke lige hvad der direkte er hurtigst, men de er ca. lige simple og nok også lige hurtige, så det gør nok ikke den store forskel.

Hvorfor ikke lade PHP ordne det ;)
Avatar billede repsac Nybegynder
17. august 2001 - 23:44 #8
;o) - fordi man med MySQL kan lave mange smarte ting hurtigt ...

Du laver en forespørgsel og får smidt alt det data i hovedet der kan accepteres i forhold til din WHERE ... end og en mængde data kan det blive til i længden.

Jeg får MySQL til at tælle det op og _kun_ sende mig et tal - det tal som angiver antallet af rækker der opfylder min WHERE ...
Avatar billede poull Nybegynder
17. august 2001 - 23:47 #9
Jo det var også bare for sjov at jeg sagde det. Men faktisk tror jeg ikke der er den store forskel. Dog må man sige at man er sikker på at når mySQL tæller må det være optimalt, men jeg tror ikke at al data er involveret i min kode, så jeg tror ikke man vil mærke nogen forskel.
Avatar billede repsac Nybegynder
17. august 2001 - 23:49 #10
Nej jeg tror somend heller ikke man kan mærke nogen forskel, men det går vel altid ud på at lave så lidt som muligt - belaste serveren så lidt som muligt ... :)

Det er ligesom forskellige PHP-funktioner (med/uden reg.exp.) som man også anvender afhængigt af hvilke krav man har ...

Princippet i det ... ;o)
Avatar billede poull Nybegynder
17. august 2001 - 23:52 #11
Nemlig
Avatar billede kimg Nybegynder
17. august 2001 - 23:57 #12
Respac>> har lidt problemer, hvor skal jeg sætte det ind?

<center><table>
<tr>
<?
$db1 = mysql_connect($host, $user, $pass);
      mysql_select_db($db,$db1);

$query = mysql_query(\"SELECT DISTINCT category FROM $table GROUP by category order by category\") or die(mysql_error());
while ($data = mysql_fetch_array($query)) {
print\"<td><img border=\\\"0\\\" src=\\\"$installpath/images/$pic_index_bullet\\\" width=\\\"$width_index_bullet\\\" height=\\\"$width_index_bullet\\\">&nbsp;&nbsp;<a href=\\\"$installpath/show_cat.php?category=$data[category]\\\">$data[category]</a>&nbsp;&nbsp;(TAL HER)&nbsp;&nbsp;

</td>\";
$a++;

if($a == $split_links_index) {
print\"</tr><tr>\";
$a = 0;
}

}

?>
</tr>
</table>
<br>
<?
include (\'footer.php\');

?>

Kim
Avatar billede poull Nybegynder
18. august 2001 - 00:00 #13
arh så siger du bare Count($data)
Avatar billede repsac Nybegynder
18. august 2001 - 00:00 #14
Jammen du skal bare laven en query mere ...

$query = \"SELECT COUNT(*) FROM whatever WHERE blabla = bommelom\";
$result = mysql_query($query);
$row = mysql_fetch_array($result);

$row[0] indeholder nu antallet af rækker i tabellen \'whatever\' hvor kolonnen \'blabla\' er lig med \'bommelom\' ... :)
Avatar billede repsac Nybegynder
18. august 2001 - 00:02 #15
... skal så bare indsættes efter du vælger database (mysql_select_db) ... :)
Avatar billede repsac Nybegynder
18. august 2001 - 00:07 #16
Spiller det?
Avatar billede poull Nybegynder
18. august 2001 - 00:11 #17
Min sidste kommentar er vidst lidt ved siden af, men det var fordi koden var lidt uoverskulelig :)
Avatar billede kimg Nybegynder
18. august 2001 - 00:14 #18
Nej, får fejl: Warning: Supplied argument is not a valid MySQL result resource
Avatar billede repsac Nybegynder
18. august 2001 - 00:16 #19
Hvordan ser din kode ud?
Avatar billede kimg Nybegynder
18. august 2001 - 00:19 #20
Har løst prob. med fejlmelding, men jeg får ikke noget tal frem
Avatar billede kimg Nybegynder
18. august 2001 - 00:22 #21
<center><table>
<tr>
<?
$db1 = mysql_connect($host, $user, $pass);
      mysql_select_db($db,$db1);
$query = (\"SELECT COUNT(*) FROM $table WHERE category = \'$category\'\") or die(mysql_error());
$result = mysql_query($query);
$row = mysql_fetch_array($result);

$query = mysql_query(\"SELECT DISTINCT category FROM $table GROUP by category order by category\") or die(mysql_error());
while ($data = mysql_fetch_array($query))
{
print\"<td><img border=\\\"0\\\" src=\\\"$installpath/images/$pic_index_bullet\\\" width=\\\"$width_index_bullet\\\" height=\\\"$width_index_bullet\\\">&nbsp;&nbsp;<a href=\\\"$installpath/show_cat.php?category=$data[category]\\\">$data[category]</a>&nbsp;&nbsp;($row[0])&nbsp;&nbsp;

</td>\";
$a++;

if($a == $split_links_index) {
print\"</tr><tr>\";
$a = 0;
}

}

?>
</tr>
</table>
<br>
<?
include (\'footer.php\');

?>
Avatar billede repsac Nybegynder
18. august 2001 - 00:22 #22
AFK til i morgen ... C Ya ... :)
Avatar billede poull Nybegynder
18. august 2001 - 00:31 #23
Kan du ikke bruge den første del af din kode med denne ændring

$query = mysql_query(\"SELECT DISTINCT category FROM $table GROUP by category order by category\") or die(mysql_error());
while ($data = mysql_fetch_array($query)) {
print\"<td><img border=\\\"0\\\" src=\\\"$installpath/images/$pic_index_bullet\\\" width=\\\"$width_index_bullet\\\" height=\\\"$width_index_bullet\\\">&nbsp;&nbsp;<a href=\\\"$installpath/show_cat.php?category=$data[category]\\\">$data[category]</a>&nbsp;&nbsp;\" .

echo mysql_query(\"SELECT COUNT(*) FROM $table WHERE category = $data[category]\");

. \"&nbsp;&nbsp;


jeg har ikke lige brugt den der count(*) så meget, men det var vidst sådan den kunne bruges.
Avatar billede kimg Nybegynder
18. august 2001 - 00:38 #24
Det virker heller ikke

Kim
Avatar billede poull Nybegynder
18. august 2001 - 00:38 #25
Hvad sker der da
Avatar billede poull Nybegynder
18. august 2001 - 00:40 #26
kan du så ike bruge min sætningen inden du \"printer\" din tekst ud og så lave en mysql_fetch_array på den (som repsac gjorde) og så vise den værdi
Avatar billede kimg Nybegynder
18. august 2001 - 00:58 #27
Har prøvet lidt forskelligt, men jeg får kun vist 0

Kim
Avatar billede kimg Nybegynder
18. august 2001 - 01:29 #28
Jeg har løst problemet, Tak for hjælpen, i må dele point, det ser sådan ud nu

$db1 = mysql_connect($host, $user, $pass);
      mysql_select_db($db,$db1);



$query = mysql_query(\"SELECT DISTINCT category FROM $table GROUP by category order by category\") or die(mysql_error());
while ($data = mysql_fetch_array($query))
{
print\"<td><img border=\\\"0\\\" src=\\\"$installpath/images/$pic_index_bullet\\\" width=\\\"$width_index_bullet\\\" height=\\\"$width_index_bullet\\\">&nbsp;&nbsp;<a href=\\\"$installpath/show_cat.php?category=$data[category]\\\">$data[category]</a>&nbsp;&nbsp(\";
$result = mysql_query(\"SELECT COUNT FROM $table WHERE category = \'$data[category]\'\") or die(mysql_error());
echo mysql_num_rows ($result);
echo\")&nbsp;&nbsp;


Kim
Avatar billede poull Nybegynder
20. august 2001 - 14:00 #29
Fair nok ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester