13. februar 2006 - 13:18
Der er
32 kommentarer og 1 løsning
Alfabetisk orden.
Hej. Kan man lave et PHP-Script hvor man indtaster f.eks. Navn og Efternavn, derefter skal de sendes til en MySQL database hvor man så man hente dem ud fra så de bliver vist i alfabetisk orden. På forhånd tak. :) - Frederik
Annonceindlæg fra QNAP
13. februar 2006 - 13:19
#1
Det kan du sagtens, det gør du i dit udtræk: SELECT feltnavn FROM tabelnavn ORDER BY feltnavn ASC så er de alfabetisk sorteret.
13. februar 2006 - 13:21
#2
Hvis det så er fornavn efternavn, vil det nok være (sortering efter efternavn først og dernæst fornavn): SELECT fornavn, efternavn FROM tabelnavn ORDER BY efternavn, fornavn
13. februar 2006 - 13:27
#3
øøhmm.. kan du give et eksembel med kode til udtræk?? Er ikke så stærk i PHP endnu. - Frederik
13. februar 2006 - 13:29
#4
Tjoh: <? //connect her $query = mysql_query("SELECT fornavn, efternavn FROM tabelnavn ORDER BY fornavn, efternavn") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { echo $row['efternavn'] . " " . $row['fornavn']."<br />"; } ?>
13. februar 2006 - 13:45
#5
Ville det her så virke? Opret.php: <html><head></head><body> <form action="opret-ok.php" method="post"> Navn: <input type="text" name="brugernavn"><br> Efternavn: <input type="text" name="password"><br> <input type="submit" name="opret" value="Opret"> </form></body></html> opret-ok.php: <?php require("config.php"); $opret = &$HTTP_POST_VARS['opret']; if(empty($opret)) { ?> <br><a href="opret.php">Opret navn</a> <?php } else { $fornavn = &$HTTP_POST_VARS['fornavn']; $efternavn = &$HTTP_POST_VARS['efternavn']; if(empty($fornavn) OR empty($efternavn)) { echo 'Et af felterne er tomme';} else { mysql_connect($mysql_host, $mysql_user, $mysql_pw); mysql_select_db($mysql_db); mysql_query("insert into navneliste (fornavn, efternavn) values ('$fornavn', '$efternavn')") or die(mysql_error()); print "$fornavn $efternavn er nu tilføjet."; ?> <a href="vis.php">navneliste</a> <?php } } } ?> Vis.php: <? require("connect.php"); $query = mysql_query("SELECT fornavn, efternavn FROM navneliste ORDER BY fornavn, efternavn") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { echo $row['efternavn'] . " " . $row['fornavn']."<br />"; } ?>
13. februar 2006 - 13:47
#6
Det er nok nemmere at teste det end at bede mig overskue det hele i hovedet, men i første omgang skal du nok kalde dine felter fornavn og efternavn istedet for brugernavn og password :)
13. februar 2006 - 14:00
#7
Jeg får denne fejl meddelelse: Parse error: syntax error, unexpected '}' in C:\Programmer\xampp\htdocs\iky\alfa\opret-ok.php on line 26
13. februar 2006 - 14:25
#8
Tror du har en } for meget til sidst.
13. februar 2006 - 14:49
#9
Nu kan jeg godt oprette et navn, men når jeg vil have det vist får jeg en ny fejl meddelelse: Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Programmer\xampp\htdocs\iky\alfa\vis.php on line 3 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Programmer\xampp\htdocs\iky\alfa\vis.php on line 3 Access denied for user 'ODBC'@'localhost' (using password: NO)
13. februar 2006 - 14:51
#10
Du connecter forkert til databasen.
13. februar 2006 - 16:46
#11
Min kode til at connecte til databasen er: <?php $mysql_host = "localhost"; $mysql_user = "username"; $mysql_pw = "password"; $mysql_db = "database"; ?> Har udfyldt de forskellige punkter så de passer til min database.. Hvad gør jeg forkert?
13. februar 2006 - 16:48
#12
Der er umiddelbart ikke noget password, så det skal bare være $mysql_pw = "";
13. februar 2006 - 20:54
#13
Får stadig denne fejl: Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Programmer\xampp\htdocs\iky\alfa\vis.php on line 3 Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Programmer\xampp\htdocs\iky\alfa\vis.php on line 3 Access denied for user 'ODBC'@'localhost' (using password: NO)
14. februar 2006 - 19:26
#14
Min SQL ser således ud: CREATE TABLE `navneliste(1)` ( `id` INT( 10 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `fornavn` VARCHAR( 16 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL , `efternavn` VARCHAR( 16 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL ) TYPE = MYISAM ; Er der noget i det jeg gør forkert?
14. februar 2006 - 19:27
#15
Det er stadig din connection det går galt med. Prøv at oprette et nyt helt tomt dokument med indholdet: <? mysql_connect("host", "brugernavn", "adgangskode") or die(mysql_error()); mysql_select_db("databasenavn") or die(mysql_error()); ?> Og paste hvilken fejlmeddelelse du får.
14. februar 2006 - 19:32
#16
Får en blank side, altså ingen fejl.
14. februar 2006 - 19:33
#17
Så sker der noget ved din connect i den anden fil. Enten bliver variablerne ikke rigtigt sat (kan testes ved at echo dem f.eks.) eller også bliver selve connecten ikke gennmført.
14. februar 2006 - 19:38
#18
hvordan kan jeg så gøre det med det script du skrev tidligere? <? require("connect.php"); $query = mysql_query("SELECT fornavn, efternavn FROM navneliste ORDER BY fornavn, efternavn") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { echo $row['efternavn'] . " " . $row['fornavn']."<br />"; } ?>
14. februar 2006 - 19:44
#19
Det er jo fordi du mangler selve connecten, du sætter så vidt jeg kan se kun variablerne: <? require("connect.php"); mysql_connect($mysql_host, $mysql_user, $mysql_pw) or die(mysql_error()); mysql_select_db($mysql_db) or die(mysql_error()); $query = mysql_query("SELECT fornavn, efternavn FROM navneliste ORDER BY fornavn, efternavn") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { echo $row['efternavn'] . " " . $row['fornavn']."<br />"; } ?>
14. februar 2006 - 19:53
#20
require("connect.php"); er det ikke ikke til at connecte med? Når jeg har tilføjet mit connect i connect.php..
14. februar 2006 - 19:54
#21
Jo, hvis du tilføjer det til connect.php bør det have samme virkning, men det kan jeg bare ikke se du har.
14. februar 2006 - 20:02
#22
I filen connect.php har jeg dette tilføjet: <?php $mysql_host = "localhost"; $mysql_user = "root"; $mysql_pw = "***"; $mysql_db = "***"; ?> Har udfyldt pw og db med mine oplysninger. Noget jeg gør galt?
14. februar 2006 - 20:03
#23
Du mangler de 2 vigtigste linier: mysql_connect($mysql_host, $mysql_user, $mysql_pw) or die(mysql_error()); mysql_select_db($mysql_db) or die(mysql_error()); Ellers sker der ikke det fjerneste. Det du gør er bare at definere nogle variabler der indeholder dine connect-informationer.
14. februar 2006 - 20:09
#24
Nu virker det, men det er som om den soterer dem forkert, hvis man f.eks. tilføjer fornavn a og efternavn z kommer den til at stå øverst.. og den bytter om på fornavn og efternavn.?
14. februar 2006 - 20:11
#25
Ja, eksemplet er lavet ud fra at du sorterer efter efternavn først og dernæst undersorterer efter fornavn. Det må du jo bare skifte om på så.
14. februar 2006 - 20:14
#26
Okay :) Du skal have mange tak :) Smider du et svar? Nu var det jo dig der kom med det afgørende ;) - Frederik
14. februar 2006 - 20:19
#27
Selv tak :) Sig til hvis du får problemer med at få det som du vil have det, men der skal jo også være lidt du selv kan filosofere over :)
14. februar 2006 - 20:32
#28
Nu er jeg irriterende igen :P tænkte på, kan man sotere dem efter hvornår de er blevet oprettet i databasen? f.eks. <? require("connect.php"); $query = mysql_query("SELECT fornavn, efternavn FROM navneliste ORDER BY fornavn, efternavn, id") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { echo $row['id'] . " " . $row['efternavn'] . " " . $row['fornavn']."<br />"; } ?>
14. februar 2006 - 20:36
#29
Det kan du godt, hvis du har et felt med tidspunktet for oprettelse.
14. februar 2006 - 21:33
#30
Okay :) Hmm.. hvis nu jeg gerne vil have dem ind i en tabel, hvor skal jeg så placerer koden henne??? f.eks. <html> <head> <title>test</title> </head> <body> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="50%"> <p align="center">Fornavn</td> <td width="50%"> <p align="center">Efternavn</td> </tr> <tr> <td width="50%">Her skal de indtastede fornavne være</td> <td width="50%">Her skal de indtastede efternavne være</td> </tr> </table> </body> </html>
14. februar 2006 - 21:46
#31
<tr> <td width="50%">Her skal de indtastede fornavne være</td> <td width="50%">Her skal de indtastede efternavne være</td> </tr> skiftes ud med: while ($row = mysql_fetch_array($query)) { extract($row); echo "<tr>\n"; echo "<td width=\"50%\">".$fornavn."</td>\n"; echo "<td width=\"50%\">".$efternavn."</td>\n"; echo "</tr>\n"; Men husk at du først skal hente værdierne fra databasen, som du gør i det kode du postede sidst.
14. februar 2006 - 21:47
#32
Sådan f.eks.: <html> <head> <title>test</title> </head> <body> <table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="100%" id="AutoNumber1"> <tr> <td width="50%"> <p align="center">Fornavn</td> <td width="50%"> <p align="center">Efternavn</td> </tr> <? require("connect.php"); $query = mysql_query("SELECT fornavn, efternavn FROM navneliste ORDER BY fornavn, efternavn, id") or die(mysql_error()); while($row = mysql_fetch_assoc($query)) { echo" <tr> <td width=\"50%\">".$row['fornavn']."</td> <td width=\"50%\">".$row['efternavn']."</td> </tr> "; } ?> </table> </body> </html>
14. februar 2006 - 22:43
#33
Jeg takker mange gage for de geniale svar :D - Frederik
Vi tilbyder markedets bedste kurser inden for webudvikling