lobster Skrevet 5. september 2005 Del Skrevet 5. september 2005 Jeg bruker NaviCat for å lage SQL spørringer. Der har jeg en funksjo for å telle antall enheter som har samme id. Når jeg legger spøringen inn i php får jeg feil. $User_Count = MYSQL_QUERY ("Select Count(Registrator.Registrator_ID) From Registrator Where Registrator.Registrator_ID = 1050") Lenke til kommentar
Ernie Skrevet 5. september 2005 Del Skrevet 5. september 2005 Count er en SQL-kommando, ikke en funksjon i PHP ... og ja, mysql har støtte for den. Lenke til kommentar
kakkle Skrevet 5. september 2005 Del Skrevet 5. september 2005 Det er jo en funksjon i php som heter count, da... Men ikke som gjør det som trådstarter tenker på... Lenke til kommentar
Authority Skrevet 5. september 2005 Del Skrevet 5. september 2005 Feilen din ligger i SQL-spørringen, og feilen er at du ikke gir count-verdien ditt et navn, så sql vet ikke hva den skal returnere tallet som. Dersom du reformulerer til: $result=MYSQL_QUERY("SELECT COUNT(Registrator.Registrator_ID) AS IDCount FROM Registrator WHERE Registrator.Registrator_ID=1050") vil du få tilbake et resultatsett med en post ved navn IDCount som har det antallet du er ute etter. Lenke til kommentar
Ernie Skrevet 5. september 2005 Del Skrevet 5. september 2005 (endret) Det vil selvsagt være en fordel å ha et navn på den, men jeg mener da det er mulig å kjøre COUNT uten "AS [navn]" Edit: Pr. teori skal spørringen til trådstarter være korrekt. Testet om det fungerer hvis man taster det inn i mysql? Altså ikke kjører det i php. Å kjøre det i phpmyadmin vil vel være noe av det samme. Endret 5. september 2005 av Ernie Lenke til kommentar
Authority Skrevet 5. september 2005 Del Skrevet 5. september 2005 Det vil selvsagt være en fordel å ha et navn på den, men jeg mener da det er mulig å kjøre COUNT uten "AS [navn]" Prøv da vel! Hvis du klarer det kan du jo poste hvordan. Selv mener jeg du ikke kan klare det, da MYSQL_QUERY alltid returnerer et resultatsett (navn,verdi) og ikke et enkelt tall. Lenke til kommentar
kakkle Skrevet 5. september 2005 Del Skrevet 5. september 2005 $res = mysql_query("SELECT COUNT(*) FROM table"); $row = mysql_fetch_array($res); echo "antall: ".$row[0]; Lenke til kommentar
Torbjørn Skrevet 5. september 2005 Del Skrevet 5. september 2005 Det vil selvsagt være en fordel å ha et navn på den, men jeg mener da det er mulig å kjøre COUNT uten "AS [navn]" Prøv da vel! Hvis du klarer det kan du jo poste hvordan. Selv mener jeg du ikke kan klare det, da MYSQL_QUERY alltid returnerer et resultatsett (navn,verdi) og ikke et enkelt tall. ... og fra dette resultatet kan du alltid prøve å hente ut et array for hver resultatrow, det være seg om du har pene navn eller ikke. Lenke til kommentar
Ernie Skrevet 5. september 2005 Del Skrevet 5. september 2005 (endret) Det vil selvsagt være en fordel å ha et navn på den, men jeg mener da det er mulig å kjøre COUNT uten "AS [navn]" Prøv da vel! Hvis du klarer det kan du jo poste hvordan. Selv mener jeg du ikke kan klare det, da MYSQL_QUERY alltid returnerer et resultatsett (navn,verdi) og ikke et enkelt tall. Nå trenger man ikke å hente ut resultatet som en assosiativ array da Endret 5. september 2005 av Ernie Lenke til kommentar
Torbjørn Skrevet 5. september 2005 Del Skrevet 5. september 2005 ... men det vil fortsatt være fint mulig. Lenke til kommentar
lobster Skrevet 5. september 2005 Forfatter Del Skrevet 5. september 2005 Feilen din ligger i SQL-spørringen, og feilen er at du ikke gir count-verdien ditt et navn, så sql vet ikke hva den skal returnere tallet som.......vil du få tilbake et resultatsett med en post ved navn IDCount som har det antallet du er ute etter. Takk Authority, dette fungerte utmerket. Jeg modifiserte spørringen til å passe for siden jeg lager og det fungerer utmerket :) $History_Counter_Query=MYSQL_QUERY("SELECT COUNT(Registrator.Registrator_LighterID) AS Counter FROM Registrator WHERE Registrator.Registrator_LighterID='$lighter'") Men, i etterkant kom jeg på at i samme spørring er jeg nødt til å sjekke om ett felt er 0 eller 1. (Spørringen skal liste aktive =1) Jeg tenkte jeg skulle prøve å fikse dette selv, men selvfølgelig fungerte det ikke...... $History_Counter_Query=MYSQL_QUERY("SELECT COUNT(Registrator.Registrator_LighterID) AS Counter, Registration.Registration_Accepted FROM Registrator WHERE Registrator.Registrator_LighterID='$lighter' AND Registrator.Registrator_Accepted=1") Har dere tips ville jeg satt pris på å få hjelp til dette. Lenke til kommentar
Authority Skrevet 5. september 2005 Del Skrevet 5. september 2005 Bygg sql-setningen din utenfor queryen, så slipper du problemet med literals ('-tegnet). eks: $sql = "Select bla bla '" . $parameter . "' og så videre" så bruker du Mysql_query($sql) i stedet. Tror det er dette som blir problemet ditt her. Lenke til kommentar
Torbjørn Skrevet 6. september 2005 Del Skrevet 6. september 2005 (endret) hvorfor har du med den første røde seksjonen i din spørring? du vet jo at denne vil være 1 likevel. EDIT: Å blande sammen "gruppe-funksjoner" som count() (eller max(), min() etc..) .. og vanlige kolonner slik du gjør er dessuten ikke lov (ei heller logisk) uten å bruke "group by" Endret 6. september 2005 av Torbjørn Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå