Ok, yes så lad os lige tage en hurtig tutorial:
At udskrive fra databasen én gangDet er ikke nødvendigt at bruge et while() loop når man kun skal udskrive noget én gang, da while() jo netop er et loop, som forståes som gentagelser.
Derimod kan man blot udskrive ens array(), det man for når man henter fra databasen med mysql_fetch_array();, en gang og ja, det er egentlig det.
Et lille eksembel, jeg har min forside som jeg gerne vil have udskrevet en velkomst hilsen på, det kunne gøres sådan her:
Eksembel 1:<?php
mysql_connect("*", "*", "*"); # Vi starter med at oprette forbindelse til databasen
mysql_select_db("*"); # og så vælger vi databasen
$sql = mysql_query("SELECT * FROM forside WHERE navn = 'velkomst'"); # Jeg sender en 'query' til databasen, altså jeg spørger om vi kan modtage den ønskede information fra databasen
$raekke = mysql_fetch_array($sql); # Her ligger vi så informationen i et array ved navn '$raekke'
echo $raekke[tekst]; # Hvis feltet vi ville udskrive hed 'tekst' så ville vi få det skrevet på skærmen
?>
Som du kan se, henter vi kun informationen én gang.
At udskrive flere gange fra samme database:Hvis man derimod skulle udskrive en mængde information fra databasen, lad os sige vi f.eks. skulle udskrive nogle kommentare til en nyhed, så ville man istedet bruge while() loopet, da vi jo skal foretage den samme forespørgsel hele tiden.
Lad os kigge på et eksempel:
Eksempel 2:<?php
mysql_connect("*", "*", "*"); # Igen starter vi med at oprette forbindelse til databasen
mysql_select_db("*"); # og vælge databasen
$sql = mysql_query("SELECT * FROM nyhedskommentare WHERE nyhedsid = '".$id."'"); # Vi udføre en query igen
/* Her påbegynder vi udskrivningen med et while() loop */
while($raekke = mysql_fetch_array($sql)) {
echo $raekke[navn]."<br>".$raekke[kommentar]."<br><br>";
}
?>
Først en hurtig forklaring af koden, vi bruger en variabel ved navn $id, denne kunne f.eks. være hentet fra browseren, med $_REQUEST[]. Dette gøres så vi kun henter kommentare til den aktuelle nyhed, på den måde udskriver vi ikke nogle kommentare som er blevet skrevet til en anden nyhed.
Her efter bruger vi så while() da vi jo ikke ved præcis hvor mange kommentare der er, men de skal alle udskrives.
Koden skulle være til at forstå, og tror også du kender måden det er gjordt på.
Dette skulle faktisk være nok til at du selv kan rette din kode til, så den ikke bruger et while() loop, og du skulle også kunne lave et nyheds system ud fra dette.
En lille hjælp kan være, at når du vil sende et 'id' gennem browseren, så kan dette nemmest gøres som et link.
Eksempel 3:<?php
echo "<a href='visnyhed.php?id=".$id."'>Se nyhed</a>";
?>
Dette kunne jo så kombineres med et while() loop som udskriver alle nyhedder på en side, har links til samme fil, med hver deres id.
På din hvis side, kan du så bruge enkelt-udtags metoden, den uden while().
Håber det hjalp til at give lidt forståelse for hvordan du bruger de forskellige.
Det skal lige siges at jeg ikke har testet koderne her over, men at de er lavet ud fra hvad jeg ved om PHP og MySQL, og der kan have sneget sig et par fejl ind.
Indlæg senest redigeret d. 20.03.2007 19:29 af Bruger #9674