Avatar billede freakazoid18 Nybegynder
26. september 2003 - 11:46 Der er 33 kommentarer og
1 løsning

Edit funktion.

Hmmfr
jeg har en del problemmer med min edit funktion... JEg har dette script...

:KODE:
<?php
$hent = mysql_query("SELECT * FROM forum_body WHERE id='$_GET[id]'") or die (mysql_error());
$row = mysql_fetch_array($hent);
?>
<center>
  <table cellpadding="0" cellspacing="0" border="0" width="450" style="FONT-SIZE: 8pt">
    <tr>
      <td valign="top">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
          <p>
            <input type="hidden" name="perform" value="thread">
            Name:<br>
            <input type="text" name="navn" value="<?php echo $_SESSION['Name']; ?>" style="width: 115; color: #949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59; border-width: 0">
            <br>
            <br>
            Email: <br>
            <input type="text" name="email" value="<?php echo $row[email]; ?>" style="width: 115; color: #949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59; border-width: 0">
            <br>
            <br>
            Headline:<br>
            <input type="text" name="overskrift" value="<?php echo $row[overskrift]; ?>" style="width: 115; color: #949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59; border-width: 0">
          </p>
          <p>Inviter:<br>
            <textarea name="forsmag" cols="120" rows="3" style="width: 400px"><?php echo $row[forsmag]; ?></textarea>
            <br>
            <br>
            The news:<br>
            <textarea rows="20" name="txt" style="width: 400px"><?php echo $row[txt]; ?></textarea>
            <br>
            <br>
            <input type="hidden" name="op" value="ds">
            <input type="submit" value="Opdater">
            <br>
          </p>
        </form>
<?php
if ($_POST['op'] == 'ds') {
    mysql_query("UPDATE forum_body SET navn='$_POST[navn]', email='$_POST[email]', overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$id'") or die ("Dine settings er opdateret...");
    echo 'Dine settings er opdateret...';
}
?>

</td></tr></table></center>
:KODE SLUT:

og jeg har en side hvor jeg har linket til denne side med hjælp af disse links... http://www.clan-escapers.dk/edit_news.php?id=56 fx det er oxo fint nok... den henter det dataen ind i min form... men når jeg trykker opdater så siger den settings saved... or some.. men den gør det bare ikke :/ håber i kan hjælpe
Avatar billede zynix Nybegynder
26. september 2003 - 11:50 #1
mysql_query("UPDATE forum_body SET navn='$_POST[navn]', email='$_POST[email]', overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$_GET[id]'") or die (mysql_error());

Du hentede ikke id'et, som variablen var tom, og opdaterede ingen records.

Har også sat en mysql_error på så du får en fejl hvis der er en
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 11:55 #2
hmm det virker stadig ikke :(
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 11:57 #3
<?php
require("tjeklogin.php");
$hent = mysql_query("SELECT * FROM forum_body WHERE id='$_GET[id]'") or die (mysql_error());
$row = mysql_fetch_array($hent);
?>
<center>
  <table cellpadding="0" cellspacing="0" border="0" width="450" style="FONT-SIZE: 8pt">
    <tr>
      <td valign="top">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
          <p>
            <input type="hidden" name="perform" value="thread">
            <br>
            Headline:<br>
            <input type="text" name="overskrift" value="<?php echo $row[overskrift]; ?>" style="width: 115; color: #949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59; border-width: 0">
</p>
          <p>Inviter:<br>
            <textarea name="forsmag" cols="120" rows="3" style="width: 400px"><?php echo $row[forsmag]; ?></textarea>
            <br>
            <br>
            The news:<br>
            <textarea rows="20" name="txt" style="width: 400px"><?php echo $row[txt]; ?></textarea>
            <br>
            <br>
            <input type="hidden" name="op" value="ds">
            <input type="submit" value="Opdater">
            <br>
          </p>
        </form>
<?php
if ($_POST['op'] == 'ds') {
    mysql_query("UPDATE forum_body SET overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$_GET[id]'") or die (mysql_error());
    echo 'Dine settings er opdateret...';
}
?>

</td></tr></table></center>
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 11:57 #4
har bare lige fjernet 2 felter ;) men virker stadig ikke :(
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 12:36 #5
tom for idér ?
Avatar billede tjens Nybegynder
26. september 2003 - 14:08 #6
Alle andre felter er $_POST.

Hva mæ
  where id = '$_POST[id]'
i update-sql'en
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 14:31 #7
dur heller ikke :(
Avatar billede tjens Nybegynder
26. september 2003 - 14:57 #8
Flyt

if ($_POST['op'] == 'ds') {
    mysql_query("UPDATE forum_body SET overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$_POST[id]'") or die (mysql_error());
    echo 'Dine settings er opdateret...';
}

helt op efter din require("tjeklogin.php");

Jeg tror at scriptet stopper på
$hent = mysql_query("SELECT * FROM forum_body WHERE id='$_GET[id]'") or die (mysql_error());
fordi der ikke er nogen $_GET variable fra browseren når der skal opdateres.
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 15:00 #9
hmmfr hvordan viul du have min fil tila t se ud ?
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 15:02 #10
<?php
require("tjeklogin.php");
if ($_POST['op'] == 'ds') {
    mysql_query("UPDATE forum_body SET overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$_GET[id]'") or die (mysql_error());
    echo 'Dine settings er opdateret...';
}
$hent = mysql_query("SELECT * FROM forum_body WHERE id='$_GET[id]'") or die (mysql_error());
$row = mysql_fetch_array($hent);
?>
<center>
  <table cellpadding="0" cellspacing="0" border="0" width="450" style="FONT-SIZE: 8pt">
    <tr>
      <td valign="top">
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
          <p>
            <input type="hidden" name="perform" value="thread">
            <br>
            Headline:<br>
            <input type="text" name="overskrift" value="<?php echo $row[overskrift]; ?>" style="width: 115; color: #949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59; border-width: 0">
</p>
          <p>Inviter:<br>
            <textarea name="forsmag" cols="120" rows="3" style="width: 400px"><?php echo $row[forsmag]; ?></textarea>
            <br>
            <br>
            The news:<br>
            <textarea rows="20" name="txt" style="width: 400px"><?php echo $row[txt]; ?></textarea>
            <br>
            <br>
            <input type="hidden" name="op" value="ds">
            <input type="submit" value="Opdater">
            <br>
          </p>
        </form>

</td></tr></table></center>
Avatar billede tjens Nybegynder
26. september 2003 - 15:07 #11
Ja sådan.

Eller også del den op i to php filer. Det er jo ingen fordel at bruge action="<?php echo $_SERVER['PHP_SELF'];?> i den her opgave hvor visning af formular, og databaseopdatering er to vidt forskellige ting.
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 15:41 #12
edit_news.inc.php
<?php
$hent = mysql_query("SELECT * FROM forum_body WHERE id='$_GET[id]'") or die (mysql_error());
$row = mysql_fetch_array($hent);
?>
<center>
  <table cellpadding="0" cellspacing="0" border="0" width="450" style="FONT-SIZE: 8pt">
    <tr>
      <td valign="top">
<form method="post" action="tag_edit_news.php">
          <p>
            <input type="hidden" name="perform" value="thread">
            <br>
            Headline:<br>
            <input type="text" name="overskrift" value="<?php echo $row[overskrift]; ?>" style="width: 115; color: #949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59; border-width: 0">
</p>
          <p>Inviter:<br>
            <textarea name="forsmag" cols="120" rows="3" style="width: 400px"><?php echo $row[forsmag]; ?></textarea>
            <br>
            <br>
            The news:<br>
            <textarea rows="20" name="txt" style="width: 400px"><?php echo $row[txt]; ?></textarea>
            <br>
            <br>
            <input type="hidden" name="op" value="ds">
            <input type="submit" value="Opdater">
            <br>
          </p>
        </form>

</td></tr></table></center>

____________
tag_edit_news.php

<?php
include("config.php");
?>
<?php
if ($_POST['op'] == 'ds') {
    mysql_query("UPDATE forum_body SET overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$_GET[id]'") or die (mysql_error());
    echo 'Dine settings er opdateret...';
}
?>

Det virker HAT er ved at gå op i limningen... :SSS GRRR
Avatar billede tjens Nybegynder
26. september 2003 - 15:56 #13
Du har ikke rettet $_GET[id] til $_POST[id] update'n !

Ligger det med at connecte til databasen i config.php?
Avatar billede tjens Nybegynder
26. september 2003 - 15:58 #14
En anden havde bøvl med samme script. Se denne:
http://www.eksperten.dk/spm/405133
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:02 #15
det har jeg nu og det virker ikke :/
jeg fatter det ikke :/
Avatar billede tjens Nybegynder
26. september 2003 - 16:13 #16
Hvor har du noget der ligner dette henne, i disse to scripts?

$con=mysql_connect("localhost", "root", "xxx")or die("Connect Error: ".mysql_error());
$db="MyDb";
mysql_select_db($db, $con);
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:14 #17
config.php
Avatar billede tjens Nybegynder
26. september 2003 - 16:24 #18
Virker der første script, som henter data fra mysql, og viser html-form'en nu, hvor du har splittet i to php-filer?

Har du husket at rette "action=" i det script, der skal sende id som en get-variabel til ovenstående form-visnings script?

lav en lille forskel i edit_news.inc.php , så du kan se at det er den nye der bliver kaldt.
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:28 #19
jaja den kan godt hente dataen ind så det står i formen... :)
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:29 #20
men når jeg har skrevet noget andet i de forms... så skriver den Dine settings er opdateret... på en blank side hvilket også er fint nok... men den opdatere bare INGEN TING :(
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:31 #21
ja jeg har husket diverse ting...
Avatar billede tjens Nybegynder
26. september 2003 - 16:35 #22
Prøv at indsætte
echo "<p>TESTing:<br> overskrift='$_POST[overskrift]'<br> forsmag='$_POST[forsmag]'<br> txt='$_POST[txt]'<br>id = '$_GET[id]' ";

i starten af update scriptet, så du kan se om variablene kommer ind fra browseren.
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:39 #23
TESTing:
overskrift='45'
forsmag='45'
txt='5'
id = '' Dine settings er opdateret...

og det er oxo det jeg har rettet dem til...
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:40 #24
det er det pisse id den er gal med :P
Avatar billede tjens Nybegynder
26. september 2003 - 16:42 #25
Hov. jeg skrev også $_GET hvor det skulle have været $_POST
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:46 #26
TESTing:
overskrift='asdasdasd'
forsmag='qweasd'
txt='qweasdasd'
id = '' Dine settings er opdateret...
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:47 #27
<?php
include("config.php");
?>
<?php
echo "<p>TESTing:<br> overskrift='$_POST[overskrift]'<br> forsmag='$_POST[forsmag]'<br> txt='$_POST[txt]'<br>id='$_POST[id]' ";
if ($_POST['op'] == 'ds') {
    mysql_query("UPDATE forum_body SET overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$_POST[id]'") or die (mysql_error());
    echo 'Dine settings er opdateret...';
}
?>
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 16:51 #28
oki... tror jeg vil lave et helt nyt script til at editere i min db...

min db ser således ud

:KODE:
CREATE TABLE forum_body (
  id int(11) NOT NULL auto_increment,
  overskrift tinytext NOT NULL,
  navn tinytext NOT NULL,
  email tinytext NOT NULL,
  dato tinytext NOT NULL,
  txt text NOT NULL,
  svar int(11) NOT NULL default '0',
  forsmag text NOT NULL,
  country tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (id)
) TYPE=MyISAM;
:KODE SLUT:

Har du nogen nemme forslag how to... ?
Avatar billede tjens Nybegynder
26. september 2003 - 17:46 #29
Feltet id er jo slet ikke med i din form!

Tilføj
<input type="hidden" name="id" value="<?php echo $_GET[id]?> ">

Denne gang skal det være GET, fordi vi henter id værdien fra startsiden.
Lav evt en view source i browseren, og vis HTMLen med FORMen her.
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 18:26 #30
ok dvs. at mine filer skal se ud som følger... :)

edit_news.inc.php
_______________________________________________________--
<?php
$hent = mysql_query("SELECT * FROM forum_body WHERE id='$_GET[id]'") or die (mysql_error());
$row = mysql_fetch_array($hent);
?>
<center>
  <table cellpadding="0" cellspacing="0" border="0" width="450" style="FONT-SIZE: 8pt">
    <tr>
      <td valign="top">
<form method="post" action="tag_edit_news.php">
          <p>
            <input type="hidden" name="perform" value="thread">
            <br>
<input type="hidden" name="id" value="<?php echo $_GET[id]?> ">
<br>
            Headline:<br>
            <input type="text" name="overskrift" value="<?php echo $row[overskrift]; ?>" style="width: 115; color: #949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59; border-width: 0">
</p>
          <p>Inviter:<br>
            <textarea name="forsmag" cols="120" rows="3" style="width: 400px"><?php echo $row[forsmag]; ?></textarea>
            <br>
            <br>
            The news:<br>
            <textarea rows="20" name="txt" style="width: 400px"><?php echo $row[txt]; ?></textarea>
            <br>
            <br>
            <input type="hidden" name="op" value="ds">
            <input type="submit" value="Opdater">
            <br>
          </p>
        </form>

</td></tr></table></center>

___________________________________________________________
tag_edit_news.php
___________________________________________________________

<?php
include("config.php");
?>
<?php
if ($_POST['op'] == 'ds') {
    mysql_query("UPDATE forum_body SET overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id = '$_POST[id]'") or die (mysql_error());
    echo 'Dine settings er opdateret...';
}
?>

_______________________________________________________________________

Jeg er ikk hjemme lidt nu...
men håber det virker ellers gider ikk rette det... så forhøjer jeg point tilæ 100 hvis du får det til at spille... :)
Avatar billede tjens Nybegynder
26. september 2003 - 21:13 #31
Nu har jeg tastet 3 filer på min egen maskine, og det virker:

forumupd.html >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

<html>
<body>
<form name="update" method="post" action="forumform.php">
ID: 
<input name="id" type="text" >
<input type="submit" name="Submit" value="Submit">
</form>
</body></html>

forumform.php >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

<html><body>
<?php
$con=mysql_connect("localhost", "root", "")or die("Connect Error: ".mysql_error());
$db="exp";
mysql_select_db($db, $con);

$id = $_REQUEST[id];
// Request the data
$sql = "SELECT * FROM forum_body WHERE id = '$id'";
echo "<p>TEST: sql = $sql</p>";
$result = @mysql_query($sql);
if (!$result) {
  echo("<p>Error performing query: " . mysql_error() . "</p>");
  exit(); }
$num_results = mysql_num_rows($result);
if (!(mysql_num_rows($result)==1) ) {
  echo("<p>Selected $num_results row from database. Should be 1 row</p>");
  exit(); }
// Display the data
while ( $row = mysql_fetch_array($result) ) {
?>
<center>
<center>
  <table cellpadding="0" cellspacing="0" border="0" width="450" style="FONT-SIZE: 8pt">
    <tr>
      <td valign="top">
<B> Ret ID <?php echo $id ?></B>
<form action="forumupddb.php" method="POST" name="form1">
          <p>
            Headline:<br>
            <input type="text" name="overskrift" value="<?php echo $row[overskrift]; ?>" style="width: 115; color:

#949CA5; background-image:url(images/form.gif); font-size: 7pt; font-family: Verdana; background-color: #454D59;

border-width: 0">
</p>
          <p>Inviter:<br>
            <textarea name="forsmag" cols="120" rows="3" style="width: 400px"><?php echo $row[forsmag]; ?></textarea>
            <br>
            <br>
            The news:<br>
            <textarea rows="20" name="txt" style="width: 400px"><?php echo $row[txt]; ?></textarea>
            <br>
            <br>
            <input type="hidden" name="id" value="<?php echo $id?>">
            <input type="submit" value="Opdater">
            <br>
          </p>
        </form>

</td></tr></table></center>
<?php
}
mysql_close();
?>
</body></html>

forumupddb.php >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

<html><body>
<?php
$con=mysql_connect("localhost", "root", "")or die("Connect Error: ".mysql_error());
$db="exp";
mysql_select_db($db, $con);

$sql = "UPDATE forum_body SET overskrift='$_POST[overskrift]', forsmag='$_POST[forsmag]', txt='$_POST[txt]' where id =

'$_POST[id]'";
echo "<h1>TEST-sql:</h1><p> $sql</p>";

if(isset($_REQUEST[id])){
    mysql_query($sql) or die (mysql_error());
    echo '<h2>Dine settings er opdateret...</h2>';
}
mysql_close();
?>
<a href="forumupd.html">Ret en ny id</a><br />
<a href="forumform.php?id=<?php echo $_REQUEST[id]?>">Ret id <?php echo $_REQUEST[id]?> igen</a>
</body></html>
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 22:52 #32
nu virker det du er en skat :D
Avatar billede freakazoid18 Nybegynder
26. september 2003 - 23:20 #33
så kom da med et svar og de 100point er dine ;)
Avatar billede tjens Nybegynder
26. september 2003 - 23:32 #34
ok, 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