21. marts 2003 - 16:54Der er
16 kommentarer og 1 løsning
Select COUNT .....
Jeg har lavet en selct count(xx) as yyy ... på min XP platform, hvor jeg tillege benytter mySQL. Her virker scriptet. Når jeg så uploader til Azero, så virker det ikke. siden kommer op, men den viser kun grafikken. Min mysql version er 23.54 og Azero benytter 23.55. Tabellen er dumpet fra Azero til min platform og strukturen er derfor den samme. Jeg har prøvet med andre versioner af Count, men kan kun få de mest simple til at virke på Azero serveren. Er der nogen der har et bud??
Jeg vil foreslå at du kigger efter noget andet der kunne give den "effekt". Problemet ligger næsten helt sikkert ikke i forskellige versioner (så skal du ud i noget mere avanceret end en count), men fx at data ikke er som du forventer.
Det er samme tabel-struktur og samme fil der kører på hhv. min test platform og Azero. Så det er de samme datafelter der benyttes. Alle andre filer kan oploades uden problemer med de samme connections.
Du kan se min sql her: sql = "SELECT count(auk2emnebck.titel), auk2emnebck.*, aukgrp.* from auk2emnebck, aukgrp where auk2emnebck.slutdato > curdate() and auk2emnebck.gruppe = aukgrp.gruppe group by auk2emnebck.gruppe "
prøv lige (for sjov skyld) at fjerne datoen fra kriteriet. Det kunne jo være datoen på deres server var forkert. sql = "SELECT count(auk2emnebck.titel), auk2emnebck.*, aukgrp.* from auk2emnebck, aukgrp where auk2emnebck.gruppe = aukgrp.gruppe group by auk2emnebck.gruppe "
det har jeg prøvet, virker ikke. Formatet er dato format, så det skulle være ok. Jeg har fjernet helt ned til - sql = "SELECT count(titel) as titel from auk2emnebck " - her får jeg et antal vist, men det kan jeg ikke bruge til noget.
Jeg skal have antallet på titler i hver gruppe. Jeg får det ligesom det skal være på minWinXP server, men altså ikke når jeg kører på netserveren. Jeg kan junglere rundt med det hele og få det resultat, jeg jeg skal bruge. Jeg har også checket at sprogversionerne er de samme. Et dump fra netserveren kan straks vises på min testplatform.
Hvis du kun skal bruge gruppeid og gruppenavnet, så udvælg:
sql = "SELECT aukgrp.gruppe, aukgrp.gruppenavn, count(auk2emnebck.titel) from auk2emnebck, aukgrp where auk2emnebck.slutdato > curdate() and auk2emnebck.gruppe = aukgrp.gruppe group by aukgrp.gruppe, aukgrp.gruppenavn " (hvis navnet på gruppen altså hedder gruppenavn)
Hvorfor det andet ikke virker? Tja - endnu en "sjov ting" ved mysql. De tillader mange spændende ting i syntaksen (fx .* med group by), men når det ikke virker ...
Det giver fortsat kun en kulørt baggrund. Når jeg fjerner count, så får jeg listet de 2 grupper, men ingen total for grupperne. Har prøvet at indsætte max i stedet for count. Det giver et resultat. Så det må være noget med den count funktion, der er galt.
Jeg har nu lavet en nødløsning, hvor jeg kan se, hvor mange emner der er åbne. Men det er jo ikke tilfredsstillende og håber der er en guru, der kan gennemskue problematikken. sql = "SELECT count(titel)as titel from auk2emnebck where slutdato > curdate()"
Jeg har lige lavet en test med Access, det virker. Hentet den samme sql ind på min XP platform - her virker det. Oploaded siden til net-platform - ingen resultat. Jeg vil forhøre mig hos Azero. Vender tilbage.
Så lykkedes det efter en lang kamp at finde løsningen. Men hvorfor der er forskel på en winXP server og win2000 server ved jeg ikke. Men denne løsning virker begge steder (med DISTINCT): sql = "SELECT aukgrp.gruppenavn, Count(DISTINCT auk2emne.titel) AS titel, auk2emne.gruppe, auk2emne.slutdato FROM auk2emne INNER JOIN aukgrp ON auk2emne.gruppe=aukgrp.Gruppe GROUP BY aukgrp.gruppenavn, auk2emne.gruppe, auk2emne.slutdato"
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.