Avatar billede snigeren Nybegynder
13. november 2005 - 15:49 Der er 15 kommentarer og
1 løsning

hente indhold fra DB som det står i DB´en

Jeg prøver at hente noget indhold fra en DB, men alt teksten bliver bare smidt sammen i en lang sætning uden opdeling i afsnit.

connection:

$query1 = mysql_query("SELECT * FROM sideindhold")or die(mysql_error());
$indhold = mysql_fetch_array($query1);

og til at hente teksten:

<?php echo $indhold['indhold']?>

Hvad skal man gøre for at den forstår linieskift osv.?

/Snig
Avatar billede jaw Nybegynder
13. november 2005 - 15:49 #1
Prøv:
<?php echo nl2br($indhold['indhold']);?>
Avatar billede snigeren Nybegynder
13. november 2005 - 15:55 #2
super det virker,.. hvad betyder nl2br? laver den mellemrum og så viddere om til html kode?

I øvrigt hvis man med en menu knap skal hente en ny sides indhold frem med en ny overskrift og nyt sideindhold skal man så lave en ny php side eller kan man bare hente id=2 på eller anden måde?
Avatar billede jaw Nybegynder
13. november 2005 - 15:58 #3
nl2br betyder "new line to break" - så det siger vel næsten sig selv :)

Det ville være ret smart at have 1 php side, hvor du så henter indhold i forhold til f.eks. et id. Især hvis det kun er teksten der ændres, men at layout skal være det samme hver gang...
Avatar billede udvikler Nybegynder
13. november 2005 - 15:59 #4
Kig her for en forklaring af nl2br: http://dk2.php.net/manual/da/function.nl2br.php


Og medhensyn til den der menu knap, prøv:

<?
<form action="" method="POST">
<input type="submit" value="Gå til en anden side" name="submit">

if ($_POST['submit']) {
header(Location: www.bla.dk);
}
</form>
?>
Avatar billede udvikler Nybegynder
13. november 2005 - 16:00 #5
lille fejl

ændre:
header(Location: www.bla.dk);

til:
header("Location: www.bla.dk");
Avatar billede snigeren Nybegynder
13. november 2005 - 17:28 #6
jeg har prøvet at lave queryen om til:

$where = "";
if ($_GET['id']) {
$where = 'WHERE id = ' . $_GET['id'];
}

$query1 = mysql_query("SELECT * FROM sideindhold" . $where)or die(mysql_error());
$indhold = mysql_fetch_array($query1);

Men hvordan kan man fortælle den at id = 1 til at starte på? Næste gang jeg trykker på en knap får den at vide id=2... men først hvordan fortælle at id=1

Man kan selvfølgelig skrive SELECT * FROM sideindhold where id = 1... men så er den jo ikke relativ.
Avatar billede jaw Nybegynder
13. november 2005 - 17:30 #7
F.eks.:

$where = "";
if (isset($_GET['id']) && !empty($_GET['id'])) {
  $where = 'WHERE id = ' . $_GET['id'];
} else {
  $where = 'WHERE id = 1';
}
Avatar billede snigeren Nybegynder
13. november 2005 - 17:46 #8
ahh ja selvfølgelig...

Men når jeg sætter din kode ind i stedet får jeg følgende fejl:

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '= 1' at line 1

linie 1 er bare <?php

Jeg har prøvet at nøjes med at sætte dette ind:
$where = 'WHERE id = 1';

og der får jeg stadig samme fejl... burden den ikke bare sige at id = 1 i den sætning?
Avatar billede jaw Nybegynder
13. november 2005 - 17:49 #9
Den linie 1 den refererer til er ikke PHP's linie 1, men forespørgslens linie 1.

Men paste lige hvad du har.
Avatar billede snigeren Nybegynder
13. november 2005 - 17:57 #10
uhm jeg har:

<?php

include("db.php");
   
$cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);
   
$where = "";
if (isset($_GET['id']) && !empty($_GET['id'])) {
  $where = 'WHERE id = ' . $_GET['id'];
} else {
  $where = 'WHERE id = 1';
}
   
$query1 = mysql_query("SELECT * FROM sideindhold" . $where)or die(mysql_error());
$indhold = mysql_fetch_array($query1);
?>

og til at hente teksten ud de rigtige steder har jeg:

<tr>
<td align="left" valign="top" class="style2"><h1><?php echo $indhold['headline']?></h1>
<p><?php echo nl2br($indhold['indhold']);?></p></td>
</tr>
Avatar billede jaw Nybegynder
13. november 2005 - 18:02 #11
Ved ikke lige om det ændrer noget, men skift lige ' til " i din $where.
Avatar billede jaw Nybegynder
13. november 2005 - 18:03 #12
For den giver ingen fejl hvis du angiver det i adresselinien, vel?
Avatar billede snigeren Nybegynder
13. november 2005 - 18:09 #13
jow det gør den faktisk,.. hvis jeg skriver ...php?id=2 i adresselinien får jeg =2 fejl i stedet for =1 fejl
Avatar billede jaw Nybegynder
13. november 2005 - 18:12 #14
Sådan skal den være:
$query1 = mysql_query("SELECT * FROM sideindhold " . $where)or die(mysql_error());
Avatar billede snigeren Nybegynder
13. november 2005 - 18:20 #15
tsk tsk havde glemt i mellemrum flot nok :P

Tak for hjælpen m8 smider du ikke lige et svar =D
Avatar billede jaw Nybegynder
13. november 2005 - 18:28 #16
Jeg så det heller ikke før nu :) Og selv tak...
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