16. februar 2003 - 15:13Der er
24 kommentarer og 2 løsninger
Tæl indhol i kolonne (SQL)
Hej eksperter.
Jeg har et database hvor jeg har en tabel kaldet login. Der har jeg en kolonne som normalt er tom. Men hvis folk bliver oprettet skriver den vedkommendes nick i denne kolonne.
Nu kunne jeg godt tænke mig at vide hvor mange brugere der egentlig er i mit system.
Men hvordan gør jeg det?
Som standart er der 80 rækker i kolonnen, og den skal kun tælle de felter hvor der er indhold i.
Og et lille tillægs spørgsmål. Ligesom i menuen til venstre her på eksperten. Kan man se de nyeste spørgsmål. Hvordan kan jeg eventuelt gøre dette med de nicks jeg har i min kolonne ? så den viser de 5 sidste der er tilmeldt ?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<? $q = mysql_query("SEÆECT count(id) as result from tabel"); $r = mysql_fetch_array($q); echo "Der er ".$r[result]." brugere"; ?>
<? echo "De 5 nyeste brugere i systemet"; $q = mysql_query("SELECT navn from login order by id desc limit 5"); while ($r = mysql_Fetch_array($q)) { echo $r[navn]."<br>"; } ?>
cybermann: du skal sætte en kollonne ind i din tabel så der er en der hedder date... Men hvorfor har du 80 rækker? det er da lidt dumt?!?!
Synes godt om
Slettet bruger
16. februar 2003 - 15:47#11
postndk -> ja det er sådan det skal se ud :) men når jeg smider dette ind og retter navn om til nick. så får jeg fejlen:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource
enragedbudda -> hvorfor skal jeg indsætte en kollonne der hedder date? Jeg har 80 rækker nedad, da det er et bookingsystem jeg roder med. Og da jeg har en anden kollonne med f.eks. Billetnr. og der skal der jo være 80 pladser. Og når folk tilmelder sig smider den deres email ind i kollonnen med emails.
du har rettet den stavefejl jeg lavede i den første query ? der skal stå SELECT og ikke SEÆECT.. ;o)
Synes godt om
Slettet bruger
16. februar 2003 - 15:50#13
jeps den har jeg rettet postndk :)
Min kode ser nu sådan ud:
<?
include("mysql_kk.inc");
$q = mysql_query("SELECT count(id) as result from tabel"); $r = mysql_fetch_array($q); echo "Der er ".$r[result]." brugere"; ?>
<BR><BR><BR>
<? echo "De 5 nyeste brugere i systemet"; $q = mysql_query("SELECT nick from login order by id desc limit 5"); while ($r = mysql_Fetch_array($q)) { echo $r[nick]."<br>"; } ?>
Synes godt om
Slettet bruger
16. februar 2003 - 15:55#14
Og min struktur ser sådan ud:
# # Struktur dump for tabellen 'login' #
DROP TABLE IF EXISTS login; CREATE TABLE login ( id int(11) NOT NULL auto_increment, billetnr tinytext NOT NULL, kode tinytext NOT NULL, plads varchar(11) NOT NULL DEFAULT '', email tinytext NOT NULL, tiden timestamp(14) NULL, nick varchar(41) NOT NULL default '', KEY id (id) );
<? echo "De 5 nyeste brugere i systemet"; $q = mysql_query("SELECT nick from login order by id desc limit 5"); while ($r = mysql_Fetch_array($q)) { echo $r[nick]."<br>"; } ?>
Skal ændres til:
<? echo "De 5 nyeste brugere i systemet"; $q = mysql_query("SELECT * FROM login ORDER BY billetnr ASC LIMIT 5"); while ($r = mysql_Fetch_array($q)) { echo $r[nick]."<br>"; } ?>
Så tar den de 5 højheste billetnr's :)
Synes godt om
Slettet bruger
16. februar 2003 - 16:01#17
jeps .. det kan hurtig blive noget indviklet noget :/
okay, jeg fandt selv fejlen i min kode fra før. og rettede det lidt til med hjælp fra både enragedbudda og postndk
Den ser nu sådan ud:
<?
include("mysql_kk.inc");
$q = mysql_query("SELECT count(id) as nick from login WHERE nick != ''"); $r = mysql_fetch_array($q); echo "Der er ".$r[nick]." brugere"; ?>
Men de 5 nyeste tilmeldte kan jeg stadig ikke få til at fungere.
Men det med tid kunne da fungere :)) Jeg har jo allerede et felt hvor den har skrevet tid i et timestamp.
Men sql er ikke lige mit felt :/
Synes godt om
Slettet bruger
16. februar 2003 - 16:38#23
Har du en ide til hvordan det kunne klares enragedbudda ? :)
Synes godt om
Slettet bruger
16. februar 2003 - 17:07#24
Okay jeg prøvede for sjov skyld at ændre det til id istedet for billetnr Koden ser nu sådan ud, men det sidste med nyeste brugere virker stadig ikke.
<?
include("mysql_kk.inc");
$q = mysql_query("SELECT count(id) as nick from login WHERE nick != ''"); $r = mysql_fetch_array($q); echo "Der er ".$r[nick]." brugere";
echo " <BR><BR><BR>";
echo "De 5 nyeste brugere i systemet<BR>"; $q = mysql_query("SELECT * FROM login ORDER BY id ASC LIMIT 5"); while ($r = mysql_Fetch_array($q)) { echo $r[nick]."<br>"; } ?>
Synes godt om
Slettet bruger
16. februar 2003 - 19:03#25
Fandt selv ud af det. Du foreslog at benytte noget med tid, så jeg bruger timestamp til at vælge efter :))
Koden ser nu sådan ud:
<?
$resultat = mysql_query("select * from login ORDER BY tiden DESC LIMIT 2"); while($row = mysql_fetch_array($resultat)) {
echo " $row[nick]<BR> ";
}
?>
Du får 40 points enragedbudda, da du kom med de bedste foreslag. Men postndk får de sidste 20 da han hjælp med til min første spørgsmål :))
sry jeg ikke svarede :)... har næsten ikke været ved computeren her de sidste 2 dage så jeg har ikke været så aktiv på exp :)
Synes godt om
Ny brugerNybegynder
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.