/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mysql - Textarea, fejl når den gemmer, hjæ~
Fra : Ralle


Dato : 20-08-06 14:08

Hejsa...

jeg har nu fået lavet en fil (med meget hjælp her inde fra!) så
den nu skriver i et textarea hvad der står i tabellen enzolim
inde i databasen.

min kode er inden for _____________________

________________________________________________________

<form action="gem.php" method="post">

<?

require("./config.php");



// Åbn databasen
aabn_forbindelse_og_vaelgdb();

$site_query = 'SELECT sitename, siteslogan, content FROM
'.$prefix.'';

$site = sql_spoerg_og_faa_svar($site_query);

$sitename = $site[0]['sitename'];

$siteslogan = $site[0]['siteslogan'];

$content = $site[0]['content'];

echo "<input type=\"text\" name=\"sitename\"
value=\"".$sitename."\" size=\"30\" />";

echo "<p>";

echo "<input type=\"text\" name=\"siteslogan\"
value=\"".$siteslogan."\" size=\"30\" />";

echo "<p>";

echo "<input type=\"text\" name=\"content\"
value=\"".$content."\" size=\"30\" />";

echo "<input type=\"submit\" value=\"Skriv!\"/>";

?>

______________________________________________________

Så det virker fint! men der er problemer når den skal gemme
filen, altså gemme de ny intastede ting!

den fil der skal gemme (updatere) tingene hedder gem.php den ser
således ud:

______________________________________________________

<?php

require("./config.php");
$sitename = $_POST['sitename'];
$siteslogan = $_POST['siteslogan'];
$content = $_POST['content'];

aabn_forbindelse_og_vaelgdb();

sql_spoerg("UPDATE enzolim SET sitename=$sitename;");
sql_spoerg("UPDATE enzolim SET siteslogan=$siteslogan;");
sql_spoerg("UPDATE enzolim SET content=$content;");

luk_forbindelse();

header("Location: test4.php");

?>

______________________________________________________

der kommer følgende fejl:

coldent done: UPDATE enzolim SET sitename=test.dk;
The Fail Is: Unknown table 'test' in field list

Nogle der kan hjælpe mig??

Ralle

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jesper Brunholm (20-08-2006)
Kommentar
Fra : Jesper Brunholm


Dato : 20-08-06 15:19

Hej Ralle

> sql_spoerg("UPDATE enzolim SET sitename=$sitename;");
> sql_spoerg("UPDATE enzolim SET siteslogan=$siteslogan;");
> sql_spoerg("UPDATE enzolim SET content=$content;");

Det her er der et par problemer med. For det første så skal tekststrenge
i mysql "quotes", det er (ligesom i PHP) kun tal man må bruge uden
anførselstegn om, så lad os begynde med at rette den del:

"UPDATE enzolim SET sitename='$sitename';"

Dernæst så vil denne kommando gøre at alle rækker i tabellen enzolim
bliver opdateret til at sitename = $sitename. Normalt ønsker man kun at
en enkelt række skal opdateres, så sæt en WHERE på:

"UPDATE enzolim SET sitename='$sitename' WHERE ID = $retteid;"

(ID formodes at være et tal, derfor ingen anførselstegn om.)

enzolim er 1 tabel, så vi kan lige så godt lave alle tre rettelser på en
gang, når vi nu har fat i tabellen:

"UPDATE enzolim SET sitename='$sitename', siteslogan='$siteslogan',
content='$content' WHERE ID = $retteid;"

Når så der går ged i den, så er det vældigt praktiskt at kunne være
sikker på hvad man egentlig har smidt for en kommando afsted til MySQL.
Det kan du sikre dig sådan her:

$rette_query="UPDATE enzolim SET sitename='$sitename',
siteslogan='$siteslogan', content='$content' WHERE ID = $retteid;";

echo $rette_query;

sql_spoerg($rette_query);

Det giver også mulighed for at du kan klippe queryen ud fra echoet og
sætte den ind i phpmyadmin, så du er helt sikker på at få alle
fejlmeddelelser i fuld udskrift fra MySQL (jeg går ud fra at du har
noget mysql_query(query her)or die(mysql_error()); -lignende i sving
ovre i den sql_spoerg-funktionen, det tyder din fejlmeddelelse i hvert
fald på

mvh

Jesper Brunholm

Ralle (20-08-2006)
Kommentar
Fra : Ralle


Dato : 20-08-06 15:34

Jesper Brunholm wrote in dk.edb.internet.webdesign.serverside.php:
> Hej Ralle
>
> > sql_spoerg("UPDATE enzolim SET sitename=$sitename;");
> > sql_spoerg("UPDATE enzolim SET siteslogan=$siteslogan;");
> > sql_spoerg("UPDATE enzolim SET content=$content;");
>
> Det her er der et par problemer med. For det første så skal tekststrenge
> i mysql "quotes", det er (ligesom i PHP) kun tal man må bruge uden
> anførselstegn om, så lad os begynde med at rette den del:
>
> "UPDATE enzolim SET sitename='$sitename';"
>
> Dernæst så vil denne kommando gøre at alle rækker i tabellen enzolim
> bliver opdateret til at sitename = $sitename. Normalt ønsker man kun at
> en enkelt række skal opdateres, så sæt en WHERE på:
>
> "UPDATE enzolim SET sitename='$sitename' WHERE ID = $retteid;"
>
> (ID formodes at være et tal, derfor ingen anførselstegn om.)
>
> enzolim er 1 tabel, så vi kan lige så godt lave alle tre rettelser på en
> gang, når vi nu har fat i tabellen:
>
> "UPDATE enzolim SET sitename='$sitename', siteslogan='$siteslogan',
> content='$content' WHERE ID = $retteid;"
>
> Når så der går ged i den, så er det vældigt praktiskt at kunne være
> sikker på hvad man egentlig har smidt for en kommando afsted til MySQL.
> Det kan du sikre dig sådan her:
>
> $rette_query="UPDATE enzolim SET sitename='$sitename',
> siteslogan='$siteslogan', content='$content' WHERE ID = $retteid;";
>
> echo $rette_query;
>
> sql_spoerg($rette_query);
>
> Det giver også mulighed for at du kan klippe queryen ud fra echoet og
> sætte den ind i phpmyadmin, så du er helt sikker på at få alle
> fejlmeddelelser i fuld udskrift fra MySQL (jeg går ud fra at du har
> noget mysql_query(query her)or die(mysql_error()); -lignende i sving
> ovre i den sql_spoerg-funktionen, det tyder din fejlmeddelelse i hvert
> fald på

giver følgende fejl:

UPDATE enzolim SET sitename='test', siteslogan='Sponsored By Ledervejen.dk',
content='Test Test' WHERE ID = ;
coldent done: UPDATE enzolim SET sitename='test', siteslogan='Sponsored By
Ledervejen.dk', content='Test Test' WHERE ID = ;
The Fail Is: You have an error in your SQL syntax. Check the manual that
corresponds to your MySQL server version for the right syntax to use near ''
at line 2


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper H (24-08-2006)
Kommentar
Fra : Jesper H


Dato : 24-08-06 15:48


Ralle skrev:

> Jesper Brunholm wrote in dk.edb.internet.webdesign.serverside.php:
> > Hej Ralle
> >
> > > sql_spoerg("UPDATE enzolim SET sitename=$sitename;");
> > > sql_spoerg("UPDATE enzolim SET siteslogan=$siteslogan;");
> > > sql_spoerg("UPDATE enzolim SET content=$content;");
> >
> > Det her er der et par problemer med. For det første så skal tekststrenge
> > i mysql "quotes", det er (ligesom i PHP) kun tal man må bruge uden
> > anførselstegn om, så lad os begynde med at rette den del:
> >
> > "UPDATE enzolim SET sitename='$sitename';"
> >
> > Dernæst så vil denne kommando gøre at alle rækker i tabellen enzolim
> > bliver opdateret til at sitename = $sitename. Normalt ønsker man kun at
> > en enkelt række skal opdateres, så sæt en WHERE på:
> >
> > "UPDATE enzolim SET sitename='$sitename' WHERE ID = $retteid;"
> >
> > (ID formodes at være et tal, derfor ingen anførselstegn om.)
> >
> > enzolim er 1 tabel, så vi kan lige så godt lave alle tre rettelser på en
> > gang, når vi nu har fat i tabellen:
> >
> > "UPDATE enzolim SET sitename='$sitename', siteslogan='$siteslogan',
> > content='$content' WHERE ID = $retteid;"
> >
> > Når så der går ged i den, så er det vældigt praktiskt at kunne være
> > sikker på hvad man egentlig har smidt for en kommando afsted til MySQL.
> > Det kan du sikre dig sådan her:
> >
> > $rette_query="UPDATE enzolim SET sitename='$sitename',
> > siteslogan='$siteslogan', content='$content' WHERE ID = $retteid;";
> >
> > echo $rette_query;
> >
> > sql_spoerg($rette_query);
> >
> > Det giver også mulighed for at du kan klippe queryen ud fra echoet og
> > sætte den ind i phpmyadmin, så du er helt sikker på at få alle
> > fejlmeddelelser i fuld udskrift fra MySQL (jeg går ud fra at du har
> > noget mysql_query(query her)or die(mysql_error()); -lignende i sving
> > ovre i den sql_spoerg-funktionen, det tyder din fejlmeddelelse i hvert
> > fald på
>
> giver følgende fejl:
>
> UPDATE enzolim SET sitename='test', siteslogan='Sponsored By Ledervejen.dk',
> content='Test Test' WHERE ID = ;
> coldent done: UPDATE enzolim SET sitename='test', siteslogan='Sponsored By
> Ledervejen.dk', content='Test Test' WHERE ID = ;
> The Fail Is: You have an error in your SQL syntax. Check the manual that
> corresponds to your MySQL server version for the right syntax to use near ''
> at line 2
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials

Hej Ralle

Du har ikke angivet hvilken postering, der skal rettes. Dvs. du skal
have givet en (tal-)værdi i $retteid . Du kan se det på dit
SQL-query:
UPDATE enzolim SET sitename='test', siteslogan='Sponsored By
Ledervejen.dk', content='Test Test' WHERE ID = ;
Læg mærke til den sidste del: WHERE ID =
Det er fordi $retteid er tomt, og SQL forventer at der står en værdi
(tal, streng, et-eller-andet) efter lighedstegnet.

Hvis det stadig ikke virker, skal du måske kigge efter om enzolim har
en kolonne med navnet ID - ellers skal denne oprettes, og du skal nok
sætte den til auto_increment.

Mvh
Jesper
--
http://www.tandklinikken-vesterbro.dk/ , http://fdf.dk/landsdel1/


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste