Slettet bruger
11. januar 2003 - 21:19
Der er
38 kommentarer og 1 løsning
Regne procent ud direkte på siden??
Jeg har en afstemning hvor den skal regne nogle procent ud... jeg kan ikke få den til det :) i kan lige se noget kode:::.. <span class="bar" style="width: <? print"$row[nr]*100/$antal"; ?>%;"></span> <? print"$row[nr]*100/$antal"; ?> kan i få den til det... det nytter ikke at sige $regnestykke = blablablabla da den sætning bliver gentaget og roder en del :)
Annonceindlæg tema
Cloud & AI
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.
11. januar 2003 - 21:32
#1
$procent = $regnestykke $procent = $procent*100/$antal så bliver $regnestykke da ved ikk om jeg har forstået spørgsmålet
Slettet bruger
11. januar 2003 - 21:34
#2
nej fordi den sætning deroppe bliver gentaget tre ganga af mysql og derfor holder det ikke at kalde den procent :)
11. januar 2003 - 21:38
#3
regnestykket ser umiddelbart fint nok ud, men hvis du lige prøver at definere hvor dine variabler i regnestykket kommer fra, så er det måske lettere at overskue
11. januar 2003 - 21:39
#4
dit spørgsmål giver indtil videre ingen mening. kan du beskrive det klart og grundigt? evt pege på en side der gøre det ønskede.
Slettet bruger
11. januar 2003 - 21:40
#5
jamen regnestykket er ganske rigtigt... det er bare med at få det til at regne sig selv ud :)
Slettet bruger
11. januar 2003 - 21:42
#6
11. januar 2003 - 21:46
#7
prøv at lave regnestykket som en variabel først, inden du udskriver den
11. januar 2003 - 21:47
#8
altså sådan $res = $row[nr]*100/$antal; echo $res
11. januar 2003 - 21:50
#9
eller bare print($row[nr]*100/$antal);
11. januar 2003 - 21:51
#10
du skal nok lige lægge en stammen ind i alle mulighederne, ellers får du en fejl, da PHP ikke er så glad for at dividere med 0
Slettet bruger
11. januar 2003 - 21:53
#11
ztyxx>> Det er jo det der ikke nytter noget at hente en variabel med samme navn til tre forskellige udregninger... så kommer det ikke til at passe... og man kan jo ikke kalde den $result$mysqlid vel? altså hvis id'et i mysql er 52 så omdanner den selv til result52
11. januar 2003 - 21:55
#12
du har vel givet variablerne forskellige navn til hvar afstemningsmulighed
Slettet bruger
11. januar 2003 - 21:58
#13
det er jo det jeg prøver at forklare dig... Det er lidt svært.. i får lige noget mere kode: <? include("config.php"); $hent = mysql_query("SELECT * FROM afstemning"); while($row = mysql_fetch_array($hent)) { ?> <? $stemmer = mysql_query("SELECT COUNT(nr) FROM afstemning WHERE id='$id'"); $antal = mysql_result($stemmer, 0, 0); ?> <a href="?stem=<?echo"$row[id]";?>"><?echo"$row[mulighed]";?></a><br> <span class="bar" style="width: <? print($row[nr]*100/$antal); ?>%;"></span> <? print($row[nr]*100/$antal); ?> <br><br> <? } ?>
11. januar 2003 - 22:02
#14
prøv lige at smide hele din kode og database dump
Slettet bruger
11. januar 2003 - 22:06
#15
okay... <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Afstemning</title> <meta name="generator" content="TSW WebCoder"> <style type="text/css"> .bar { border: 1px solid black; background: url('bar.gif'); height: 10px; font-size: 5px; } body,td { font-family: tahoma; font-size: 10; } a:hover { text-decoration: underline; color: black; } a:link { color: black; text-decoration: none; } a:visited { color: black; text-decoration: none; } a:active { color: black; text-decoration: none; } </style> </head> <body bgcolor="#ECF2FA"> <div align="center"> <div style="width: 210; background-color: c0c0c0; border: 1px solid black"> <table width="100%" height="100%"><tr><td valign="top"> Er denne afstemning flot...?<br><br> <? include("config.php"); $hent = mysql_query("SELECT * FROM afstemning"); while($row = mysql_fetch_array($hent)) { ?> <? $stemmer = mysql_query("SELECT COUNT(nr) FROM afstemning WHERE id='$id'"); $antal = mysql_result($stemmer, 0, 0); ?> <a href="?stem=<?echo"$row[id]";?>"><?echo"$row[mulighed]";?></a><br> <span class="bar" style="width: <? print($row[nr]*100/$antal); ?>%;"></span> <? print($row[nr]*100/$antal); ?> <br><br> <? } ?> Antal stemmer i alt: <? echo "$antal"; ?> <? if($id) { $update = mysql_query("UPDATE afstemning SET nr = nr+1 WHERE id='$id'"); { echo "<br><br>Din stemme er registeret!"; } } ?> </td></tr> </table> </div> </div> </body> </html> og databasen..... CREATE TABLE afstemning ( id tinyint(4) NOT NULL auto_increment, mulighed tinytext NOT NULL, nr tinytext NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM;
11. januar 2003 - 22:08
#16
det er anførselstegn som sædvanligt. du sætter dem om et regnestykke du vil have udregnet. <span class="bar" style="width: <? print ($row['nr']*100)/$antal; ?>%;"></span> <? print ($row['nr']*100/$antal); ?>
11. januar 2003 - 22:12
#17
Ups. det har ztyxx allere sagt 11/01-2003 21:50:21
Slettet bruger
11. januar 2003 - 22:13
#18
jeg tror måden jeg læser det fulde antal stemmer på er forkert.... kan i forstå meningen i mit script?? :D jakoba>> Det virker heller ikke :(
11. januar 2003 - 22:14
#19
har du noget datastruktur fra din tabel også
Slettet bruger
11. januar 2003 - 22:16
#20
# # Struktur dump for tabellen `afstemning` # CREATE TABLE afstemning ( id tinyint(4) NOT NULL auto_increment, mulighed tinytext NOT NULL, nr tinytext NOT NULL, PRIMARY KEY (id) ) TYPE=MyISAM; # # Data dump for tabellen `afstemning` # INSERT INTO afstemning VALUES (1, 'Flot', '7'); INSERT INTO afstemning VALUES (2, 'Njaaaa....!', '3'); INSERT INTO afstemning VALUES (3, 'Pænt klam!', '1');
11. januar 2003 - 22:25
#21
while($row = mysql_fetch_array($hent)) { ?> <? $stemmer = mysql_query("SELECT COUNT(nr) FROM afstemning WHERE id='$id'"); $antal = mysql_result($stemmer, 0, 0); ?> <a href="?stem=<?echo"$row[id]";?>"><?echo"$row[mulighed]";?></a><br> <span class="bar" style="width: <? print($row[nr]*100/$antal); ?>%;"></span> <? print($row[nr]*100/$antal); ?> <br><br> <? } såvidt jeg kan se er $antal det antal stemmer der er på DEN id, det skulle være det totale antal stemmer ?> <? sådan at afslutte php blot for at åbne igen er spild af servertid. kunne det være du mener $stemmer = mysql_query("SELECT SUM(nr) FROM afstemning WHERE id='$id'"); eller $stemmer = mysql_query("SELECT COUNT(*) FROM afstemning WHERE id='$id'"); hvad du end mener giver det ikke rigtig mening. id er en unik nøgle i den tabel, så der vil aldrig være mere end een record at SUMmme eller COUNTe
11. januar 2003 - 22:36
#22
og anførselstegn een gang til nr tinytext NOT NULL, nr er et nummer, et antal, en numerisk værdi 25 er det antal fingre og tæer du har hvis en ven giver dig en hånd. '25' er bogstaverne '2' og '5' efter hinanden det er 2 meget forskellige ting, og det er en god ide at holde rede i hvad der er hvad. nr int NOT NULL, 'int' står for heltal (ligesom i id feltet) og der skal ikke anførselstegn omkring numre for så er det ikke numre mere. INSERT INTO afstemning VALUES (1, 'Flot', 7);
11. januar 2003 - 22:52
#23
id mulighed nr -- --------- -- 1 'Flot' 7 2 'Njaaaa....!' 3 3 'Pænt klam!' 1 jeg tipper at nr står for det antal mennesker der har klikket på den valgmulighed det totale antal mennesker der har stemt er så SUM(nr) uden nogen betingelse og de 3 procenttal der skal udregnes bliver 7 * 100 / 11 3 * 100 / 11 1 * 100 / 11 så koden bliver: $hent = mysql_query("SELECT * FROM afstemning"); // hent rækkerne $ialt = mysql_query("SELECT SUM(nr) FROM afstemning"); // lægger nr fra alle records sammen $antal = mysql_result($ialt, 0, 0); while($row = mysql_fetch_array($hent)) { ?> <a href="?stem=<?echo"$row[id]";?>"><?echo"$row[mulighed]";?></a><br> <span class="bar" style="width: <? print($row[nr]*100/$antal); ?>%;"></span> <? print($row[nr]*100/$antal); ?> <br><br> <? }
Slettet bruger
11. januar 2003 - 23:21
#24
hold da kæft.... det virker jo :)
nu skal jeg bare lige ordne update så man kan stemme... og selvfølgelig smide cookie på :)
www.westhi.dk/afstemning
Slettet bruger
11. januar 2003 - 23:24
#25
hvordan er det nu man runder decimaler af? jeg er ikke særlig meget inde i regning med php :)
11. januar 2003 - 23:26
#26
floor()
Slettet bruger
11. januar 2003 - 23:27
#27
har aldrig hørt om floor :)
11. januar 2003 - 23:31
#28
Slettet bruger
11. januar 2003 - 23:36
#29
kan man ikke bruge substr ?
Slettet bruger
11. januar 2003 - 23:40
#30
jeg fatter ikke floor()
11. januar 2003 - 23:42
#31
substr står for subSTRing, og en string er en sekvens af bogstaver ikke et tal.
hvis du vil have 2 decimaler kan du evt bruge number_format() funktionen den kan lave et tal til en køn streng:
$resultatstreng = number_format( $din_talværdi, $antal_decimaler );
http://dk.php.net/manual/en/function.number-format.php
Slettet bruger
11. januar 2003 - 23:44
#32
okay for jeg har nemlig altid brugt substr til at at forkorte bogstaver... Men hvordan kan jeg få number_format til at forkorte procenterne i min afstemning når regnestykket ikke er en variabel?
11. januar 2003 - 23:58
#33
det behøver ikke være en variabel, det kan være et renestykke: <span class="bar" style="width: <? print(number_format($row[nr]*100/$antal),2); ?>%;"></span> <? print( number_format($row[nr]*100/$antal,2)); ?> <br><br>
Slettet bruger
12. januar 2003 - 00:07
#34
Nåååå nu fatter jeg det :D det er alt for godt.. og forresten du skal da lige have points jakoba ;)
Slettet bruger
12. januar 2003 - 00:11
#35
du havde godt nok lige lavet nogle skrivefejl men dem fik jeg ordnet :)
12. januar 2003 - 00:34
#36
Slettet bruger
12. januar 2003 - 11:18
#37
hvad er der sket her?? jeg kan da se alle andre spørgsmål fint nok....!?
Slettet bruger
12. januar 2003 - 11:19
#38
og nu virker det igen... det sædvanlige med at spørgeren skal skrive en kommentar :)
12. januar 2003 - 11:20
#39
jakoba> vi deler i porten så:-)
Vi tilbyder markedets bedste kurser inden for webudvikling