Avatar billede optur Novice
31. maj 2010 - 19:36 Der er 13 kommentarer og
1 løsning

Insert/Update database

Jeg har den er form:
<div id="content">
<table id="tableid" cellpadding="0" cellspacing="0">
<tr><td><h2><?php echo $title; ?></h2></td></tr>
<?php if($table==$table&$id==$id&$action==success) { ?>
<tr><td><h3><?php echo $title; ?> er opdateret</h3></td></tr>
<?php } ?>
<?php if($table==$table&$id==$id&$action==error) { ?>
<tr><td><h3><?php echo $title; ?> blev ikke opdateret</h3></td></tr>
<?php } ?>
<tr><td>
<form action="insert.php?table=<?php echo $table; ?>&id=<?php echo $id; ?>" method="post">
<textarea id="elm1" name="content" rows="20" cols="80" style="width: 425px"><?php echo $content; ?></textarea>
<input type="submit" value="Opdatere" />
</form>
/td></tr>
</table>
</div>


som sender videre til den her:
<?php
include('../include/db_con.php');

$table = $_GET['table'];
$id = $_GET['id'];
$row = trim($_GET['content']);
$insert = "insert into $table values '$row' WHERE ID = '$id'" or die("Connection to table failed : " . mysql_error());
mysql_query($insert);

Men selve content bliver ikke sendt videre, får følgende udskrift når jeg udskriver $insert:

insert into about values '' WHERE ID = '1'

hvor values skulle være content.

nogen der kan fortælle mig hvad jeg gør forkert?
Avatar billede majbom Novice
31. maj 2010 - 20:16 #1
din form sender med POST og du forsøger at få fat i den fra GET

prøv at skift GET ud med POST :)
Avatar billede optur Novice
31. maj 2010 - 21:10 #2
det sendte indholdet videre, men den skriver det ikke ind i databasen
Avatar billede optur Novice
31. maj 2010 - 21:14 #3
så fandt jeg fejlen, lavede:
$insert = "insert into '$table' values '$row' WHERE ID = '$id'" or die("Connection to table failed : " . mysql_error());

om til:
$insert = "UPDATE $table SET content = '$row' WHERE ID = '$id'" or die("Connection to table failed : " . mysql_error());
Avatar billede dkfire Nybegynder
31. maj 2010 - 22:43 #4
Og så skal du ikke have en "or die(..)" efter en streng, kun efter mysql funktioner. Der sker ingen mysqlfejl ved at lave en streng.
Avatar billede optur Novice
31. maj 2010 - 22:47 #5
det er sådan vi har lært at skrive strengen af vores lærer på mmd.
Avatar billede optur Novice
31. maj 2010 - 22:49 #6
og Jo det er en MySQL streng derinde... hvis du ser så ligger den inden for Strengen og er derfor inkluderet, så jo der kommer en sql fejl, i så fald så kan min localhost trylle for jeg har fået en dejlig fejlbesked igennem denne =)
Avatar billede dkfire Nybegynder
31. maj 2010 - 22:56 #7
Nej, det har du vel ikke. Tvivler meget stærkt på at din lærer har lavet en "or die(...)" efter en ren streng.
Der kan jo ALDRIG ske en fejl ved at lave en så simpel streng.

Jeg går udfra din lærer har lavet noget ala:
$insert = "UPDATE $table SET content = '$row' WHERE ID = '$id'";
mysql_query($insert) or die(mysql_error);


Hvilket er noget helt andet, da mysql_query funktionen kan lave en fejl.
Hvis ikke, bør du henvise din lærer til dette spørgsmål eller til http://www.php.net/die
Avatar billede dkfire Nybegynder
31. maj 2010 - 23:01 #8
Nej den "or die( ... ) " du skriver efter din streng bliver ALDRIG udført!
For at die funktionen bliver kørt, bliver den forgående funktion nød til at returnere en fejl. Det kan den streng opbygning aldrig gøre!
Dit kald til "or die( .. )" kan heller aldrig blive en del af en streng, i så fald vil PHP ALDRIG kører "or die( .. )" men bruge den som en del af din sql-sætning. Men så mangler det nogle " eller ' samt . i den streng opbygning.
Avatar billede majbom Novice
04. november 2010 - 13:44 #9
lukketid?
Avatar billede optur Novice
08. november 2010 - 12:33 #10
lukketid
Avatar billede majbom Novice
08. november 2010 - 16:18 #11
skal du bruge et svar, eller?
Avatar billede optur Novice
09. november 2010 - 11:00 #12
ja tak =)
Avatar billede majbom Novice
09. november 2010 - 11:07 #13
kommer her så...
Avatar billede majbom Novice
03. februar 2011 - 09:58 #14
tfp
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