Toon posts:

[php en sql] Waarde word niet meegenomen

Pagina: 1
Acties:
  • 61 views sinds 30-01-2008

Verwijderd

Topicstarter
Goedenmiddag,

Ik ben bezig met een groot invoerscript in html. De gegevens die men kan invoeren, moeten worden ge-update worden in een database. Omdat het orginele invoer pagina, erg groot is, heb ik het verkleind naar 1 invoerveld. Maar zelfs deze krijg ik niet werkend.
Ziet misschien iemand wat ik al een halfe dag over het hoofd zie?
Dit is het html deel.

<form method="GET" action="invul.php">
Tekst: <input name="Titel">
<input type="submit" value="Verstuur">
</form>

Hieronder volgt de pagina, invul.php

PHP:
1
2
3
4
5
6
<?php
mysql_connect(localhost,root,''); 
mysql_select_db("MuziekDB"); 
mysql_query("UPDATE tb_kop SET Tekst value='{$_GET['Titel']}'");
echo mysql_error();
?>


De foutmelding die ik krijg is:" ...error in your SQL syntax near 'value='Coulthard'' ... ".

Coulthard is dan de invoer...

Ziet iemand de oplossing?

Alvast bedankt. :)

Verwijderd

INSERT, misschien een optie....

Sorry das niet echt een oplossing, haal je accolades eens weg voor de grap..

PHP:
1
mysql_query("UPDATE tb_kop SET Tekst value='$_GET[Titel]'");


edit:
pfff geen tijd om te editten...

[ Voor 90% gewijzigd door Verwijderd op 10-03-2003 15:18 ]


Verwijderd

staat in je adresbalk wel het adres www.mijnadres.com/invul.php?Titel=Coulthard aangezien je form op GET staat?

  • cenix
  • Registratie: September 2001
  • Laatst online: 07:37
<form method="GET" action="invul.php">
Tekst: <input name="Titel">
<input type="submit" value="Verstuur">
</form>
GET is om gegevens op te halen, gebruik POST bij method

Verder lijkt het in orde

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
slashes :?
PHP:
1
mysql_query("UPDATE tb_kop SET Tekst value='{$_GET[Titel]}'");


probeer dit eens

[ Voor 83% gewijzigd door 4Real op 10-03-2003 15:16 ]


  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
value= weghalen

lees eens een manual of zo :Z


UPDATE tb_kop SET Tekst ='$_GET[Titel]'

[ Voor 13% gewijzigd door Sn3akz op 10-03-2003 15:17 ]


Verwijderd

Topicstarter
In de adres balk staat dit idd. :http://localhost/Site/invul.php?Titel=Coulthard

Het is de bedoeling dat de informatie gewijzigd wordt. Insert heb ik geprobeerd, werkt eveneens niet.

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Verwijderd schreef op 10 maart 2003 @ 15:11:
Goedenmiddag,

Ik ben bezig met een groot invoerscript in html. De gegevens die men kan invoeren, moeten worden ge-update worden in een database. Omdat het orginele invoer pagina, erg groot is, heb ik het verkleind naar 1 invoerveld. Maar zelfs deze krijg ik niet werkend.
Ziet misschien iemand wat ik al een halfe dag over het hoofd zie?
Dit is het html deel.

<form method="GET" action="invul.php">
Tekst: <input name="Titel">
<input type="submit" value="Verstuur">
</form>

Hieronder volgt de pagina, invul.php

PHP:
1
2
3
4
5
6
<?php
mysql_connect(localhost,root,''); 
mysql_select_db("MuziekDB"); 
mysql_query("UPDATE tb_kop SET Tekst value='{$_GET['Titel']}'");
echo mysql_error();
?>


De foutmelding die ik krijg is:" ...error in your SQL syntax near 'value='Coulthard'' ... ".

Coulthard is dan de invoer...

Ziet iemand de oplossing?

Alvast bedankt. :)
Volgens mij moet het zo:
PHP:
1
2
3
<?php
mysql_query("UPDATE tb_kop SET Tekst='{$_GET['Titel']}'");
?>

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • bitwizz
  • Registratie: Januari 2002
  • Laatst online: 17-08 15:18
PHP:
1
2
3
4
5
6
7
<?php
mysql_connect(localhost,root,''); 
mysql_select_db("MuziekDB");
$titel=$_GET['Titel'];
mysql_query("UPDATE tb_kop SET Tekst='$titel'");
echo mysql_error();
?>


In MySQL query kan niet om gaan met een string op deze wijze. wel met een var.

ps wij tweakers bedanken elkaar altijd, hoef er niet extra bij ;)

[ Voor 12% gewijzigd door bitwizz op 10-03-2003 15:22 ]

Bestuurder van een KIA EV6 77,4kwh RWD GT-Line - Yacht Blue


Verwijderd

Topicstarter
Post of Get maakte geen verschil.

Inderdaad de value waarde moest weg. Door de war met insert denk ik...

Bedankt mensen.

Verwijderd

Topicstarter
Bitwizz. Wat jij schreef, had ik al geprobeerd. Werkt niet. Maar de oplossing is:

PHP:
1
mysql_query("UPDATE tb_kop SET Tekst='{$_GET['Titel']}'");


Ik bedankt mensen altijd graag. Sorry...

Verwijderd

Ok hoe je dat codevenstertje doet weet ik ff niet, en ik ben ook geen pro in php maar hoe klinkt dit:

mysql_query("UPDATE tb_kop SET Tekst='".{$_GET['Titel']}."'");

Verwijderd

Topicstarter
Uhm.. tags doe je met [ code naam] dan de code [/ codenaam] dan sluit je de code af.

De oplossing staat hierboven...

  • Yoran
  • Registratie: Juni 2002
  • Laatst online: 03-05 00:26
als je waarde ' bevat dan is het raadzaam addslashes() te gebruiken

  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Verwijderd schreef op 10 March 2003 @ 15:23:
Bitwizz. Wat jij schreef, had ik al geprobeerd. Werkt niet. Maar de oplossing is:

PHP:
1
mysql_query("UPDATE tb_kop SET Tekst='{$_GET['Titel']}'");


Ik bedankt mensen altijd graag. Sorry...
en ik dan :'(

:P

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


Verwijderd

Topicstarter
Dawuss ook bedankt hoor jij had de oplossing... :*)

  • FunzoneQ!
  • Registratie: Oktober 2002
  • Laatst online: 15-11-2024

FunzoneQ!

Nee

niet moeilijk doen.. gewoon posten

// html

<form method="POST" action="invul.php">
Tekst: <input name="Titel">
<input type="submit" value="Verstuur">
</form>

// invul.php

<?

if (!$_POST[titel]){
echo "errorrrrrrrrrrr";
}else{
$query = "INSERT INTO tb_kop VALUES tekst_value='$titel' ";
mysql_query($query) or die (mysql_error());

?>

Bla


  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 23-08 12:03

[ash]

Cookies :9

Wat doen die accolades daar nog :?

doe eens het volgende:
PHP:
1
2
3
$sql="UPDATE tb_kop SET Tekst=\"".$_POST["Titel"]."\""; 
echo $sql;
mysql_query($sql);


En voer die sql statement eens met bijvoorbeeld MySQL front uit, en kijk wat de output is.

[ Voor 11% gewijzigd door [ash] op 10-03-2003 15:33 ]


Verwijderd

Topicstarter
Wat ze daar doen, begrijp ik ook niet precies. Maar zonder werkt het niet. Maar heb de mogelijkheid van jou geprobeerd.
PHP:
1
mysql_query="UPDATE tb_kop SET Tekst=\"".$_POST["Titel"]."\"";


De foutmelding is:" Parse error: parse error, unexpected '=' in C:\httpd\php\Site\invul.php ".

Ik geef toe dat het vreemd lijkt. Maar het werkt...

Verwijderd

Topicstarter
Ik heb het idee dat het met de dubbele aanhalingstekens te maken heeft... Als je dubbele aanhalingstekens doet, moet je accolades gebruiken.

Of is dat onzin???

  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 23-08 12:03

[ash]

Cookies :9

Verwijderd schreef op 10 maart 2003 @ 15:38:
Ik heb het idee dat het met de dubbele aanhalingstekens te maken heeft... Als je dubbele aanhalingstekens doet, moet je accolades gebruiken.

Of is dat onzin???
Helaas is dat onzin..

Een enkele quote (") is namelijk de markering van het begin/eind van een string

Een slash voor de quote (/") is het letterlijk in de string plaatsen van een quote (").

Verwijderd

Topicstarter
Juist... het werkte inderdaad niet toen ik de dubbele aanhalingstekens weghaalde en er een enkele neerzette, en de accolades verwijderde.

Maar goed... weet ik ook weer waar de /" voor is...

tnx. :D

  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 23-08 12:03

[ash]

Cookies :9

Your Welcome :)

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
[ash] schreef op 10 March 2003 @ 15:52:
[...]
Helaas is dat onzin..

Een enkele quote (") is namelijk de markering van het begin/eind van een string

Een slash voor de quote (/") is het letterlijk in de string plaatsen van een quote (").
Verwijderd schreef op 10 March 2003 @ 16:01:
...

Maar goed... weet ik ook weer waar de /" voor is...

...
Ahum, zullen we die slash de andere kant uitzetten :D

PHP:
1
2
string = "blaat\"blaat"; // Goed
string = "blaat/"blaat"; // Ziet er niet goed uit hé


de oplossing is lijkt mij:

PHP:
1
2
3
<?
mysql_query="UPDATE tb_kop SET Tekst = '".$_GET['Titel']."'";
?>


Want sql wil ' ' *enkele quotes* om zijn string heen. En je kan beter een string afsluiten en dan de var plaatsen en dan weer een stukje string er aan plakken want dat is in elke programmeer- of scripttaal gangbaar. Het is netter en het is stukken leesbaarder vooral in combinatie met code-highlighting

Verwijderd

Topicstarter
Aha... dat werkt ook.
Meerder wegen die naar Rome gaan hè.
Maar overzichtelijk is het wel.

:D

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

doe het dan helemaal goed :)
PHP:
1
$query="UPDATE tb_kop SET Tekst = '" . mysql_escape_string($_GET['Titel']) . "'";

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 14-12-2025
ACM schreef op 10 maart 2003 @ 18:08:
doe het dan helemaal goed :)
PHP:
1
$query="UPDATE tb_kop SET Tekst = '" . mysql_escape_string($_GET['Titel']) . "'";
*schaam* |:( het belangrijkste nog vergeten maar ik was close ;)

Deze is idd onmisbaar want vertrouw nooit de input van een gebruiker.

[ Voor 24% gewijzigd door martinvw op 10-03-2003 18:14 . Reden: smiley's ;) ]


  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 23-08 12:03

[ash]

Cookies :9

M4rt1nvW schreef op 10 March 2003 @ 16:42:
Ahum, zullen we die slash de andere kant uitzetten :D
Ohhhhh wat stom....

Werk er dagelijks mee, hoe kan ik zo'n domme fout maken :(

stom stom stom 8)7 |:( :X

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Volgende keer kan het geen kwaad jezelf wat beter op de hoogte te stellen van de syntax van een taal, die je gewoon terugvindt in de manual.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.