Avatar billede curtain Nybegynder
03. februar 2004 - 21:28 Der er 14 kommentarer

$r i eksempel

Hej

Jeg er igang med en tutorial på http://www.udvikleren.dk/article.php?aid=32&techid=6


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
    <title>Mine MP3 numre</title>
</head>

<body>
<h3 align="center">Mine mp3 numre</h3><br>
<br>
<?
mysql_connect("localhost","root");
mysql_select_db("mp3");
$query = mysql_query("SELECT * FROM mp3numre ORDER BY id");
echo "<font color="red"><ol>";
while($r = mysql_fetch_array($query)) {
$kunstner = $r["kunstner"];
$titel = $r["titel"];
$dato = $r["dato"];
echo "<li>$kunstner - $titel blev tilføjet $dato";
}
echo "</ol></font>";
?>

</body>
</html>

Og mit problem er så at jeg i ovenstående kode ikke kan finde ud af hvad $r står for. Er det en forkortelse for REQUEST, eller er det bare en tilfældig variabel?
Avatar billede eagleeye Praktikant
03. februar 2004 - 21:33 #1
r er en forkortelse for row
Typisk skriver man $row fordi man med mysql_fetch_array($query) hendter en række fra den query man har lavet.
Avatar billede rrm Nybegynder
03. februar 2004 - 21:34 #2
$r er et array. Og i dette tilfælde en række fra en mysql database
Avatar billede curtain Nybegynder
03. februar 2004 - 21:35 #3
så jeg vil godt kunne skrive $row i stedet og få det samme resultat?
Avatar billede eagleeye Praktikant
03. februar 2004 - 21:35 #4
Avatar billede eagleeye Praktikant
03. februar 2004 - 21:35 #5
Ja det kan du, bare ret alle $r til $row :)
Avatar billede jakoba Nybegynder
03. februar 2004 - 21:36 #6
kik på funktionsbeskrivelsen: http://dk.php.net/mysql_fetch_array
(hver gang der er et funktionskald kan du finde den funktion ved at skrive sådan en url)
Avatar billede exp Juniormester
03. februar 2004 - 21:36 #7
eagleeye >>
Måske ville det være relevant at nævne, at det ikke er et krav, at variablen hedder $r (og iøvrigt lige så godt kunne stå for "recordset"...)
Avatar billede eagleeye Praktikant
03. februar 2004 - 21:39 #8
exp>> Nu har jeg ikke på noget tidspunkt påstået den skulle hedde $r
Avatar billede exp Juniormester
03. februar 2004 - 23:01 #9
Siger jeg heller ikke :-)
Avatar billede Slettet bruger
03. februar 2004 - 23:11 #10
Forresten er det (ofte) smartest at bruge mysql_fetch_assoc, da mysql_fetch_array giver resultatet som både nummer- og navneindekseret array som standard.

I dit tilfælde kunne du for eksempel sagtens kalde den $mp3nummer i stedet for $r. Det kan faktisk hjælpe til at gøre koden mere læselig, hvis man bruger mere sigende variabelnavne. En variabel som $mp3nummer['kunstner'] er jo umiddelbart forståelig.
Avatar billede avminarm Juniormester
04. februar 2004 - 11:22 #11
sandbox>> er det fordi "assoc" er hurtigere?
Avatar billede Slettet bruger
04. februar 2004 - 14:58 #12
Jeg ved det faktisk ikke, men det vil nok være minimalt. Hvis der er en ydelsesforskel vil den nok nærmere ligge på hukommelsen, da mysql_fetch_array netop leverer dataene dobbelt.

Prøv at køre foreach på et array hentet med mysql_fetch_array.

Den vigtigste grund til at bruge _assoc-funktionen (for mig) er nærmere et ønske om at gøre det "rigtigt". Der er jo ingen grund til at bede om data, man alligevel ikke skal bruge.
Avatar billede curtain Nybegynder
04. februar 2004 - 16:07 #13
Vil man kunne sige at $r["kunstner"] er det samme som $_REQUEST["kunstner"] bortset fra at man med $r henter fra en database i stedet for fra et array?
Avatar billede Slettet bruger
04. februar 2004 - 23:48 #14
De ligner hinanden på den måde, at begge er arrays (på dansk ville vi nok kalde dem lister), men de er netop arrays begge to.

Men ja, den vigtigste forskel på $r og $_REQUEST er, at $r har du selv oprettet i dit script (og du kan derfor kalde den hvad som helst), hvorimod $_REQUEST bliver oprettet automatisk af PHP.
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