v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
Få adgang til alt på hele v5.dk
- bliv Premium-medlem for kun 39,95 kr.

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Jeg vil gerne tælle unique poster i en tabel med mange kolonner og rækker

  • v5.dk
  • Forum
  • PHP-programmering
  • Jeg vil gerne tælle unique poster i en tabel med mange kolonner og rækker
  • Sidevisninger: 2924 har set dette indlæg
Besvar #0Spørgsmål oprettet af @Gadedrengen| Premium Premium | 11633 points
60 points ude 3 indlæg 6 år siden Spørgsmål besvaret
avatar
 

Jeg har oprettet et RMS-system og forsøger nu at lave nogle simple statistiske opslag på hvor meget et område har fået af ordrer, hvor mange varegrupper de har fået fra og hvor mange varetyper de har fået.

Det er lykkedes mig at lave en optælling på antallet af ordrer pr. område, men kæmper med at få varegrupper og varetyper til at give det unikke antal.

<!-- Her starter selve tabellens indhold -->
<?php foreach ( $app->DatabasePrepareQuery(
"SELECT DISTINCT Omraade FROM Udleveret
ORDER BY Omraade ASC",
array($_GET['Omraade'])) as $Omraade) { ?>

 

<tr>
<td>&nbsp; <?php echo $Omraade['Omraade']; ?> </td>
<td align="right"> <?php
$Antal = $app->DatabasePrepareQueryReturnFirstField("SELECT count(OrdreID) FROM Ordrer WHERE Omraade=?", array($Omraade['Omraade']));
echo $Antal['count(OrdreID)'] . " ordrer " ;
?>&nbsp; </td>
<td align="right"> <?php
$Typer = $app->DatabasePrepareQueryReturnFirstField("SELECT count(Varegruppe) FROM Udleveret WHERE Omraade=?", array($Omraade['Omraade']));
echo $Typer['count(Varegruppe)'] . " varegrupper " ;
?>&nbsp; </td>
</td>
<td align="right"> <?php
$Slags = $app->DatabasePrepareQueryReturnFirstField("SELECT count(Varetekst) FROM Udleveret WHERE Omraade=?", array($Omraade['Omraade']));
echo $Slags['count(Varetekst)'] . " varetyper " ;
?> &nbsp;</td>
</tr>
<?php } ?>
</table>

Jeg har måske taget den forkerte tilgang fra starten og det er måske forkert at starte med select distinct?

I altfald får jeg ikke de nødvendige resultater :-)

Billede uploadet af Gadedrengen

 

Dette svar er accepteret af OP og tildelt 60 points
avatar
 
Besvar#1 @dhh Admin svarede for 6 år siden

Hej  Gadedrengen @Gadedrengen   

Efter hvad jeg kan se, så er det fordi at du mangler at bruge DISTINCT inde i din count(Varegruppe) osv. Du laver jo en ny forbindelse til serveren og trækker dataen ud fra databasen, ved hvert DatabaseQuery() kald. (Den husker ikke at du brugte DISTINCT før.)

Så eksempelvis med Varegrupper, kan du gøre følgende i stedet for:

// Lig mærke til at jeg smider DISTINCT ind i count(Varegruppe)
$Typer = $app->DatabasePrepareQueryReturnFirstField("SELECT count(DISTINCT Varegruppe) FROM Udleveret WHERE Omraade=?", array($Omraade['Omraade']));

Med venlige hilsner

Daniel H. Hemmingsen (@dhh)

avatar
 
Besvar#2 @Gadedrengen Premium kommenterede for 6 år siden

Tak Daniel.

Min viden er stadig under opbyggelse og vidste faktisk ikke at jeg kunne benuytte DISTINCT indenfor parantesn - fantastisk ny viden - og tak igen for hurtigt svar :-)

med venlig hilsen

Carsten

avatar
 
Besvar#3 @dhh Admin kommenterede for 6 år siden

 #2  Man lære hele livet, som man siger. Og er kun glad for at kunne hjælpe. 

En måde jeg gør mine SQL linjer lidt mere læsbar, er at når jeg bruger attributter som SELECT, COUNT, WHERE, LIMIT osv. Så holder jeg dem altid med store bogstaver, det gør det lidt nemmere at gennemskue hvis et SQL kald skulle lave vrøvl. Et lille tip fra mig til dig. :-) (Et jeg selv brugte for mange år siden, da jeg først lærte PHP.)

Redigeret af dhh @dhh  d. 03.11.2016 kl. 15:53

Med venlige hilsner

Daniel H. Hemmingsen (@dhh)

Spørgsmålet er besvaret, men du er altid mere end velkommen til at skrive en kommentar!
avatar
 

Du er ikke logget ind

Du skal være logget ind på v5.dk før du kan benytte vores forum. Det er ganske gratis at oprette en bruger.

Opret en ny gratis bruger Log ind

Følger med i denne tråd

Gadedrengen

Forum kategorier

  • Generelt
  • Guides & Howto85
  • Offtopic / Andet160
  • Microsoft Office
  • Microsoft Word13
  • Microsoft Excel4
  • Microsoft PowerPoint0
  • Web og hjemmesider
  • Wordpress17
  • Operativsystemer
  • Apple Mac OS X14
  • Apple iOS28
  • Microsoft Windows4
  • Linux16
  • Teknologier
  • Netværk og WiFi3
  • Internet-tjenester9
  • Programmering
  • PHP-programmering125
  • iPhone-/Xcode-programmering9

Aktive forum-tråde lige nu

pentobarbital kaufen ohne rezept
gras kaufen online - grasthc.com
online marketing
Køb juridiske dokumenter såsom kørekort, pas, visum, opholdstilladelse og andre dokumenter
Køb juridiske dokumenter såsom kørekort, pas, visum, opholdstilladelse og andre dokumenter
Weed online kaufen
Er det værd at have en "portfolio"-hjemmeside!?
Fejlkode i form af bip-lyde ved opstart af gammel stationær PC
Bygget med af v5.dk
© Copyright 2006-2023 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap