Avatar billede trevi Nybegynder
28. maj 2004 - 09:33 Der er 34 kommentarer og
1 løsning

Hvorfor gider den ikke ændre ?

Hej.
jeg har følgende kode:


<?php
require "db.php";
?>
<?php
if( isset($_GET 'id') ) {
$id = mysql_escape_string($_GET 'id'); // sikre id

$sql = "SELECT navn, tekst FROM info WHERE id={$id}";

$res = mysql_query($sql);// or die(mysql_error());
if( $res )
$row = mysql_fetch_array($res);
else
$row = false;
}
else {
$row = false;
}
?>
<?php

if (isset($_POST 'tekst')) {
$tekst = addslashes($_POST 'tekst');
$id = intval($_POST 'id');
mysql_query("UPDATE info SET tekst='$tekst' WHERE id='$id'") or die(mysql_error());
echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";
}

?>
<form action="<? $PHP_SELF ?>" method="post">
<div align="center">
<?php if( $row ) { ?>
<input type="hidden" name="id" value="'<?php echo $_POST 'id'; ?>">
<br>
<table width="215" border="0" cellpadding="0" cellspacing="0" height="164" class="tekst_normal">
<tr>

<td height="18" background="pic/menu4.jpg"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Tekst
i
<?=$row navn?>
:</font></td>
</tr>
<tr>
<td height="19"><textarea name="tekst" rows="8" cols="30" class="box"><?php echo $row 'tekst'; ?></textarea>
</td>
</tr>
</table>
<input type="submit" value="Gem Ændringer" class="submit">
</div>
</form>
<?php } else { ?>
<!-- dette bliver skrevet ud, hvis rækken ikke findes, eller ID ikke er angivet -->
<table width="451" height="8" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="26"><center>&nbsp;Id'et findes ikke</center></td>
</tr>
</table>
<?php } ?>
&nbsp;<br>
<?
mysql_close();
?>


Der skulle virke til at kunne update en tekst i en db. men når jeg har ændret i det og trykket gem så gemmer den det ikke det samme bliver bare stående i boxen. jeg har kigget for meget på det og jeg sidder bare og kigger blind på det lige nu. Derfor håber jeg virkelig at i kan finde fejlen der er.
Avatar billede chries Nybegynder
28. maj 2004 - 09:39 #1
tror ikke du kan:
$id = intval($_POST 'id');

->

$_POST['id']
Avatar billede trevi Nybegynder
28. maj 2004 - 09:49 #2
undskyld .. forkert jeg postede.

site opdate:
<?php
require "db.php";
?>
<?php
if( isset($_GET['id']) ) {
    $id = mysql_escape_string($_GET['id']); // sikre id
     
    $sql = "SELECT navn, tekst FROM info WHERE id={$id}";

$res = mysql_query($sql);// or die(mysql_error());
    if( $res )
        $row = mysql_fetch_array($res);
    else
        $row = false;
}
else {
    $row = false;
}
?>
<?php
   
if (isset($_POST['tekst'])) {
$tekst = addslashes($_POST['tekst']);
$id = intval($_POST['id']);
mysql_query("UPDATE info SET tekst='$tekst' WHERE id='$id'") or die(mysql_error());
    echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row[navn] blev opdagteret.</div>";
}

?>
<form action="<? $PHP_SELF ?>" method="post">
              <div align="center">
              <?php if( $row ) { ?>
              <input type="hidden" name="id" value="'<?php echo $_POST['id']; ?>">
                                    <br>
                                    <table width="215" border="0" cellpadding="0" cellspacing="0" height="164" class="tekst_normal">
                                      <tr>
                                       
              <td height="18" background="pic/menu4.jpg"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Tekst
                i
                <?=$row[navn]?>
                :</font></td>
                                      </tr>
                                      <tr>
                                        <td height="19"><textarea name="tekst" rows="8" cols="30" class="box"><?php echo $row['tekst']; ?></textarea>
                                        </td>
                                      </tr>
                                    </table>
          <input type="submit" value="Gem Ændringer" class="submit">
        </div>
      </form>
      <?php } else  { ?>
                <!-- dette bliver skrevet ud, hvis rækken ikke findes, eller ID ikke er angivet -->
                  <table width="451" height="8" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td height="26"><center>&nbsp;Id'et findes ikke</center></td>
                    </tr>
                  </table>
      <?php } ?>
      &nbsp;<br>
      <?
mysql_close();
?>
Avatar billede trevi Nybegynder
28. maj 2004 - 09:49 #3
og det virker endnu ikke :(
Avatar billede trevi Nybegynder
28. maj 2004 - 09:51 #4
skal der noget med $_GET ind eller noget ?
Avatar billede chries Nybegynder
28. maj 2004 - 10:00 #5
<input type="hidden" name="id" value="'<?php echo $_POST['id']; ?>">
skal det ikke være
<input type="hidden" name="id" value="'<?php echo $row['id']; ?>">
Avatar billede trevi Nybegynder
28. maj 2004 - 10:07 #6
Det virkede heller ikke .. kunne tude hehe ..

du kan se den her: www.vix-mix.dk/info.phps
Avatar billede chries Nybegynder
28. maj 2004 - 10:11 #7
din update skal stå øverst

<?php

if (isset($_POST 'tekst')) {
$tekst = addslashes($_POST 'tekst');
$id = intval($_POST 'id');
mysql_query("UPDATE info SET tekst='$tekst' WHERE id='$id'") or die(mysql_error());
echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";
}

?>

du selecter row A

updater row i db

viser row A

skal være:

updater row i db

du selecter row A

viser row A
Avatar billede trevi Nybegynder
28. maj 2004 - 10:14 #8
skal jeg smide det allerøverst så ?
Avatar billede chries Nybegynder
28. maj 2004 - 10:15 #9
require "db.php";
?>

her

<?php
if( isset($_GET['id']) ) {
Avatar billede trevi Nybegynder
28. maj 2004 - 10:22 #10
nu meddeler den fejl på linje 16 som er:

if (isset($_POST 'tekst')) {
$tekst = addslashes($_POST 'tekst');

dem her.
Ændre jeg dem så til:

if (isset($_POST['tekst'])) {
$tekst = addslashes($_POST['tekst']);

sker der igen ingen ting :(..

se ingen www.vix-mix.dk/phps
Avatar billede trevi Nybegynder
28. maj 2004 - 10:23 #11
Avatar billede chries Nybegynder
28. maj 2004 - 10:24 #12
$_POST 'tekst'
->
$_POST['tekst']

mangler igen
Avatar billede trevi Nybegynder
28. maj 2004 - 10:28 #13
det har jeg ændret.. men der sker ingen ting ved det :(((
Avatar billede chries Nybegynder
28. maj 2004 - 10:29 #14
den skriver ikke:
"<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";
Avatar billede trevi Nybegynder
28. maj 2004 - 10:31 #15
nej det gør den ikke.. eller jo .. den laver echo helt øverst på siden .. men den bruger ikke $row
Avatar billede chries Nybegynder
28. maj 2004 - 10:32 #16
flyt

<table width="49%" height="734" border="0" align="center" cellpadding="0" cellspacing="0">

ned til
..
  <tr>
Avatar billede chries Nybegynder
28. maj 2004 - 10:33 #17
og prøv at opdateres phps filen igen =)
Avatar billede trevi Nybegynder
28. maj 2004 - 10:35 #18
skete ingen ting :|

site update:
www.vix-mix.dk/info.phps
Avatar billede dennismp Nybegynder
28. maj 2004 - 10:47 #19
denne linje: <input type="hidden" name="id" value="'<?php echo $row['id']; ?>">

er et problem, da du kun selecter navn, tekst fra info tabellen
Avatar billede dennismp Nybegynder
28. maj 2004 - 10:48 #20
prøv med:
<input type="hidden" name="id" value="<?php echo $id; ?>">
Avatar billede trevi Nybegynder
28. maj 2004 - 10:48 #21
okay .. dvs. endten fjerne den eller ændre id til tekst ?
Avatar billede chries Nybegynder
28. maj 2004 - 10:49 #22
har klippet alt uinterresant væk, prøv at køre dette. (det er lidt skod formateret, har siddet i notepad)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>trevi|dk - admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="trevi/admin/stylesheet/admin.css" rel="stylesheet" type="text/css">
</head>

<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<?php
  require "db.php";

  if (isset($_POST['gem'])) {
    $tekst = addslashes($_POST['tekst']);
    $id = intval($_POST['id']);

    $sql = "SELECT navn, tekst FROM info WHERE id={$id}";

    $res = mysql_query($sql) or die(mysql_error());

    if( $row = mysql_fetch_array($res) )
      mysql_query("UPDATE info SET tekst='$tekst' WHERE id='$id'") or die(mysql_error());       
    else
      die('kunne ikke findes: '. $id );

    echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";
  }
  else {

  if( isset($_REQUEST['id']) ) {
    $id = mysql_escape_string($_REQUEST['id']); // sikre id
     
    $sql = "SELECT navn, tekst FROM info WHERE id={$id}";

    $res = mysql_query($sql) or die(mysql_error());

    if( $row = mysql_fetch_array($res) ) {
      ?>
        <form action="<? $PHP_SELF ?>" method="post">
              <div align="center">
              <input type="hidden" name="id" value="'<?php echo $row['id']; ?>">
                                    <br>
                                    <table width="215" border="0" cellpadding="0" cellspacing="0" height="164" class="tekst_normal">
                                      <tr>
                                       
              <td height="18" background="trevi/admin/pic/menu4.jpg"> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Tekst
                i
                <?=$row[navn]?>
                :</font></td>
                                      </tr>
                                      <tr>
                                        <td height="19"><textarea name="tekst" rows="8" cols="30" class="box"><?php echo $row['tekst']; ?></textarea>
                                        </td>
                                      </tr>
                                    </table>
          <input type="submit" name="gem" value="Gem Ændringer" class="submit">
        </div>
      </form>

      <?php
    }       
    else {
      ?>
                <!-- dette bliver skrevet ud, hvis rækken ikke findes, eller ID ikke er angivet -->
                  <table width="451" height="8" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td height="26"><center>&nbsp;Id'et findes ikke</center></td>
                    </tr>
                  </table>
      <?php
    }
}
else {
      ?>
                <!-- dette bliver skrevet ud, hvis rækken ikke findes, eller ID ikke er angivet -->
                  <table width="451" height="8" border="0" align="center" cellpadding="0" cellspacing="0">
                    <tr>
                      <td height="26"><center>&nbsp;Id'et medsent</center></td>
                    </tr>
                  </table>
      <?php
}
}
?>
</body>
</html>
Avatar billede chries Nybegynder
28. maj 2004 - 10:50 #23
echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";

->

echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row[navn] blev opdagteret.</div>";
Avatar billede dennismp Nybegynder
28. maj 2004 - 10:50 #24
Der var også en ' i value som ikke skulle være der. Det skulle også lige fjernes.
Avatar billede trevi Nybegynder
28. maj 2004 - 10:52 #25
omg!! det virker .. damn .. endelig!

echo'et kan jeg få det til at stå lige over boxen ?

(echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";)

du kan se hvor den er nu på
www.vix-mix.dk/info.phps
Avatar billede dennismp Nybegynder
28. maj 2004 - 10:52 #26
Jeg fik det til virke på min egen server.

Source: http://dennis.moellegaard.dk/v4/php/503525.phps
Avatar billede trevi Nybegynder
28. maj 2004 - 10:58 #27
det virker også udemærket ved mig. men når man har trykket gem så kommer echo allerøverst på det hele.. hvor jeg bare gerne vil have det over textarea
Avatar billede trevi Nybegynder
28. maj 2004 - 11:08 #28
i kan se en update på

www.vix-mix.dk/phps
Avatar billede dennismp Nybegynder
28. maj 2004 - 11:10 #29
Du kan bare flytte:
<?php

if (isset($_POST['tekst'])) {
$tekst = addslashes($_POST['tekst']);
$id = intval($_POST['id']);
mysql_query("UPDATE info SET tekst='$tekst' WHERE id='$id'") or die(mysql_error());
echo "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";
}

?>
ned hvor du havde den før.
Avatar billede trevi Nybegynder
28. maj 2004 - 11:13 #30
nej fordi så virker det ikke første gang man trykker Gem.. først anden gang når der står echo
Avatar billede dennismp Nybegynder
28. maj 2004 - 11:17 #31
Så lad den være  og ret den til:
<?php
$message = '';
if (isset($_POST['tekst'])) {
$tekst = addslashes($_POST['tekst']);
$id = intval($_POST['id']);
mysql_query("UPDATE info SET tekst='$tekst' WHERE id='$id'") or die(mysql_error());
$message = "<div align='center' style='font: smaller Verdana, Geneva, Arial, Helvetica, sans-serif; color: black;'>$row navn blev opdagteret.</div>";
}
?>

.. og så laver du bare en
<?=$message?>
der hvor du ønsker det.
Avatar billede trevi Nybegynder
28. maj 2004 - 11:30 #32
sådan så fik jeg rettet det hele til.. tusind tak skal i have !!
jeg deler lidt point ud hvis i vil have det ?
Avatar billede dennismp Nybegynder
28. maj 2004 - 12:05 #33
jow :-)
Avatar billede trevi Nybegynder
08. juni 2004 - 16:33 #34
nå men du svarede.. så du får dem :)
Avatar billede trevi Nybegynder
08. juni 2004 - 16:33 #35
-lukket-
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