Avatar billede nh92 Nybegynder
22. juni 2008 - 14:14 Der er 18 kommentarer og
1 løsning

Redigering af Mysql data

Hej jeg har lige et spørgsmål ang. redigering af MySQL data. Jeg har oprettet en velkomst tabel i phpmyadmin, og skrevet en lille velkomst besked. Men i modsætningen til f.eks. nyheder, hvor du bare  indsætter en ny teskt, vil jeg gerne have, at man får teksten fra mysql databasen, ud i et tekstfelt, så man kan redigere og trykke gem, og så bliver velkomsten redigeret i Mysql tabellen.

Håber i forstår, ellers bare spørg ind til det.

PS. Jeg har lavet sådan at jeg sagtens kan se velkomsten og skrive den. Men vil gerne have at den bliver redigeret, i stedet for bare at lave en ny. :)
Avatar billede kjeldsted Novice
22. juni 2008 - 14:18 #1
Søger du SQL koden:

UPDATE tabel SET tekst='$tekst' WHERE id='$id'?

(Se evt. http://w3schools.com/php/php_mysql_update.asp)
Avatar billede soerenlyn Nybegynder
22. juni 2008 - 14:20 #2
Okay .. Hvis jeg forstår dig rigtigt, så skal du bare bruge koden

UPDATE tabel_navn SET [text] = 'dittekst' WHERE [id] = 124

I stedet for 'dittekst' skal du så hente den tekst der skal gemmes, og i stedet for 124 skal du have id'et på den række der skal ændres. I og med du kan hente tekst frem kan du også finde id'et, og dermed også gemme ændringerne.
Avatar billede nh92 Nybegynder
22. juni 2008 - 14:32 #3
Hvor skal jeg sætte koden ind henne af? Jeg har velkomst.php som indholder mit tekstfelt hvor jeg kan skrive, også har jeg sat den til post på index.velkomst.php, hvor jeg lige nu har en alm. mysql_query("insert to .. kode. Men er det den (mysql_query red.) som skal laves om til UPDATE?
Avatar billede kjeldsted Novice
22. juni 2008 - 14:38 #4
Den bruges akkurat ligesom en MySQL INSERT. Du skal altså have en form hvor dataene indsættes der så har en action til en side hvor der fx står :

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("my_db", $con);
$tekst = $_POST['tekst'];
mysql_query("UPDATE tabel SET tekst = '$tekst' WHERE id = '$id'");
?>

Du skal dog lige rette nogle små ting så den passer. Men i teorien det samme som MySQL INSERT bortset fra at den opdatere og ikke indsætter.
Avatar billede nh92 Nybegynder
22. juni 2008 - 15:08 #5
<?

include("mysql.php");

mysql_query("insert into velkomst (velkomst) values ('$_POST[velkomst]')") or die(mysql_error());

echo "Din nyhed er oprettet";

?>

Det stykke kode har jeg nu.

Men skal jeg så lave den om, så der står
<?

include("mysql.php");

mysql_query("UPDATE velkomst SET tekst = '$tekst' WHERE id = '$3'") or die(mysql_error());

echo "Din nyhed er oprettet";

?>

Forstår ikke helt den med SET tekst = '$tekst' ??
Avatar billede kjeldsted Novice
22. juni 2008 - 15:39 #6
Ja. Altså hvis rækken i tabellen hedder tekst skal der stå SET tekst = 'den nye tekst'. Og da du vel har den nye tekst i en variabel kan du kalde denne tekst. Har du fx en variabel med navnet $indhold skal der så stå

SET tekst = '$indhold'.

Håber det er forståeligt ;-)
Avatar billede nh92 Nybegynder
22. juni 2008 - 15:47 #7
Tja.. Min række i tabellen velkomst hedder også bare velkomst.

<?

include("mysql.php");

mysql_query("UPDATE velkomst SET velkomst = '$tekst' WHERE id = '$3'") or die(mysql_error());

echo "Din nyhed er oprettet";

?>

Men mht. variabel, tror jeg ikke jeg har sådan en. Jeg har bare en normal php side, som hedder velkomst.php, hvor der er en alm. opsætning med et tekstfelt og en Submit knappe. Den går så over til index.velkomst.php, som indeholder den ovenstående insert kode. Så lige i de 2 filer, kan jeg ikke rigtig se nogen variabel? Hvis du kan følge mig.
Avatar billede kjeldsted Novice
22. juni 2008 - 15:53 #8
Øh. Hvis ikke du har en variabel med teksten er der ikke noget tekst at opdatere. Hvordan ser din form ud?
Avatar billede nh92 Nybegynder
22. juni 2008 - 15:59 #9
<form method="POST" action="index.velkomst.php">
    <!--webbot bot="SaveResults" U-File="fpweb:///_private/form_results.csv" S-Format="TEXT/CSV" S-Label-Fields="TRUE" -->
    <p>&nbsp;</p>

    <?

    ?></p>
    <p><h4>Tekst:</h4></p>
    <p><textarea rows="5" name="velkomst" cols="20"></textarea></p>
<p><input type="Submit" value="Opret Nyhed" name="Submit"></p>
    <p>&nbsp;</p>
</form>
Avatar billede kjeldsted Novice
22. juni 2008 - 16:02 #10
Så kan du fx skrive:

$tekst = $_POST['velkomst'];
mysql_query("UPDATE velkomst SET velkomst = '$tekst' WHERE id = '$3'") or die(mysql_error());
Avatar billede nh92 Nybegynder
22. juni 2008 - 16:08 #11
Der sker ikke noget så. Den opdatere ikke mysql databasen, men melder heller ingen fejl. Hmm.?
Avatar billede kjeldsted Novice
22. juni 2008 - 16:10 #12
Hvordan ser hele php koden i index.velkomst.php ud nu? Altså der hvor den skulle opdatere tabellen.
Avatar billede nh92 Nybegynder
22. juni 2008 - 16:12 #13
<?

include("mysql.php");

$tekst = $_POST['velkomst'];
mysql_query("UPDATE velkomst SET velkomst = '$tekst' WHERE id = '$3'") or die(mysql_error());

echo "Din nyhed er oprettet";

?>

<a href="index.php">Klik her for at komme tilbage</a>
Avatar billede kjeldsted Novice
22. juni 2008 - 16:17 #14
Er der et sted hvor du sætter variablen $3?
Avatar billede nh92 Nybegynder
22. juni 2008 - 16:18 #15
Nej. Det er id der er 3. Er det forkert sat op?
Avatar billede kjeldsted Novice
22. juni 2008 - 16:21 #16
Ja. $3 betyder variablen ved navn 3. Og hvis ikke du har sat $3 til at have en værdi leder den efter den række hvor id = ''. Hvis den skal opdatere hvor id er 3 skal der stå:

mysql_query("UPDATE velkomst SET velkomst = '$tekst' WHERE id = '3'") or die(mysql_error());
Avatar billede nh92 Nybegynder
22. juni 2008 - 16:23 #17
Og med disse ord fik du ret! Takker champ. Du er en sand mester. Hvordan er det du får pointene? Dem har du fortjent til punkt og prikke :)
Avatar billede kjeldsted Novice
22. juni 2008 - 16:26 #18
Så lidt da :-D

Jeg ligger et svar. Derefter klikker på på mit navn til venstre og trykker accepter. Det skulle ikke være så svært ;-)
Avatar billede nh92 Nybegynder
22. juni 2008 - 16:31 #19
Sådan :)
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