Avatar billede impulze Nybegynder
23. marts 2005 - 01:50 Der er 17 kommentarer og
1 løsning

Redigere i mysql databasen fra en php side

Jeg mangler noget hjælp til hvordan jeg kan redigere i det output, som jeg hiver ud fra en mysql database.

Har lavet noget her, men den vil ikke virke rigtig og kunne godt bruge noget hjælp til, at rette den til den virker.

Koden:
<?
if (isset($_POST['update'])) {
include ("config.php");
$overskrift = $row['overskrift'];
$forfatter  = $row['forfatter'];
$tekst      = $row['tekst'];
$id        = $row['id'];
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
?>
<?
include ("config.php");
$query = mysql_query("SELECT * FROM kloak_koncert WHERE id=$_GET[id]");
$row = mysql_fetch_array($query);
?>
<form method="post" action="?id=nyhed_ret" enctype="multipart/form-data">
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <td width="500" colspan="2" height="19"><b>Ret nyhed</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Skrevet af:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" height="22">
    <input type="text" name="overskrift" value="<? echo $overskrift; ?>" style="width: 220px" size="20"></td>
    <td width="250" height="22">
    <input type="text" name="forfatter" value="<? echo $forfatter; ?>" style="width: 220px" size="20"></td>
  </tr><tr>
  <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" bgcolor="#F3F3F3" align="left" height="19" colspan="2">Tekst:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" colspan="2"><textarea name="tekst" rows="5" cols="76"><? echo $tekst; ?></textarea></td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="250" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"><input type="submit" name="update" value="Udfør"></td>
</tr></table>
  </form>

Giver 60 point til den der kan hjælpe mig, for er ved at være træt af det ikke virker nu :)
Avatar billede michael_stim Ekspert
23. marts 2005 - 02:05 #1
Alle dem her:
$overskrift = $row['overskrift'];
$forfatter  = $row['forfatter'];
$tekst      = $row['tekst'];
$id        = $row['id'];

skal jo väre: $_POST['overskrift'];
Avatar billede michael_stim Ekspert
23. marts 2005 - 02:11 #2
<?
if (isset($_POST['update'])) {
include ("config.php");
$overskrift = $_POST['overskrift'];
$forfatter  = $_POST['forfatter'];
$tekst      = $_POST['tekst'];
$id        = $_POST['id'];
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}

$query = mysql_query("SELECT * FROM kloak_koncert WHERE id=$_GET[id]");
$row = mysql_fetch_array($query);
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>" >
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <td width="500" colspan="2" height="19"><b>Ret nyhed</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Skrevet af:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" height="22">
    <input type="text" name="overskrift" value="<? echo $overskrift; ?>" style="width: 220px" size="20"></td>
    <td width="250" height="22">
    <input type="text" name="forfatter" value="<? echo $forfatter; ?>" style="width: 220px" size="20"></td>
  </tr><tr>
  <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" bgcolor="#F3F3F3" align="left" height="19" colspan="2">Tekst:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" colspan="2"><textarea name="tekst" rows="5" cols="76"><? echo $tekst; ?></textarea></td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="250" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"><input type="submit" name="update" value="Udfør"></td>
</tr></table>
  </form>
Avatar billede impulze Nybegynder
23. marts 2005 - 02:57 #3
Okay, men den henter stadig ikke dataen fra mysql..

Her er den side, som printer alle nyhederne ud, hvor man skal klikke på den man vil rette på og dermed kommer ind på den side jeg skrev ned først..

<?
if (!isset($_GET[nyhedsid])) {
include ("config.php");
}
else {
}
?>
<form method="post" action="?id=nyhed_vis" enctype="multipart/form-data">
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <td width="500" colspan="2" height="19"><b>Ret nyheder</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Dato:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr>
<?
        $query = mysql_query("SELECT * FROM kloak_nyheder ORDER BY id");
        while($row = mysql_fetch_array($query)) {

    echo "<tr>";
    echo "<td width='250'><a href=\"?id=nyhed_ret&nyhedsid=$row[id]\" title=\"Ret nyheden\">$row[overskrift]</a></td>";
    echo "<td width='250'>{$row['dato']}</td>";
    echo "</tr>";
}
?>
<tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="500" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"></td>
  </tr>
</table>
  </form>

--------

Har den en betydning for, at den anden side kan ikke hente dataen fra den id af nyheden man vælger?
Avatar billede michael_stim Ekspert
23. marts 2005 - 03:29 #4
Skal det ikke väre nyhedsid:
$query = mysql_query("SELECT * FROM kloak_koncert WHERE id=$_GET[nyhedsid]")or die(mysql_error());
Avatar billede impulze Nybegynder
23. marts 2005 - 04:16 #5
Sådan her så:

<?
if (isset($_POST['update'])) {
include ("config.php");
$overskrift = $_POST['overskrift'];
$forfatter  = $_POST['forfatter'];
$tekst      = $_POST['tekst'];
$id        = $_POST['id'];
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
$query = mysql_query("SELECT * FROM kloak_nyheder WHERE id=$_GET[nyhedsid]")or die(mysql_error());
$row = mysql_fetch_array($query);
}
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>" >
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <td width="500" colspan="2" height="19"><b>Ret nyhed</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Skrevet af:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" height="22">
    <input type="text" name="overskrift" value="<? echo $overskrift; ?>" style="width: 220px" size="20"></td>
    <td width="250" height="22">
    <input type="text" name="forfatter" value="<? echo $forfatter; ?>" style="width: 220px" size="20"></td>
  </tr><tr>
  <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" bgcolor="#F3F3F3" align="left" height="19" colspan="2">Tekst:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" colspan="2"><textarea name="tekst" rows="5" cols="76"><? echo $tekst; ?></textarea></td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="250" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"><input type="submit" name="update" value="Udfør"></td>
</tr></table>
  </form>
Avatar billede impulze Nybegynder
27. marts 2005 - 12:37 #6
Hmm der er måske ingen der gider, at hjælpe mig her?
Avatar billede michael_stim Ekspert
27. marts 2005 - 12:53 #7
Jeg kan da godt hjälpe, impulze. Men jeg ved ikke hvad jeg skal hjälpe med ;o)
Du viser mig en kode, og spörger "sådan her?".
Hvilken fejl får du?
Hvad gör den/gör den ikke?
Osv osv.
//Michael
Avatar billede michael_stim Ekspert
27. marts 2005 - 13:02 #8
<?
if (isset($_POST['update'])) {
include ("config.php");
$overskrift = $_POST['overskrift'];
$forfatter  = $_POST['forfatter'];
$tekst      = $_POST['tekst'];
$id        = $_POST['id'];
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
$query = mysql_query("SELECT * FROM kloak_nyheder WHERE id=$_GET[nyhedsid]")or die(mysql_error());
$row = mysql_fetch_array($query);
}
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>" >
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <td width="500" colspan="2" height="19"><b>Ret nyhed</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Skrevet af:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" height="22">
    <input type="text" name="overskrift" value="<? echo $row['overskrift']; ?>" style="width: 220px" size="20"></td>
    <td width="250" height="22">
    <input type="text" name="forfatter" value="<? echo $row['forfatter']; ?>" style="width: 220px" size="20"></td>
  </tr><tr>
  <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" bgcolor="#F3F3F3" align="left" height="19" colspan="2">Tekst:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" colspan="2"><textarea name="tekst" rows="5" cols="76"><? echo $row['tekst']; ?></textarea></td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="250" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"><input type="submit" name="update" value="Udfør"></td>
</tr></table>
  </form>
//Og så et hidden felt med dit id.
Avatar billede impulze Nybegynder
27. marts 2005 - 18:00 #9
michael_stim, mange tak du vil det :)

Altså problemet er, at den ikke gider at hente de data/info ud på siden så man kan rette i den, f. eks nu en nyhed.

På http://impulze.dk/kloak/admin kan du bedre se hvad jeg prøver på, at forklar. Med at du klikker dig ind på "Ret Nyheder". Der kommer så listen over alle de nyheder der er skrevet inde på databasen. Der kan du klikke på den nyhed, som du vil rette i. Hvis du gør det, så kan du se den ikke gider hente det, som den er sat til.

Kan ikke selv se fejlen, for har kunne få den til at hente de data, men kunne bare ikke rette i det på det tidspunkt, som jeg kan heller ikke nu.

Jeg tror problemet er med, at den ikke kan finde id til den nyhed, som der bliver sendt videre fra ?id=nyhed_vis (som du kan se oppe i adresse felten), hvor den så går over til selve siden hvor man kan opdater...

Ved ikke om jeg gentager mig hele tiden, men håber du kan se bare lidt af det, hvor jeg vil hen nu?
Avatar billede michael_stim Ekspert
27. marts 2005 - 18:21 #10
Får ingen mulighed for at se nyhederne. Der står bare forsiden.
Avatar billede michael_stim Ekspert
27. marts 2005 - 18:22 #11
OK, fungerer i IE, men ikke i Firefox.
Avatar billede michael_stim Ekspert
27. marts 2005 - 18:27 #12
<?
if (isset($_POST['update'])) {
include ("config.php");
$overskrift = $_POST['overskrift'];
$forfatter  = $_POST['forfatter'];
$tekst      = $_POST['tekst'];
$id        = $_POST['nyhedsid'];
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
$query = mysql_query("SELECT * FROM kloak_nyheder WHERE id=$_GET[nyhedsid]")or die(mysql_error());
$row = mysql_fetch_array($query);
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>" >
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <input type="hidden" value="<?= $row['id']; ?>" name="id"
    <td width="500" colspan="2" height="19"><b>Ret nyhed</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Skrevet af:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" height="22">
    <input type="text" name="overskrift" value="<? echo $row['overskrift']; ?>" style="width: 220px" size="20"></td>
    <td width="250" height="22">
    <input type="text" name="forfatter" value="<? echo $row['forfatter']; ?>" style="width: 220px" size="20"></td>
  </tr><tr>
  <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" bgcolor="#F3F3F3" align="left" height="19" colspan="2">Tekst:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" colspan="2"><textarea name="tekst" rows="5" cols="76"><? echo $row['tekst']; ?></textarea></td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="250" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"><input type="submit" name="update" value="Udfør"></td>
</tr></table>
  </form>

Noget ála dette.
Avatar billede michael_stim Ekspert
27. marts 2005 - 18:29 #13
Hov, skal lige väre en sluttag på hidden feltet.
Avatar billede impulze Nybegynder
27. marts 2005 - 18:49 #14
Sådan nu er det ved at se ud af noget :)
Den henter dataen fra mysql nu, men den opdater det bare ikke. Dvs den går bare ud på forsiden når man prøver på det.
(Har tilføjet "config.php", som du kan se, da den skal jo connecte til mysql)

<?
if (isset($_POST['update'])) {
include ("config.php");
$overskrift = $_POST['overskrift'];
$forfatter  = $_POST['forfatter'];
$tekst      = $_POST['tekst'];
$id        = $_POST['nyhedsid'];
$query = mysql_query("UPDATE kloak_nyheder SET overskrift='$overskrift', forfatter='$forfatter', tekst='$tekst' WHERE id='$id'") or print mysql_error();
echo "<font color=\"darkgreen\">Dine oplysninger er blevet opdateret";
}
include ("config.php");
$query = mysql_query("SELECT * FROM kloak_nyheder WHERE id=$_GET[nyhedsid]")or die(mysql_error());
$row = mysql_fetch_array($query);
?>
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>" >
<table width="500" cellpadding="4" cellspacing="0" style="border: 1px solid #AAAAAA">
  <tr>
    <input type="hidden" value="<?= $row['id']; ?>" name="id">
    <td width="500" colspan="2" height="19"><b>Ret nyhed</b></td>
  </tr><tr>
<td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Overskrift:</td>
    <td width="250" bgcolor="#F3F3F3" align="left" height="19">Skrevet af:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="250" height="22">
    <input type="text" name="overskrift" value="<? echo $row['overskrift']; ?>" style="width: 220px" size="20"></td>
    <td width="250" height="22">
    <input type="text" name="forfatter" value="<? echo $row['forfatter']; ?>" style="width: 220px" size="20"></td>
  </tr><tr>
  <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" bgcolor="#F3F3F3" align="left" height="19" colspan="2">Tekst:</td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
    <td width="500" colspan="2"><textarea name="tekst" rows="5" cols="76"><? echo $row['tekst']; ?></textarea></td>
  </tr><tr>
    <td width="500" colspan="2" bgcolor="#AAAAAA" height="1"></td>
  </tr><tr>
<td width="250" align="left" height="26"><a href="java script: history.back(1)">Tilbage</a></td>
<td width="250" align="right" height="26"><input type="submit" name="update" value="Udfør"></td>
</tr></table>
  </form>
Avatar billede michael_stim Ekspert
27. marts 2005 - 20:49 #15
<input type="text" name="overskrift" <? if(isset($_GET['nyhedsid'])){ ?> value="<? echo $row['overskrift']; ?>"<? } ?> style="width: 220px" size="20"></td>

Det er fordi den tager värdien af det man tager tager med over. Du skal have en if-sats på alle dine värdier.
Avatar billede impulze Nybegynder
28. marts 2005 - 03:18 #16
if på alle? er det bare ikke nok med den id man henter den med?
Avatar billede impulze Nybegynder
29. august 2005 - 16:46 #17
kommer du med et svar?
Avatar billede impulze Nybegynder
19. november 2008 - 15:22 #18
Lukker...
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