Avatar billede gulekings2k Nybegynder
24. august 2002 - 21:30 Der er 42 kommentarer og
2 løsninger

SELECT Count() virker ikke

Jeg kan ikke få den til at counte uanset hvor jeg sætter linien ind eller hvordan jeg ændre den...
$overallm = mysql_query("SELECT COUNT(title) FROM movielist");
Denne kode returnere "Resource id #3", og tabellen title indeholder mange flere end bare 3 - Hvad betyder dette?
Avatar billede htm Nybegynder
24. august 2002 - 21:37 #1
select count(*) as antal from movielist i stedet!

Muligvis select count(*) as antal from title hvis din tabel hedder title!
Avatar billede htm Nybegynder
24. august 2002 - 21:40 #2
Se evt. her for uddybelse af at tælle rækker: http://www.mysql.com/doc/en/Counting_rows.html
Avatar billede gulekings2k Nybegynder
24. august 2002 - 21:42 #3
hmm den giver stadig den samme værdi "Resource id #3". Og sætter jeg den ind i WHILE der hvor jeg lsiter indholdet returnere den antallet plus 2.
Oh hvorfor kommer dne ikke med et rent tal istedet for teksten resource ?
Avatar billede limemedia Nybegynder
24. august 2002 - 21:48 #4
$sql = mysql_query("SELECT COUNT(*) FROM movielist");
$foo = mysql_fetch_row($sql);

$overallm = $foo[0];

$overallm vil nu indeholde antal poster i movielist
Avatar billede lauer Nybegynder
24. august 2002 - 21:49 #5
fordi du stadig skal bruge f.eks. mysql_fetch_array

Jeg vil gøre sådan
$overall = mysql_result(mysql_query("SELECT COUNT(title) FROM movielist"), 0);
Avatar billede htm Nybegynder
24. august 2002 - 21:49 #6
Ja det lyder godt nok mærkeligt - koden burde virke og kun returne et tal, som repræsenterer antallet af rækker i tabellen. Men det er ikke en kommando du skal have i en while løkke, da der kun skal spørges databasen en gang! Har du evt. noget kode vi kan se?
Avatar billede limemedia Nybegynder
24. august 2002 - 21:50 #7
resource er en datatype i php, din mysql_query retunerer et "datahandle" som du kan hente resultaterne fra, ikke selve resultatet
Avatar billede gulekings2k Nybegynder
24. august 2002 - 21:51 #8
htm, jeg har læst lidt emre på siden men fik ingen af de nævnte til at virke desværre - Men ljweb´s forslag virker perfekt :))

Lige inden jeg lukker spørgsmålet vil jeg høre om i ved hvordan man får den til at liste rækker hvor title IKKE er NULL og heller ikke tæller NULL med ??
Avatar billede limemedia Nybegynder
24. august 2002 - 21:53 #9
$sql = mysql_query("SELECT COUNT(*) FROM movielist WHERE title != NULL && taeller != NULL");

skrev taeller fremfor tæller - du bruger da ikke danske tegn i feltnavne, vel ?
Avatar billede lauer Nybegynder
24. august 2002 - 21:55 #10
jeg vil nu sige at det er smartere at bruge mysql_result... da du kun skal hente den ene værdi. Det kan ikke betale sig at bruge alle mulige variabler, osv

lauer
Avatar billede gulekings2k Nybegynder
24. august 2002 - 21:56 #11
naaah jeg er træt af æøå - Men de MÅ ikke fjernes fra alfabetet (nåh det er en anden sag;?)..

&& taeller != NULL"); taeller? hvorfor det?
Avatar billede gulekings2k Nybegynder
24. august 2002 - 21:56 #12
Skal lgie sideg at jeg lige er startet på PHP, derfor skal det hele skæres ud (på min 2. dag - weee)
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:02 #13
WHERE title != NULL giver 0
og med taeller giver den en SQL fejl

??
Avatar billede lauer Nybegynder
24. august 2002 - 22:06 #14
har du husket at omdøbe din celle til taeller så du undgår æ'et
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:10 #15
Auto_.. hedder ID er det den du mener?
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:14 #16
nej det er med Æ, hvor ændre jeg det?
Avatar billede lauer Nybegynder
24. august 2002 - 22:16 #17
bruger du ikke phpmyadmin?
så kan du jo bare gå ind og rette en celle...
Avatar billede ztyxx Nybegynder
24. august 2002 - 22:16 #18
ALTER TABLE `movielist` CHANGE `tæller` `taeller`
Avatar billede ztyxx Nybegynder
24. august 2002 - 22:18 #19
ups glemte databasenavnet også

ALTER TABLE 'database_navn'.'movielist' CHANGE 'tæller' 'taeller'
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:27 #20
ztyxx, skal den køres med mysql_query ?
Jo, je ghar phpmyadmin men kan ikke finde nogen tæller nogen steder.
Men før reagerede den på tæller, men ikke taeller (WHERE title != NULL && taeller != )
Avatar billede ztyxx Nybegynder
24. august 2002 - 22:30 #21
jeps, hvis du ikke har phpMyAdmin
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:33 #22
Har man automatisk en "tæller" da? Jeg har nemlig ikke lavet nogen.
Lavede en ID Auto_Increment
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:36 #23
<?php
mysql_query("ALTER TABLE 'Movies'.'movielist' CHANGE 'tæller' 'taeller');
?>
dette giver fejlen:
Parse error: parse error, unexpected $ in c:\_domainsroot\localtest\testing.php on line 3
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:42 #24
nåh men uanset hvad hvorfor giver den 0 med denne...
FROM movielist WHERE title != NULL && id != NULL")
Avatar billede ztyxx Nybegynder
24. august 2002 - 22:44 #25
NULL kan kun selectes med IS NULL ikke med !=
Avatar billede lauer Nybegynder
24. august 2002 - 22:47 #26
mysql_query("ALTER TABLE 'Movies'.'movielist' CHANGE 'tæller' 'taeller'");
Avatar billede gulekings2k Nybegynder
24. august 2002 - 22:48 #27
hmm er der så en der hedder ISNOT ?
Avatar billede ztyxx Nybegynder
24. august 2002 - 22:51 #28
ups huskede forkert IS NOT kan bruges, bare ikke !=
Avatar billede gulekings2k Nybegynder
24. august 2002 - 23:01 #29
hmm den tæller stadig tomme felter med? 2 tomme og 7 fyldte.
Den siger 9 :(
Avatar billede lauer Nybegynder
24. august 2002 - 23:04 #30
hmm, er du sikker på at de er helt tomme?
altså der må ikke engang være et space i.
Avatar billede ztyxx Nybegynder
24. august 2002 - 23:06 #31
hvad så hvis du bruger dette:

<?php
$overallm = mysql_query("SELECT COUNT(title) FROM movielist");
    while($res = mysql_fetch_array($overallm)){
        echo $res[title];
    }
?>

eller:

<?php
$overallm = mysql_query("SELECT COUNT(title) FROM movielist");
$count = mysql_num_rows($overallm);
echo "Der er nu $count forekomster i databasen";
?>
Avatar billede ztyxx Nybegynder
24. august 2002 - 23:07 #32
sludder, den sidste skal være

<?php
$overallm = mysql_query("SELECT title FROM movielist");
$count = mysql_num_rows($overallm);
echo "Der er nu $count forekomster i databasen";
?>
Avatar billede gulekings2k Nybegynder
24. august 2002 - 23:08 #33
damn, phpmyadmin siger der er space - de skulle ellers være tomme sådan ser de også ud når der listes..
Avatar billede gulekings2k Nybegynder
24. august 2002 - 23:10 #34
jeg tilføjer via dette:
<form action="createmovie.php" method="POST">
Title: <input type="text" name="title" />
Size: <input type="text" name="size" />
Discs: <input type="text" name="discs" />
Format: <input type="text" name="format" />
Resolution: <input type="text" name="resolution" />
Subtitles: <input type="text" name="subtitles" />
SubLan: <input type="text" name="sublan" />
<input type="submit">
</form>
Jeg kan ikke lige se hvor den smider et space ind
Avatar billede ztyxx Nybegynder
24. august 2002 - 23:12 #35
hvordan ser dit tilføjescripts INSERT sætning ud
Avatar billede gulekings2k Nybegynder
24. august 2002 - 23:12 #36
ztyzz, det giver også det samme men fejlen er at der er et space - Ved bare ikke lige hvor det kommer fra ?

createmovie.php ser sådan ud:
<?php
$title = $_POST["title"];
$size = $_POST["size"];
$discs = $_POST["discs"];
$format = $_POST["format"];
$resolution = $_POST["resolution"];
$subtitles = $_POST["subtitles"];
$sublan = $_POST["sublan"];

$db = mysql_connect("localhost", "Movies");
mysql_select_db("Movies",$db);

$insertSQL = "insert into MovieList (Title, Size, Discs, Format, Resolution, Subtitles, Sublan)
              values ('$title', '$size', '$discs', '$format', '$resolution', '$subtitles', '$sublan')";
mysql_query($insertSQL);
mysql_close();
?>
Avatar billede ztyxx Nybegynder
24. august 2002 - 23:14 #37
hmm, hvordan ser din tabelstruktur så ud
Avatar billede gulekings2k Nybegynder
24. august 2002 - 23:15 #38
Hvordan kan jeg vise dig det?
Avatar billede lauer Nybegynder
24. august 2002 - 23:16 #39
hmm... istedet for at manuelt at lave alle dine $_POST variabler om, kan du bruge

http://www.php.net/manual/en/function.extract.php
extract($_POST);

men hvorfor overhoved lave dem om? du kan jo bruge dem direkte i din query

lauer
Avatar billede ztyxx Nybegynder
24. august 2002 - 23:16 #40
har du en fil med CREATE TABLE.....
ellers kan du få et dump gennem phpMyAdmin
Avatar billede gulekings2k Nybegynder
24. august 2002 - 23:18 #41
CreateTable.php
<?php
$db = mysql_connect("localhost", "Movies");
mysql_select_db("Movies",$db);
$tabelSQL = "create Table MovieList
            (
                ID int(4)
              unsigned
            zerofill
            DEFAULT '0000'
            NOT NULL
            auto_increment,
                Title varchar(50),
                Size varchar(4),
                Discs varchar(1),
                Format varchar(7),
                Resolution varchar(7),
                Subtitles varchar(3),
                SubLan varchar(30),
                PRIMARY KEY (ID)
            )";
mysql_query($tabelSQL);
mysql_close();
?>
extract $row brugte jeg i den anden - anede det ikke da jeg lavede create.php igår :))
Avatar billede ztyxx Nybegynder
24. august 2002 - 23:23 #42
hmm, kan ikke lige gennemskue hvorfor den indsætter spaces
Avatar billede gulekings2k Nybegynder
24. august 2002 - 23:31 #43
Nå det er der ikke noget at gøre ved.
Skal tidlig op imorgen så hopper i seng nu - Men hvad med point ? jeg lukker spørgsmålet nu da jeg har fået svar på det vigtigese :)
Avatar billede burgermann Nybegynder
28. april 2003 - 17:09 #44
Simpelthen for genialt :)
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