Avatar billede snackhunter Nybegynder
19. marts 2003 - 12:34 Der er 21 kommentarer og
1 løsning

2 felter

Hej.
Jeg har lavet et felt hvor man kan opdatere ngt tekst som ligger i en db.

mit script er :
<?
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());
}
?>
</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>

Hvad skal jeg gøre, hvis jeg vil have et til felt som man skal kunne skrive i og som gemmer i en anden tabel.
Avatar billede snackhunter Nybegynder
19. marts 2003 - 12:37 #1
eller samme tabel.. bare under id=2
Avatar billede schaefner Juniormester
19. marts 2003 - 12:45 #2
Uden at jeg helt forstår dit spørgsmål, så er det vel bare to Updates du laver:

<?
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];
mysql_query("update test set text = '$text' where id = 1") or die (mysql_error());
mysql_query("update test set overskrift = '$overskrift' where id = 2") or die (mysql_error());
}
?>
</p>
<FORM METHOD=POST ACTION=<?php echo $PHP_SELF;?>>
        <input type="text" name="overskrift" value="<? echo $overskrift;?>">
        <TEXTAREA NAME=text cols="40" rows="5" wrap="VIRTUAL"><? echo $text;?></TEXTAREA><br>
        <input name="SUBMIT" type=SUBMIT value=Indsæt>
</form>
Avatar billede schaefner Juniormester
19. marts 2003 - 12:52 #3
Lidt pænere stillet op:

<?php
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);

if(isset($_POST['send'])){
    $text = $_POST['text'];
    $overskrift = $_POST['overskrift'];
    mysql_query("UPDATE test SET text='$text' WHERE id = 1") or die (mysql_error());
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());
}
?>
<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="overskrift" value="<? echo "$result[overskrift]"; ?>">
<textarea name="text" cols="40" rows="5" wrap="virtual"><? echo "$result[text]"; ?></TEXTAREA><br>
<input name="send" type="submit" value="Indsæt">
</form>
Avatar billede snackhunter Nybegynder
19. marts 2003 - 12:57 #4
Jeg vil gerne have to felter med hver sin submit knap hvor brugeren kan taste tekst ind. Når jeg indsætter det du skrev får jeg dette svar:Unknown column 'overskrift' in 'field list'
Avatar billede schaefner Juniormester
19. marts 2003 - 12:59 #5
overskrift er selvfølgelig kun et eksempel, det skal jo øndres til det felt du rent faktisk skal bruge :)
Avatar billede schaefner Juniormester
19. marts 2003 - 13:02 #6
Prøv det her så:

<?php
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);

if(isset($_POST['text'])){
    $text = $_POST['text'];
    mysql_query("UPDATE test SET text='$text' WHERE id = 1") or die (mysql_error());
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());
}
if(isset($_POST['overskrift'])){
    $overskrift = $_POST['overskrift'];
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());
}
?>
<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="overskrift" value="<? echo "$result[overskrift]"; ?>">
<textarea name="text" cols="40" rows="5" wrap="virtual"><? echo "$result[text]"; ?></TEXTAREA><br>
<input name="send" type="submit" value="Indsæt">
</form>
Avatar billede schaefner Juniormester
19. marts 2003 - 13:03 #7
Hov, en lille fejl:

<?php
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);

if(isset($_POST['text'])){
    $text = $_POST['text'];
    mysql_query("UPDATE test SET text='$text' WHERE id = 1") or die (mysql_error());
}
if(isset($_POST['overskrift'])){
    $overskrift = $_POST['overskrift'];
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());
}
?>
<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="overskrift" value="<? echo "$result[overskrift]"; ?>">
<textarea name="text" cols="40" rows="5" wrap="virtual"><? echo "$result[text]"; ?></TEXTAREA><br>
<input name="send" type="submit" value="Indsæt">
</form>
Avatar billede schaefner Juniormester
19. marts 2003 - 13:19 #8
Og hvis der skal være et submit-felt til hver:

<?php
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);

if(isset($_POST['post_text'])){
    $text = $_POST['text'];
    mysql_query("UPDATE test SET text='$text' WHERE id = 1") or die (mysql_error());
}
if(isset($_POST['post_overskrift'])){
    $overskrift = $_POST['overskrift'];
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());
}
?>
<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="overskrift" value="<? echo "$result[overskrift]"; ?>"><br>
<input name="post_overskrift" type="submit" value="Indsæt text">
<hr>
<textarea name="text" cols="40" rows="5" wrap="virtual"><? echo "$result[text]"; ?></TEXTAREA><br>
<input name="post_text" type="submit" value="Indsæt text">
</form>
Avatar billede snackhunter Nybegynder
19. marts 2003 - 13:23 #9
den gemmer det i db nu.. men i teksfelter forsvinder det igen.. og skriver det jeg skrev tidligere..:/
Avatar billede schaefner Juniormester
19. marts 2003 - 13:30 #10
Prøv:

<?php
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);
if(isset($_POST['post_text'])){
    $text = $_POST['text'];
    mysql_query("UPDATE test SET text='$text' WHERE id = 1") or die (mysql_error());
    header("location: $PHP_SELF");
}
if(isset($_POST['post_overskrift'])){
    $overskrift = $_POST['overskrift'];
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());
    header("location: $PHP_SELF");
}
?>
<html>
<head></head>

<body>

<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="overskrift" value="<? echo "$result[overskrift]"; ?>"><br>
<input name="post_overskrift" type="submit" value="Indsæt text">
<hr>
<textarea name="text" cols="40" rows="5" wrap="virtual"><? echo "$result[text]"; ?></TEXTAREA><br>
<input name="post_text" type="submit" value="Indsæt text">
</form>

</body>
</html>
Avatar billede snackhunter Nybegynder
19. marts 2003 - 13:38 #11
det virker fint med at hente det ind i db, men i overskrift forsvinder teksten i feltet.. og i text henter den det frem man skrev lige inden man skrev det nye..
Avatar billede schaefner Juniormester
19. marts 2003 - 13:42 #12
Med hensyn til at overskriften forsvinder, så skyldes det nok at du opdaterer overskrift i rækken med id 2, men henter overskrift ud fra rækken som har id 1 :)
Avatar billede snackhunter Nybegynder
19. marts 2003 - 13:44 #13
den ser sådan her ud nu:
<?php
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");
$query = mysql_query("SELECT overskrift FROM test WHERE id=2");
$result = mysql_fetch_array($query);
if(isset($_POST['post_text'])){
    $text = $_POST['text'];
    mysql_query("UPDATE test SET text='$text' WHERE id = 1") or die (mysql_error());
   
}
if(isset($_POST['post_overskrift'])){
    $overskrift = $_POST['overskrift'];
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());

}
?>
<html>
<head></head>

<body>

<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="overskrift" value="<? echo "$result[overskrift]"; ?>"><br>
<input name="post_overskrift" type="submit" value="Indsæt text">
<hr>
<form method="post" action="<?php echo $PHP_SELF; ?>">
<textarea name="text" cols="40" rows="5" wrap="virtual"><? echo "$result[text]"; ?></TEXTAREA><br>
<input name="post_text" type="submit" value="Indsæt text">
</form>


Kan du se om der er en noget galt..
Avatar billede schaefner Juniormester
19. marts 2003 - 13:50 #14
Prøv det sidste eksempel jeg postede det med header("location: $PHP_SELF");
Avatar billede schaefner Juniormester
19. marts 2003 - 13:51 #15
Skal med bussen nu, men vender frygteligt tilbage når jeg kommer hjem ;)
Avatar billede snackhunter Nybegynder
19. marts 2003 - 14:04 #16
oki :)
Den melder desværre fejl:

Warning: Cannot add header information - headers already sent by (output started at /var/www/html/php/cms_test.php:2) in /var/www/html/php/cms_test.php
Avatar billede schaefner Juniormester
19. marts 2003 - 16:47 #17
Du må ikke udskrive noget før header("location: $PHP_SELF");
Avatar billede snackhunter Nybegynder
19. marts 2003 - 21:49 #18
Hey schaefner..

Jeg kan desværre ikke prøve det i aften.. det må være sket en fejl da jeg sendte dem hjem..
Men håber du kan hjælpe i morgen, hvis jeg ikke selv får det til at virke :)
Avatar billede snackhunter Nybegynder
19. marts 2003 - 21:49 #19
da jeg sendte filerne :)
Avatar billede snackhunter Nybegynder
20. marts 2003 - 09:40 #20
God morgen..
schaefner>står det ik som det burde nu?

<?php
echo "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<p><font face="Verdana, Arial, Helvetica, sans-serif">GUI til E-learning system</font></p>
<p>&nbsp;</p>
<p>Her kan du rette, hvad der st&aring;r i tekstfeltet :</p>
<p>
<?php
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");
$query = mysql_query("SELECT overskrift FROM test WHERE id=2");
$result = mysql_fetch_array($query);
if(isset($_POST['post_text'])){
    $text = $_POST['text'];
    mysql_query("UPDATE test SET text='$text' WHERE id = 1") or die (mysql_error());
    header("location: $PHP_SELF");

}
if(isset($_POST['post_overskrift'])){
    $overskrift = $_POST['overskrift'];
    mysql_query("UPDATE test SET overskrift='$overskrift' WHERE id = 2") or die (mysql_error());
    header("location: $PHP_SELF");

}
?>
<html>
<head></head>

<body>

<form method="post" action="<?php echo $PHP_SELF; ?>">
<input type="text" name="overskrift" value="<? echo "$result[overskrift]"; ?>"><br>
<input name="post_overskrift" type="submit" value="Indsæt text">
<hr>
<form method="post" action="<?php echo $PHP_SELF; ?>">
<textarea name="text" cols="40" rows="5" wrap="virtual"><? echo "$result[text]"; ?></TEXTAREA><br>
<input name="post_text" type="submit" value="Indsæt text">
</form>
 
<p>&nbsp;</p>
</BODY>
</html>
Avatar billede schaefner Juniormester
21. marts 2003 - 13:32 #21
det burde umiddelbart virke, men jeg har ikkke tjekket det hele igennem
Avatar billede snackhunter Nybegynder
25. marts 2003 - 14:00 #22
lukker lige.. kunne ikke helt få det til at virke.. men du skal have tak for hjælpen ellers schaefner.. jeg giver dig pointene, da du har hjulpet så meget :)
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