Avatar billede mhnielsen Nybegynder
18. marts 2003 - 14:30 Der er 14 kommentarer og
1 løsning

gem til mysql

Hej

Jeg har lavet et script, hvor man taster ngt ind i et teksfelt.. men hver gang man lukker browseren og så åbner den igen.. forsvinder det man har skrevet i db.

Mit script er:
<?php
$text=$_POST[text];
require_once('db_settings.php');
require_once( 'DB.php' );
$query = "mysql://$dbuser:$dbpass@$dbhost/$dbname";
$db = DB::connect( $query );
$query = mysql_query("update test set text = '$text' where id = 1") or die (mysql_error());

?>
Avatar billede martinhk Nybegynder
18. marts 2003 - 14:36 #1
Hvorfor skriver du altid til id=1??
Avatar billede mhnielsen Nybegynder
18. marts 2003 - 14:38 #2
det er fordi det er en konkret linie jeg skal skifte..
Avatar billede martinhk Nybegynder
18. marts 2003 - 14:40 #3
Hvad mener du med at det forsvinder??
Er det hele "recorden" der forsvinder, eller bliver indholdet sat til 0 eller hvad?
Avatar billede mhnielsen Nybegynder
18. marts 2003 - 14:41 #4
det er indholdet i feltnavnet "text" der forsvinder som har id=1...
Avatar billede hsg Nybegynder
18. marts 2003 - 14:43 #5
bør man ikke skrive: $text=$_POST['text'];
eller er ' underordnet i denne sammenhæng?
Avatar billede martinhk Nybegynder
18. marts 2003 - 14:44 #6
Hvor kalder du dit script henne??

Tror du ikke bare du får kaldt scriptet på et tidspunkt hvor der ikke står noget i textfeltet.
Avatar billede mhnielsen Nybegynder
18. marts 2003 - 14:45 #7
måske.. hele mit script er sådan her:
<BODY>
<?php echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<p><font face="Verdana, Arial, Helvetica, sans-serif"></font></p>
<p>&nbsp;</p>
<p>Her kan du rette, hvad der st&aring;r i tekstfeltet :</p>
<p>
<?php
$text=$_POST[text];
require_once('db_settings.php');
require_once( 'DB.php' );
$query = "mysql://$dbuser:$dbpass@$dbhost/$dbname";
$db = DB::connect( $query );
$query = mysql_query("update test set text = '$text' where id = 1") or die (mysql_error());

?>
</p>
<FORM METHOD=POST ACTION=<?php echo $PHP_SELF;?>>
        <TEXTAREA NAME=text cols="40" rows="5" wrap="VIRTUAL"><? echo $text;?></TEXTAREA><br>
        <input name="SUBMIT" type=SUBMIT value=Indsæt>
</form>

<p>&nbsp;</p>
</BODY>
Avatar billede martinhk Nybegynder
18. marts 2003 - 14:49 #8
Du skriver ned i databasen hver gang din side loades.

Du skal vente med at udføre dit script indtil der er trykket på SUBMIT knappen, det kan du gøre med en enkelt if-sætning.
if($_POST[text])
{
...
}
Avatar billede mhnielsen Nybegynder
18. marts 2003 - 14:51 #9
Jeg er ikke den store haj til php.. så hvor ville du placere den? :)
Avatar billede martinhk Nybegynder
18. marts 2003 - 14:52 #10
if($_POST[text])
{
  $text=$_POST[text];
  require_once('db_settings.php');
  require_once( 'DB.php' );
  $query = "mysql://$dbuser:$dbpass@$dbhost/$dbname";
  $db = DB::connect( $query );
  $query = mysql_query("update test set text = '$text' where id = 1") or die mysql_error());
}
Avatar billede mhnielsen Nybegynder
18. marts 2003 - 14:59 #11
Nice tak.. så må du hellere få dine point.. :)
Jeg har godt nok et til spørgsmål.. Tekstfeltet man skriver i gemmer teksten deri når man refresher..men når man lukker browseren er det der ikke når man åbner den igen.. jeg kan bare forhøje point, hvis du kan/vil hjælpe med det også?
Avatar billede martinhk Nybegynder
18. marts 2003 - 15:05 #12
Browseren kan ikke huske noget fra gang til gang når du lukker den.

Hvis du vil have at din tekst stadig er der næste gang du åbner browseren er du nødt til at hive den ud af databasen igen med:

$query = mysql_query("SELECT text FROM test WHERE id=1");
$result = mysql_fetch_array($query);
$text = $result['text'];

Dette skal selvfølgelig kaldes hver gang din side loades dvs. uden for if-sætningen. Den del hvor du connecter til databasen skal selvfølgelig kaldes først.
Avatar billede mhnielsen Nybegynder
18. marts 2003 - 15:18 #13
Når jeg har sat den der siger den fejl hver gang browsenren åbnes.. Har jeg sat den forkert?

<?php

if($_POST[text])
{
$text=$_POST[text];
require_once('db_settings.php');
require_once( 'DB.php' );
$query = "mysql://$dbuser:$dbpass@$dbhost/$dbname";
$db = DB::connect( $query );
$query = mysql_query("update test set text = '$text' where id = 1") or die (mysql_error());
}
$query = mysql_query("SELECT text FROM test WHERE id=1");
$result = mysql_fetch_array($query);
$text = $result['text'];
?>
Avatar billede martinhk Nybegynder
18. marts 2003 - 15:21 #14
Som sagt så skal du connecte til databasen hver gang...
<?
require_once('db_settings.php');
require_once( 'DB.php' );
$query = "mysql://$dbuser:$dbpass@$dbhost/$dbname";
$db = DB::connect( $query );
$query = mysql_query("SELECT text FROM test WHERE id=1");
$result = mysql_fetch_array($query);
$text = $result['text'];

if($_POST[text])
{
$text=$_POST[text];
$query = mysql_query("update test set text = '$text' where id = 1") or die (mysql_error());
}
?>
Avatar billede mhnielsen Nybegynder
18. marts 2003 - 15:24 #15
tak martinhk.. det virker kanon nu..
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