Avatar billede bgjensen Nybegynder
18. januar 2003 - 10:29 Der er 9 kommentarer og
2 løsninger

Find Duplicates i MY SQL database

Jeg har en database over mine film, med følgende:

titel, org titel, type, nr.

Kan man lave et script som henter de 4 ovennævnte fra databasen, men kun henter de rækker hvor titel eller nr er helt ens?? (Altså så den finder duplicates af titel eller nr)??
Avatar billede askhoej Praktikant
18. januar 2003 - 10:53 #1
SELECT count(titel) as antal ,titel FROM tabel GROUP BY titel ORDER BY antal DESC


/askhoej
Avatar billede jakoba Nybegynder
18. januar 2003 - 11:41 #2
du kan evt tilføje en  HAVING betingelse for at undgå at hente dem der ikke er dubletter:

  SELECT count(titel) as antal ,titel
  FROM tabel
  GROUP BY titel
  HAVING antal > 1
  ORDER BY antal DESC
Avatar billede bgjensen Nybegynder
18. januar 2003 - 11:44 #3
Je får bare denne fejl!

mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Avatar billede bgjensen Nybegynder
18. januar 2003 - 11:51 #4
kan i ikke prøve at lave et script som henter dubletter fra databasen og viser dem på skærmen.
Avatar billede jakoba Nybegynder
18. januar 2003 - 11:52 #5
Ups. ja så går det nok ikke. sært
Avatar billede bgjensen Nybegynder
18. januar 2003 - 11:55 #6
ups min fejl: glemte lige at ændre tabel til dt rigtige navn :o)
Men hvordan får jeg det vist på skærmen?
Avatar billede bgjensen Nybegynder
18. januar 2003 - 11:59 #7
Hvad jeg har nu:

<?
include("config.php");

$db = mysql_connect($config["db_host"],$config["db_user"],$config["db_pass"]);
mysql_select_db($config["db_name"], $db);

$foresp = mysql_query("SELECT count(titel) as antal ,titel FROM dvds GROUP BY titel HAVING antal > 1 ORDER BY antal

DESC");
while($data = mysql_fetch_array($foresp)){

echo ("$data");
}
?>

Men det giver ikke noget brug bart! Viser kun ArrayArrayArray på skærmen!
Avatar billede jakoba Nybegynder
18. januar 2003 - 12:27 #8
det er fordi $data jo er et 'array' med den udtrukne række.
prøv noget i retning af:

<?php
$server    = "localhost";    // domæne
$brugernavn = "ditnavn";      // brugernavn
$password  = "ditpass";      // password
$db_navn    = "dindb";        // navn på databasen
$dbt_navn  = "katalog";      // navn på tabel i databasen

mysql_connect($server, $brugernavn, $password)
  or die( "Unable to connect\n". mysql_error() );

mysql_select_db("$db_navn")
  or die("Unable to select db ".mysql_error()."\n");

// ovenståede er de indledende øvelser som du allerede har iorden.


$result  = mysql_query("
    SELECT count(*) as antal ,titel
    FROM  $dbt_navn
    GROUP BY titel
    HAVING antal > 1
    ORDER BY antal DESC
") or die( "Unable to select. Reason: ".mysql_error());

                       
while  ($row = mysql_fetch_array($result))  {
  echo ($row['antal'] ." " .$row['titel'] . "<BR>");
}

echo $result."Færdig<BR>";
                       
mysql_close();
?>

det der med at skrive en  'or die( mysql_error() )' efter sine kald til funktionen mysql_query er en MEGET god ide. hvis man kommer til at skrive en sql_kommando der ikke duer vil sql så prøve at fortælle hvad der er galt med kommandoen.

mvh JakobA
Avatar billede bgjensen Nybegynder
18. januar 2003 - 12:27 #9
Det skulle være echo ("$data[1]"); så kører det!
Avatar billede bgjensen Nybegynder
18. januar 2003 - 12:32 #10
jakoba -> Lav lige et svar så du også kan få nogle point!

Og til jer begge tak for hjælpen.
Avatar billede jakoba Nybegynder
18. januar 2003 - 12:35 #11
ok. takker
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