Avatar billede netrotten88 Nybegynder
27. januar 2007 - 12:43 Der er 18 kommentarer og
2 løsninger

Hvilken tal er der flest af i MySql databasen

Hej Exp

Hvis jeg har en tabel som ser sådan her ud

10
58
64
10
545
64
10

Hvordan finder jeg så ud af hvilken tal som gantager sig flest gange i en php kode i dette tilfælde skal det give 10 fordi den står flest gange på listen
Avatar billede erikjacobsen Ekspert
27. januar 2007 - 12:49 #1
select talfelt from dintabel group by talfelt order by count(*) desc limit 0,1
Avatar billede netrotten88 Nybegynder
27. januar 2007 - 14:56 #2
Jeg kan ikke få den til at virke ;-) kan du se hvad jeg gør forkert ?


<?   
include("sql.php");
$vistal = select ar from users by ar order by count(*) desc limit 0,1
?>
<?=$vistal[ar]?>
Avatar billede erikjacobsen Ekspert
27. januar 2007 - 14:57 #3
Ja, du mangler at udføre sql-sætningen.
Avatar billede netrotten88 Nybegynder
27. januar 2007 - 15:19 #4
He he ja det er rigtig men der er stadig problemmer :S

    <?   
include("sql.php");
$vistal = mysql_query("select ar from users by ar order by count(*) desc limit 0,1");
?>
<?=$vistal[ar]?>
Avatar billede erikjacobsen Ekspert
27. januar 2007 - 15:52 #5
Ja, du skal jo nok have en række før du kan få et felt.
Avatar billede netrotten88 Nybegynder
27. januar 2007 - 16:53 #6
Jeg har da en række som heder ar i databasen :S
Avatar billede erikjacobsen Ekspert
27. januar 2007 - 19:09 #7
Du mangler rækken i PHP. Du skal gøre som du altid kal gøre, når du skal have data ud fra mysql. Kig fx på eksemplerne på http://dk2.php.net/mysql_fetch_array
Avatar billede limemedia Nybegynder
28. januar 2007 - 08:13 #8
<?php
  include('sql.php');
  $sql = mysql_query("
      SELECT ar
      FROM users
      GROUP BY COUNT(ar)
      ORDER BY COUNT(ar)
      LIMIT 0,1
  ");

  echo mysql_result($sql, 0);
  mysql_free_result($sql);
?>

eller hvis du hellere ville have gennnemsnitsalderen, hvad der sikkert er det du er ude efter, kan du lave ala

<?php
  include('sql.php');
  $sql = mysql_query("
      SELECT AVG(ar)
      FROM users
  ");

  echo number_format(mysql_result($sql, 0), 1);
  mysql_free_result($sql);
?>
Avatar billede erikjacobsen Ekspert
28. januar 2007 - 09:08 #9
Hej Lars ;)
Avatar billede limemedia Nybegynder
28. januar 2007 - 09:09 #10
Hej Erik,
Er syg, så er lidt på Eksperten fra den bærbare ... :) et sjældent gæstevisit
Avatar billede erikjacobsen Ekspert
28. januar 2007 - 09:14 #11
Fair nok. Kan du sende en email til mig på den hotmail-adresse, der står på mit minisite. Det er én ting jeg skal fortælle dig, som ikke vedrører dette forum... (Jeg er tilbage om en times tid)
Avatar billede netrotten88 Nybegynder
28. januar 2007 - 15:03 #12
Hej ljwebcom

Jeg kan godt få denne til at virke

<?php
  include('sql.php');
  $sql = mysql_query("
      SELECT AVG(ar)
      FROM users
  ");

  echo number_format(mysql_result($sql, 0), 1);
  mysql_free_result($sql);
?>

men det var nu det tal som kom flest gange jeg vil have

<?php
  include('sql.php');
  $sql = mysql_query("
      SELECT ar
      FROM users
      GROUP BY COUNT(ar)
      ORDER BY COUNT(ar)
      LIMIT 0,1
  ");

  echo mysql_result($sql, 0);
  mysql_free_result($sql);
?>

og ved denne kode melder den fejl ved line 11 og 12 eller 
echo mysql_result($sql, 0);
mysql_free_result($sql);

ved ikke hvorfor :S
Avatar billede limemedia Nybegynder
28. januar 2007 - 15:06 #13
hvad er fejlen den melder ?
Avatar billede netrotten88 Nybegynder
28. januar 2007 - 15:10 #14
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /httpdocs/vis.php on line 11

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /httpdocs/vis.php on line 12
Avatar billede limemedia Nybegynder
28. januar 2007 - 15:17 #15
mystisk, prøv at udskifte

  $sql = mysql_query("
      SELECT ar
      FROM users
      GROUP BY COUNT(ar)
      ORDER BY COUNT(ar)
      LIMIT 0,1
  ");

med

  $sql = mysql_query("
      SELECT ar, COUNT(ar) AS x
      FROM users
      GROUP BY x
      ORDER BY x DESC
      LIMIT 0,1
  ");

og hvis det ikke virker, hvilken version af mysql bruger du ?
Avatar billede netrotten88 Nybegynder
28. januar 2007 - 15:31 #16
Virker heller ikke :S
jeg bruger mysql 5.0
og Datatype er int(3)


Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /httpdocs/vis.php on line 11

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /httpdocs/vis.php on line 12
Avatar billede limemedia Nybegynder
28. januar 2007 - 15:33 #17
prøvede koden af direkte i min sql viewer på min egen mysql5 og den kørte rent igennem - du omskriver ikke koden ? kan du køre den fx i phpmyadmin ?
Avatar billede netrotten88 Nybegynder
28. januar 2007 - 15:45 #18
hvis jeg køre den i phpmyadmin laver den denne fejl
__________________________________________________________________
Fejl
SQL-forespørgsel: 

SELECT ar
FROM users
GROUP BY COUNT( ar )
ORDER BY COUNT( ar )
LIMIT 0 , 1

MySQL returnerede: 

#1111 - Invalid use of group function


__________________________________________________________________

Fejl
SQL-forespørgsel: 

SELECT ar, COUNT( ar ) AS x
FROM users
GROUP BY x
ORDER BY x DESC
LIMIT 0 , 1

MySQL returnerede: 

#1056 - Can't group on 'x'
Avatar billede limemedia Nybegynder
28. januar 2007 - 16:10 #19
Sorry, det er jo mig der ikke kan se skoven for bare træer

SELECT ar
FROM users
GROUP BY ar
ORDER BY COUNT(ar) DESC
LIMIT 0,1
Avatar billede netrotten88 Nybegynder
28. januar 2007 - 16:32 #20
Tak du virker det :D
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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