Avatar billede aquafisken Nybegynder
04. december 2005 - 02:41 Der er 8 kommentarer og
1 løsning

Update funktions problemer

Jeg er igang med at lave en administrationafdeling, og der skal det også være muligt at kunne redigere teksten, så man ikke skal slette og indsætte en ny tekst hver gang.
\\Jeg har en fil der hedder fisk_edit.php med dette indhold:

<?php
include 'admin/connect.php';

if( isset( $_GET['id'] ) )
  $id = $_GET['id'];
else
  $id = null;


if( $id !== null ) {
  // Hent først data ud
  $resultat = mysql_query("select * FROM tufra WHERE id = '$id'");

  // Kør så igennem for hver række
  $raekke = mysql_fetch_array($resultat);
  if( $raekke == null )
    die("Fandt ikke rækken");

  extract($raekke);
?>
<!--JavaScript mouseover buttom START-->
<script language="JavaScript" type="text/javascript">
<!--
// bbCode control by
// subBlue design
// www.subBlue.com

// Helpline messages
b_help = "Fed tekst: tekstt";
i_help = "Kursiv tekst: text";
u_help = "Understreget tekst: text";
p_help = "Indsæt billede: http://image_url";
w_help = "Indsæt webadresse: [url]http://url[/url] eller URL tekst";
m_help = "Indsæt mail: [mail=''adresse@host.dk'']tekst[/mail]";
c_help = "Centrere tekst:
tekst
";
q_help = "Indsæt tabel med farver: [quote]tekst[/quote]";


// Shows the help messages in the helpline window
function helpline(help) {
    document.post.helpbox.value = eval(help + "_help");
}

function bbstyle(bbnumber) {
    var txtarea = document.post.message;

  txtarea.focus();
    donotinsert = false;
    theSelection = false;
    bblast = 0;

    if (donotinsert) {        // Close all open tags up to the one just clicked & default button names
        while (bbcode[bblast]) {
                butnumber = arraypop(bbcode) - 1;
                txtarea.value += bbtags[butnumber + 1];
                buttext = eval('document.post.addbbcode' + butnumber + '.value');
                eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
                imageTag = false;
            }
            txtarea.focus();
            return;
    } else { // Open tags

        if (imageTag && (bbnumber != 14)) {        // Close image tag before adding another
            txtarea.value += bbtags[15];
            lastValue = arraypop(bbcode) - 1;    // Remove the close image tag from the list
            document.post.addbbcode14.value = "Img";    // Return button back to normal state
            imageTag = false;
        }


    }

}

//-->
</script>
<!--JavaScript mouseover buttom END-->
<h1 align="center" class="overskrift">Rediger Tekst Til Dyrekategori</h1>
<form ACTION="admin/edit_tekst_sql.php" method="post" >
<input type="hidden" value="<? echo "$id" ?>" name="id">
<table width="50%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td align="left" valign="top">
<strong>
<div class="hovedtekst">Dyrekategori</div></strong>
    <select name="category">
      <option value="fisk">Fisk</option>
      <option value="fugl">Fugl</option>
      <option value="gnaver">Gnaver</option>
      <option value="hund">Hund</option>
      <option value="kat">Kat</option>
      <option value="hest">Hest</option>
    </select></td>
    <td>
      <strong><div class="hovedtekst">Spalte</div></strong>
  <select name="kolonne">
    <option value="H">H&oslash;jre spalte</option>
    <option value="V">Venstre spalte</option>
  </select> 
    <br>
    </td>
  </tr>
</table>
<br>
    <strong><div class="hovedtekst">Overskrift:</div></strong>
  <input type="text" name="headline" value="<? echo"$headline" ?>">
  <br>
  <br>
    <strong><div class="hovedtekst">Tekst:</div></strong>
    <textarea name="text" rows="10" cols="35"><? echo"$text" ?></textarea>
    <input type=submit value="Opdater tekst" name="submit" class="button_format">
</form>
<!-- Buttons and message help table START -->
<?php
    include "admin/bbcode.php";
    include "admin/buttons.js";
    ?>
<form action="" method="post" name="post">
    <input type="button" class="button_format" onClick="formatText('quote');" value="Tabel" accesskey="q" onMouseOver="helpline('q')">
    <input name="button" type="button" class="button_format" accesskey="b" onClick="formatText('b');" onMouseOver="helpline('b')" value="F" style="font-weight:bold; width: 30px">
    <input type="button" class="button_format" onClick="formatText('i');" value="K" accesskey="i" onMouseOver="helpline('i')" style="font-style:italic; width: 30px">
    <input type="button" class="button_format" onClick="formatText('u');" value="U" accesskey="u" onMouseOver="helpline('u')" style="text-decoration: underline; width: 30px">
    <input type="button" class="button_format" onClick="formatText('img');" value="Image" accesskey="p" onMouseOver="helpline('p')">
    <input type="button" class="button_format" onClick="formatText('url');" value="URL" accesskey="w" onMouseOver="helpline('w')">
    <input type="button" class="button_format" onClick="formatText('center');" value="Center" accesskey="c" onMouseOver="helpline('c')">
    <input type="button" class="button_format" onClick="formatText('mail');" value="Mail" accesskey="m" onMouseOver="helpline('m')">
    <br>
    <input type="text" name="helpbox" size="35" maxlength="100" style="width:350px; font-size:10px" value="Tip: Overstreg tekst og tryk på knap for at tilføje en formatering til tekst." />
    </form>
<!-- Buttons and message help table END -->


<?php
}
else {
  $sql = "SELECT id, headline FROM tufra ORDER BY category";
  $res = mysql_query($sql) or die(mysql_error());
  // Lav liste
  while($row = mysql_fetch_array($res)) {
    print '<a href="' . $_SERVER['PHP_SELF'] . '?id=' . $row[0] . '">'.
      stripslashes($row[1]). '</a><br />';
  }
}
?>

\\Så har jeg en fil ved navn edit_tekst_sql.php med dette indhold:

<?
include 'connect.php';

$id = $_GET['id'];

mysql_query("UPDATE tufra SET headline='$headline',text='$text',category='$category',kolonne='$kolonne' WHERE id='$id'") or die(mysql_error());

header("Location: ../$_POST[category].php");
?>

Jeg kan godt få vist en liste fra databasen, hvor jeg så kan vælge hvad for en jeg vil redigere, og formen med teksten kommer også frem, men når jeg så har tastet noget nyt ind og trykker opdater tekst, så sker der ikke nogen opdatering i databasen, hvad kan det skyldes?
Avatar billede Slettet bruger
04. december 2005 - 06:23 #1
mysql_query("UPDATE tufra SET headline='".$headline."', text='".$text."', category='".$category."', kolonne='".$kolonne."' WHERE id='".$_GET['id']."'") or die(mysql_error());

Det er bedst at sætte det op på den her måde, og der er ingen grund til at lave en ny variabel, med id'et ($id) du kan i dit tilfælgde trække den ud med det sammen.

Men hvad er det den siger af fejl?
Avatar billede Slettet bruger
04. december 2005 - 06:25 #2
Husk ; efter hvert echo.
Avatar billede erikjacobsen Ekspert
04. december 2005 - 12:38 #3
$id = $_POST['id'];

Dine $headline osv skal nok også hentes med $_POST['headline']
Avatar billede aquafisken Nybegynder
05. december 2005 - 00:34 #4
Den kommer ikke med nogen fejl når jeg prøver at køre scriptet...

Min edit_tekst_sql.php fil ser således ud nu:
<?
include 'connect.php';

$id = $_GET['id'];
$headline = $_POST['headline'];
$text = $_POST['text'];
$category = $_POST['category'];
$kolonne = $_POST['kolonne'];

mysql_query("UPDATE tufra SET headline='".$headline."', text='".$text."', category='".$category."', kolonne='".$kolonne."' WHERE id='".$_GET['id']."'") or die(mysql_error());

header("Location: ../".$_POST['category'].".php");
?>

Stadig virker den ikke, hvad kan der være galt med den?
Avatar billede aquafisken Nybegynder
05. december 2005 - 00:37 #5
Lige en rettelse...$id = $_GET['id']; bliver vist hentet to gange nu...nok lige en gang for meget :)
Så koden ser sådan ud:
<?
include 'connect.php';

$headline = $_POST['headline'];
$text = $_POST['text'];
$category = $_POST['category'];
$kolonne = $_POST['kolonne'];

mysql_query("UPDATE tufra SET headline='".$headline."', text='".$text."', category='".$category."', kolonne='".$kolonne."' WHERE id='".$_GET['id']."'") or die(mysql_error());

header("Location: ../".$_POST['category'].".php");
?>
Avatar billede aquafisken Nybegynder
05. december 2005 - 16:02 #6
Er der nogen der kan hjælpe mig?
Avatar billede aquafisken Nybegynder
05. december 2005 - 18:05 #7
Erikjacobsen -- jeg tror jeg overså dit indlæg med $_POST['id'] så da jeg læste tråden en sidste gang i håb om at det skulle virke prøvede jeg dit $_POST['id'], og erstattede det med ".$_GET['id']." og det virker nu!!
Så min sql fil ser således ud nu:
<?
include 'admin/connect.php';

$headline = $_POST['headline'];
$text = $_POST['text'];
$category = $_POST['category'];
$kolonne = $_POST['kolonne'];

mysql_query("UPDATE tufra SET headline='".$headline."', text='".$text."', category='".$category."', kolonne='".$kolonne."' WHERE id='".$_POST[id]."'");

header("Location: ".$category.".php");
?>
Så point til dig.
Også tak for hjælpen til jer andre.
Avatar billede erikjacobsen Ekspert
06. december 2005 - 08:33 #8
Nej tak, jeg samler slet ikke på point.
Avatar billede aquafisken Nybegynder
26. december 2005 - 03:02 #9
-
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