Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
Du skal så lige lukke det andet spørgsmål, så der kun svares ét sted.
Men:
I den nye fil, hvor du vil hente, skal du selvf starte med at connecte til din database.
Så vælger du hvad du vil hente, og i det her tilfælde henter jeg alt og sorterer efter stigende dato.
$query = mysql_query("SELECT * FROM tabelnavn ORDER BY dato ASC") or die(mysql_error());
Så skal du køre en løkke, der opbygger et array, som du så kan udskrive imens: while($row = mysql_fetch_assoc($query)) { echo "Navn: ".$row['navn']."<br />"; echo "Adresse: ".$row['adresse']."<br />"; }
Er det denne linie: $query = mysql_query("SELECT * FROM tabelnavnet") or die(mysql_error()); Og helt præcist:("SELECT * FROM tabelnavnet")? Eller hvad?
Ej, det virker sgu: http://skovlund.lir.dk/akdc.dk/akdc.dk/hent.php men flot at se på, det er det ikke lige frem.. Kan du hjælpe mig lidt mere? Hvordan laver man så sådan, at man kan ændre i teksten? Og man kan skrive merrild og så få alle data hvor merrild står ud uden de andre også kommer..
Hvad mener du med, at du mangler halvdelen af teksten? Det er nærmere et spørgsmål om hvad du putter ind i databasen, eller at du evt. har sat max. på hvor mange tegn der kan være plads til.
du henter informationerne ud sætter dem ind i nogle text felter!! retter i dem sender det f.eks til ret.php og der bruger du så "UPDATE" i stedet for "SELECT"
Netop. Det vil sige, at der kun kan være 100 tegn i den, og resten vil forsvinde. Hvis du ændrer typen til f.eks. TEXT (hvis du skal have en stor, nærmest ubegrænset tekstmængde), så vil det hele være der fremover...
Jeg mener, så det kan stå på samme måde som det gør nu, hvor det bare er skrevet i html er det muligt? Her kan du se det nuværende: http://beta.akdc.dk/kaffe/nescafe-kaffe.htm
Det er jo fordi, at jeg har jo mange firmaer med.. Så hvis folk gør ind på merrild side, så er det jo ikke meningen den også skal hente fra BKI, så jeg vil gerne have det sådan, jeg styrer, hvad den viser..
<table border="1"> <tr> <td rowspan="3"><img src="bki/bki-classic.gif"></td> <td> B·K·I Classic er en kaffe af høj kvalitet. Kaffen er sammensat af udsøgte bønner af de klassiske sorter fra Colombia, Brasilien og Mellemamerika.<br> <br> Ristningen af bønnerne sker med stor omhu og under overvågning af, at bønnerne udvikler en fin aroma.<br> <br> De gode råkaffer og den omhyggelige behandling sikrer, at kaffen opnår den optimale smag.<br> <br> En kaffe med en fin aroma, en særdeles blød fyldighed og en behagelig, let syrlig eftersmag.<br> </td> </tr> </table> <br> <table border="1"> <tr> <td rowspan="3"><img src="bki/bki-ekstra.gif"></td> <td> B·K·I Extra er en kvalitetskaffe sammensat af de klassiske sorter fra Brasilien, Colombia, Mellemamerika og Afrika.<br> <br> De udvalgte bønner er specialristede - d.v.s. ristet hurtigt ved en høj temperatur. Denne ristning gør kaffen mere drøj - og kaffen kan derfor doseres med kun 5 g pr. kop. På den måde får du ligeså mange kopper kaffe med en B·K·I Extra 400 g som med en almindelig 500 g kaffe.<br> <br> Kaffen har en let syrlig aroma med en fyldig og behagelig eftersmag.<br> </td> </tr> </table>
Nej, du kan sagtens have ren html-indhold i en phpfil. Men så snart du skal bruge php-delen, altså lave scripts, benytte funktioner etc., så skal det startes og afsluttes med henholdsvis <? og ?>.
Aha.. Mange tak, så virker det. Jeg kan kalde hent hvad jeg vil ikke? Det er bare fordi, da der er mange firmaer, så er jeg jo nødt til at kalde mange gange.
Nej, det er ikke sikkert. Men skal du have alle firmaer på samme side, eller hvordan er det du vil have det opbygget? Hvis det er fordi de skal komme efter hinanden, kan du jo sortere på firmaet bare, så de f.eks. kommer i alfabetisk rækkefølge?
I hent.php. Men det er jo ikke hent.php du smider i adresselinien, den inkluderer du kun i "den overordnede" php-fil du har kaldt bki-kaffemaerker.php. Derfor skal linket, som skal stå i adresselinien, være bki-kaffemaerker.php?firma=xxxx
Kan det så ikke skyldes, at det du søger på ikke findes som firma-navn i databasen? Det skal matche præcis, så hvis du vil vise merrild, skal der også søges på merrild.
mikkelbas - må jeg få hele din indskrivning i databasen at se? Bare jeg prøver at lære noget af denne debat:D og så vil jeg gerne se dit indskrivning til database for det har jeg ikk helt fattet hvorn man gør...
Det er med denne fil jeg så henter med, det ville dog nok være lidt anderledes, da jeg ikke vil se mine data på hent siden men på andre sider, som jeg styre via en linie.
De filer jeg vil have til at vise oplysningerne fra min database omdøbte jeg fra .htm til .php, så tilføjede jeg linien: <? include("hent.php"); ?> der hvor jeg ville have oplysningerne.
Mine link rettede jeg så til. Og det er grunden til at det hele fungere nu.. :D
Hov, hov, "du ikke kan få den til..." :) Endnu engang, så har jeg jo ikke lavet det, ergo jeg har ikke de tanker de har bag sitet. Jeg ved jo ikke hvad du vil søge på, så uden lidt input fra dig, så kan jeg i hvert fald ikke få den til noget som helst. Så du må fortælle hvad du mener den skal søge på/I.
Sortering alfabetisk eller numerisk er blot: SELECT * FROM tabel WHERE .... = .... ORDER BY feltnavn ASC
altså ORDER BY feltnavn ASC <- ASC betyder stigende, DESC er faldende (ascending/descending).
Hmm.. Jeg vil gerne have den til at søge i oplysninger, firma, mærke når jeg beder den søge, så hvis jeg skriver java, så kommer alle kaffe der inten hedder java eller hvor ordet java indgår frem på siden.
$query = mysql_query("SELECT * FROM tabelnavn WHERE firma LIKE '%".$_GET['search']."%' OR fakta LIKE '%".$_GET['search']."%' OR maerke LIKE '%".$_GET['search']."%'") or die(mysql_error());
Sorteringen skal du indsætte, der hvor du vil have den til at sortere. Altså i dit udtrik -> $query = mysql_query("....."); som mit ovenstående eksempel.
Okey. Så må jeg jo prøve at forklare det på en anden måde. Et SQL-udtræk, eller SQL-kommando om man vil, er jo blot en række informationer du sender til din database. Databasen finder så på baggrund af "kommandoen" de data der passer, og sender dem retur til dit script (PHP). Man starter derfor altid med at opbygge sin kommando i "grupper". Den første del er: SELECT * FROM tabelnavn -- eller: SELECT felt1, felt2, felt3 FROM tabelnavn. Nu har du så defineret, hvad er det for data du vil se - * betyder som altid "alt". Så udbygger vi den lidt. Hvis vi vil have begrænsninger på, f.eks. vil vi kun have de data, hvor feltet der hedder navn er "jens". Så vil det være: SELECT * FROM tabelnavn WHERE navn = 'jens' Så kan vi så udbygge den videre med sortering. Hvis vi nu ønsker, at den skal sortere efter id stigende, vil det være: SELECT * FROM tabelnavn WHERE navn = 'jens' ORDER BY id ASC
Der er mange flere muligheder endnu, som vil komme med erfaring og når du har brug for det. Bl.a. kan en WHERE-clause (som det hedder) jo godt være flere ting. F.eks. vil vi have hvor navn er både "jens" og "hans". Så vil vi: SELECT * FROM tabelnavn WHERE navn = 'jens' AND navn = 'hans' ORDER BY id ASC
Jeg skriver det altid som ovenstående, hvor selve kommandoerne skrives med store bogstaver og det jeg "selv putter på" skrives med småt. Dog har det ingen praktiks betydning, men kun fordi jeg synes det klart er det mest overskuelige.
Præcis som jeg har gjort det. Kan du ikke se lighederne mellem det jeg lige har skrevet og det du selv har i din fil? Hvis ikke, må du paste det du har, for så er jeg bange for at vi ikke snakker om det helt samme.
Og min search.php, så resultaterne kommer i alfabetisk orden. <? if(isset($_GET['search']) && !empty($_GET['search'])) { mysql_connect("localhost", "root", "root") or die(mysql_error()); mysql_select_db("kaffe") or die(mysql_error());
$query = mysql_query("SELECT * FROM kaffeinfo WHERE firma LIKE '%".$_GET['search']."%' OR fakta LIKE '%".$_GET['search']."%' OR maerker LIKE '%".$_GET['search']."%'") or die(mysql_error());
$query = mysql_query("SELECT * FROM kaffeinfo WHERE firma = '".$_GET['firma']."' ORDER BY firma ASC") or die(mysql_error());
og
$query = mysql_query("SELECT * FROM kaffeinfo WHERE firma LIKE '%".$_GET['search']."%' OR fakta LIKE '%".$_GET['search']."%' OR maerker LIKE '%".$_GET['search']."%' ORDER BY maerker ASC") or die(mysql_error());
Det er det sådan set, når det er feltet "firma" du sorterer på, men der var jo nok for hurtig. Udskift "firma" med "maerker" i den også, så burde det funke.
Okay.. Jeg tænkte på, da jeg lige søgte på java, så kom der to resultater der lignede hinanden meget, med forskellige firmaer, så kan man ikke tilføje firma navnet også, så det kan se?
Det kan den da også, men den er jo ikke klogere end den bliver gjort til. Den kode du har, er at den skal vise det på en blank side. Jeg lærte dig include tidligere på dagen, hvor du havde samme "problem". Så det ville jo nok være smart at benytte den igen :)
ja okay, det var så også det jeg mente, det er jo det jeg har sat og lavet hele aftenen, så det så sort ud, hvis jeg endnu ikke havde fundet fidusen.. :D
Jep, det er utroligt, hvad man kan, så længe man bare lige gider at prøve ad.. :D
Hmm.. Var der mon så mere, som jeg ville have hjælp til? Hmm.. Jo, men det er nok et lidt større projekt. Jeg ville først gerne have noget, så folk kunne stemme på kaffe/give en rate. Og så noget, hvor folk kan skrive deres mening om kaffen ind. Kan det lade sig gøre?
Man kan alt (næsten) :) Og det du vil have, kan sagtens lade sig gøre. Men nu synes jeg ikke du skal køre det igennem med 200 km/t. Jeg mener, at have givet dig en del du kan arbejde med. Så sæt dig ned, og lav nogle små eksempler for dig selv, og gør dem mere og mere avancerede. Du vil hurtigt være i stand til både at lave rate-scripts og kommentarer.
Hov.. Den er helt gal nu.. Jeg ville flytte det fra min lokale server og til den server hvor mine sider ligger, men det virker ikke nu.. Den skriver: Warning: mysql_connect(): Access denied for user: 'root@localhost' (Using password: YES) in /home/httpd/vhosts/akdc.dk/subdomains/beta/httpdocs/AKDC.DK/AKDC/form.php on line 7
Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in /home/httpd/vhosts/akdc.dk/subdomains/beta/httpdocs/AKDC.DK/AKDC/form.php on line 8
Warning: mysql_query(): Access denied for user: 'apache@localhost' (Using password: NO) in /home/httpd/vhosts/akdc.dk/subdomains/beta/httpdocs/AKDC.DK/AKDC/form.php on line 10
Warning: mysql_query(): A link to the server could not be established in /home/httpd/vhosts/akdc.dk/subdomains/beta/httpdocs/AKDC.DK/AKDC/form.php on line 10 Der er opstået en fejl Access denied for user: 'apache@localhost' (Using password: NO)
Min fil ser således ud nu: <?php // form.php if($_POST['submit']) { if($_POST['firma'] == "" OR $_POST['maerker'] == "" OR $_POST['fakta'] == "") { echo "Du har ikke udfyldt alle felterne.<br><a href='#' onClick='history.back'>Tilbage</a>"; } else { $mysql = mysql_connect("localhost", "kaffeinfo", "12345"); mysql_select_db("kaffe", $mysql); $sql = "INSERT INTO kaffeinfo(firma, maerker, fakta) VALUES ('".$_POST['firma']."', '".$_POST['maerker']."', '".$_POST['fakta']."');"; $result = mysql_query($sql); if(!$result) { echo "Der er opstået en fejl ". mysql_error(); } else { echo "Din information er indsat i databasen. <a href='hent.php'>Se den her</a>"; } } } else { ?> <form action="form.php" method="post"> <table align="center" width="80%" cellpadding="0" cellspacing="0" border="1"> <tr> <td colspan="2" align="center">Information til Kaffedatabasen:</td> </tr> <tr> <td width="50%">Firma:</td> <td><input type="text" name="firma"></td> </tr> <tr> <td width="50%">Kaffemærke:</td> <td><input type="text" name="maerker"></td> </tr> <tr> <td width="50%">Oplysninger:</td> <td><textarea style="width: 400px" rows="7" cols="30" type="text" name="fakta"></textarea></td> </tr> <tr> <td colspan="2" align="center"><input type="reset" name="reset" value="Ryd Felterne"> <input type="submit" name="submit" value="Send Information"></td> </tr> </table> </form> <?php } ?>
Og min hent.php er sådan: <?
mysql_connect("localhost", "kaffeinfo", "12345") or die(mysql_error()); mysql_select_db("kaffe") or die(mysql_error());
$query = mysql_query("SELECT * FROM kaffeinfo WHERE firma = '".$_GET['firma']."' ORDER BY maerker ASC") or die(mysql_error());
At du ikke har adgang til databasen i første omgang -> Warning: mysql_connect(): Access denied for user: 'root@localhost' (Using password: YES) in /home/httpd/vhosts/akdc.dk/subdomains/beta/httpdocs/AKDC.DK/AKDC/form.php on line 7
Jamen bare en lille boks ude i siden, hvor der så stod:
Kaffer i vores database:
Lande: 1 Firmaer: 10 Mærker: 104
Noget i den stil..
Jeg havde forstillet mig noget med man skal hente nogle oplysninger, men hvordan den skal drejes, det ved jeg ikke helt, men det har vel noget at gøre med feltet "id"?
jeg kan altså ikke få den til at tilføje noget i min db?
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.