14. februar 2004 - 16:31
Der er
18 kommentarer og 1 løsning
Hvad gør variaben $r?
Hej Jeg har mange steder set variablen $r blive brugt. Jeg kan ikke slå den op i PHP manualen, og aner ikke hvad den gør, så er der nogle der kan fortællge mig præcist hvad den gør, og gerne give et eksempel hvor den bruges?
Annonceindlæg fra inspirit365
14. februar 2004 - 17:19
#1
Det er en variabel som man selv specificerer.. det er ikke noget fast variabel.
14. februar 2004 - 17:19
#2
Hvor har du set den brugt?
14. februar 2004 - 17:30
#3
Jeg har set den brugt bl.a i følgende eksempel: <!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> Jeg har prøvet at lave et lign. script som ser sådan ud: <?php mysql_connect("localhost", "root"); mysql_select_db("news"); $query = mysql_query("SELECT * from nyheder ORDER BY navn"); while($r = mysql_fetch_array($query)) { $navn = $r["navn"]; $mail = $r["mail"]; $hjemmeside = $r["hjemmeside"]; $tekst = $r["tekst"]; $dato = date(); $tid = time(); echo "<p><b>Forfatter:</<b> $navn </p>"; echo "<p><b>Email:</b> $mail</p>"; echo "<p><b>Hjemmeside:</b> $hjemmeside</p>"; echo "<p>$tekst</p>"; echo "<p>SKrevet den $dato kl. $tid</p><br />"; } ?> Men mit problem er så at der kun kommer til at stå: Forfatter: Email: Hjemmeside: Det antal gange lykken gennemløbes. Hvorfor fanger den ikke mine input?
14. februar 2004 - 17:32
#4
$r er i dette tilfælde bare en variabel for den *R*ække som databasen læser. Er du sikker på du har nogle værdier indsat i databasen?
14. februar 2004 - 17:34
#5
Mangler du ikke at angive password til at forbinde til mysql?
14. februar 2004 - 17:49
#6
Nu viser den noget. Men kunne jeg ligeså godt skrive eks. $etelerandet['mail'] i stedet for $r['mail'] og få det samme resultat?
exp
Juniormester
14. februar 2004 - 18:04
#7
Jep
14. februar 2004 - 18:13
#8
Men nu er det så jeg ikke forstår hvordan følgende script virker: while($r = mysql_fetch_array($query)) Der har r jo ingen værdi, men allegevel stopper løkken når alle posts fra min gæstebog er blevet vist!
exp
Juniormester
14. februar 2004 - 18:31
#9
while($r = mysql_fetch_array($query)) => "så længe mysql_fetch_array() kan hente noget i $query, skal [...] ske. P.S. Dataene skal lægges i array'et $r"
14. februar 2004 - 18:44
#10
Så vil det sige at den løber de forskellige kolonner som er i queryen igennem, en for en, indtil der ikke er flere data?
exp
Juniormester
14. februar 2004 - 18:47
#11
Sådan noget lignende...
14. februar 2004 - 19:04
#12
Ok, nu vi er i gang, kan du så fortælle mig hvordan man gør sådan at de linjeskift brugeren laver når han poster i min gæstebog virker?
14. februar 2004 - 21:53
#13
$tekst = nl2br($r["tekst"]); Du skal selvfølgelig bruge funktionen på teksten, inden du gemmer i databasen. Så er teksten nemlig klar til at blive hentet næste gang, med rigtige linieskift uden du skal gøre noget.
15. februar 2004 - 10:45
#14
Fortår ikke helt hvor jeg skal bruge den. Jeg har først en side som ser sådan ud: <?php session_start(); $_SESSION['mail'] = $_REQUEST['mail']; $_SESSION['hjemmeside'] = $_REQUEST['hjemmeside']; $navn = $_REQUEST['navn']; $mail = "<a href=\"mailto:{$_SESSION['mail']}\">{$_SESSION['mail']}</a>"; $hjemmeside = "<a href=\"{$_SESSION['hjemmeside']}\" target=\"_blank\">{$_SESSION['hjemmeside']}</a>"; $tekst = $_REQUEST['tekst']; if(empty($navn) OR empty($mail) OR empty($hjemmeside) OR empty($tekst)) { echo "Alle felter skal udfyldes"; } else { mysql_connect("localhost", "root"); mysql_select_db("news"); mysql_query("insert into nyheder (navn, mail, hjemmeside, tekst) VALUES ('$navn', '$mail', '$hjemmeside', '$tekst')") or die ('Mysql error'); mysql_close(); echo "Beskeden er tilføjet. Tilføj flere eller <a href='vis.php'>vis alle beskeder</a>"; } ?> Og derefter en side der ser sådan ud: <html> <head> <title>Gæstebog</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body> <?php mysql_connect("localhost", "root"); mysql_select_db("news"); $query = mysql_query("SELECT * from nyheder ORDER BY navn"); while($r = mysql_fetch_array($query)) { $navn = $r["navn"]; $mail = $r["mail"]; $hjemmeside = $r["hjemmeside"]; $tekst = $r["tekst"]; echo "<p><span id='farve'>Forfatter:</span> $navn </p>"; echo "<p><span id='farve'>Email:</span>$mail</p>"; echo "<p><span id='farve'>Hjemmeside:</span> $hjemmeside</p>"; echo "<p>$tekst</p><br /><br /><br />"; } ?> </body> </html> Hvor er det så jeg skal indsætte $tekst = nl2br($r['tekst']); ? Jeg har prøvet at gøre det lige efter jeg requester $tekst på den første side, og lige før jeg indsætter i min database på side 2, men det virker ingen af stederne
15. februar 2004 - 12:35
#15
I dit første php dokument -> mysql_query("insert into nyheder (navn, mail, hjemmeside, tekst) VALUES ('$navn', '$mail', '$hjemmeside', '$tekst')") or die ('Mysql error'); Ovenover denne linie, skriver du $tekst = nl2br($tekst); Det er det hele..
15. februar 2004 - 13:38
#16
Nu virker det med linjeskiftene ( tak for svaret :D ) Men nu har jeg så det problem at de mellemrummene, ikke lbiver registreret!
13. september 2004 - 11:03
#17
nogle der smider et svar?
exp
Juniormester
13. september 2004 - 11:36
#18
Hvem synes DU skal smide svar?
13. september 2004 - 12:10
#19
Just in case.
Vi tilbyder markedets bedste kurser inden for webudvikling