Gå til innhold

php preview funksjon


Anbefalte innlegg

Hei

 

Jeg hjelper til på en side som bruker php og SQL databaser.

Jeg ønsker å legge til en enkel preview funksjon på legg til nyheter siden.

 

Koden som blir brukt er:

if($_POST['add']) {
$add_query = "INSERT INTO $tblNews (categorie_ID, title, postdate, posttime, body, link1, link2, username) VALUES
('" . $_POST['categorie_ID'] . "',
'" . $_POST['title'] . "',
'" . $_POST['postdate'] . "',
'" . $_POST['posttime'] . "',
'" . $_POST['body'] . "',
'" . $_POST['link1'] . "',
'" . $_POST['link2'] . "',
'" . $_POST['username'] . "')";
$add_result = mysql_query($add_query);
echo "The record has been added<br>";

 

Finnes det en enkel måte å legge til en forhåndsvisning av nyheten, uten å måtte legge til posten i SQL databasen?

 

Jeg er nokså ny på PHP så vær hyggelige :blush:

Endret av Icenor
Lenke til kommentar
Videoannonse
Annonse

Jeg prøver også å få en liste til å bare vise de 5 siste og det nyeste skal kommer først på denne koden:

 

$sql_query	=	"	SELECT  n.news_ID        AS n_id, 
          n.title    AS n_title, 
          n.postdate               AS n_date,
                 n.body         AS n_body,
          n.username             AS n_username
   	
   	FROM  	$tblNews n"; 
   
$result = mysql_query($sql_query) or die(mysql_error());

 

 

Antar at jeg skal bruke n.news_ID DESC LIMIT 5 , men hvordan skal det skrives i koden?

Endret av Icenor
Lenke til kommentar

Du kunne jo lagt det inn i databasen, med en kolonne som heter "previewOnly smallint(1) default 1", som du endrer til 0 når den er "godkjent". Da kjører du selvfølgelig SELECT FROM $tblnews WHERE previewOnly = 0 i selve news-scriptet. Må legge inn noen UPDATE'er og DELETE'r om man gjør noe annet enn å godkjenne, da....

 

 

Ellers må du vel kjøre echo $_POST['body']; og så legge inn en <input type='hidden' name='body' value='$_POST['body']> for å sende det videre til neste runde.

Lenke til kommentar
Gjest Slettet-df17e

Mye bedere og bruke sessions til dette!

 

Jeg syntes det blir litt tungvindt og lagre forhåndsviste ting i en database.

Lenke til kommentar

Er det ikke en grei løsning med preview som de gjør på denne forum siden når du skal previewe et innlegg, at previewen kommer over formen, slik at når du trykker preview knapp, så sendes dataen til samme side som formen, og tester om request method er post, også viser det som er postet.

 

Spm2:

$sql_query = " SELECT  n.news_ID        AS n_id,
         n.title    AS n_title,
         n.postdate               AS n_date,
                n.body         AS n_body,
         n.username             AS n_username
  
   FROM   $tblNews n ORDER BY n.news_ID DESC LIMIT 5";

bli vel riktig ?

Lenke til kommentar

Det er ikke en god idé å lagre forhåndsvisningen i en database. Da må det slettes igjen om det ikke er korrekt, eller så må man oppdatere for å godkjenne.

 

Sessions vil også medføre mye ekstra jobb. Da må det lagres i en session og så hentes igjen.

 

Når man programmerer er det viktig at man skriver så raske løsninger som mulig.

 

Lag preview side og sett inn $_POST['felt'] der innholdet skal være. Så der du vil ha "lagre" knappen så setter du inn et skjema som oppretter hidden felter med all POST verdiene.

F.eks. slik:

echo "<form ...>";

foreach($_POST as $var => $value)

{

echo "<input name=\"$var\" type=\"hidden\" value=\"$value\">";

}

echo "</form>";

 

 

For å hente de 5 siste innleggene så kan du f.eks. bruke denne:

SELECT * FROM databasenavn ORDER BY id DESC

Bytt ut databasenavn og navnet på id feltet.

Lenke til kommentar

Hehe... glemte å skrive det.

Dersom det er en mindre database blir det mer jobb for MySQL å begrense (limit) rader i forhold til å hente ut hele databasen. Ved å bruke LIMIT så slipper du å tenke på det senere, i tillegg til at du slipper litt koding i PHP. Bruk det hvis det blir en del rader med tiden!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...