[PHP, MYSQL] Update werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb hier een probleem met een update.
Ik ben al ongeveer 3 dagen met dit script bezig maar hij wil
op de een of andere manier niet updaten.
Ik kan hier verder niet de relevante info die ik nodig heb vinden,
dus daarom mijn vraag: wat doe ik fout:


$naam = $_POST['naam'];
$voornaam = $_POST['voornaam'];
$adres = $_POST['adres'];
$postcode = $_POST['postcode'];
$plaats = $_POST['plaats'];
$gemeente = $_POST['gemeente'];
$telefoon = $_POST['telefoon'];
$fax = $_POST['fax'];
$land = $_POST['land'];
$email = $_POST['email'];
$aanspreking = $_POST['aanspreking'];
$aard = $_POST['aard'];
$beroep = $_POST['beroep'];
$hogeraad = $_POST['hogeraad'];
$tav = $_POST['tav'];
$memo = $_POST['memo'];
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
mysql_query("UPDATE `clienten` SET 
client_naam = '$naam', 
`client_voornaam` = '$voornaam', 
`client_tav` = '$tav', 
`client_adres` = '$adres', 
`client_postcode` = '$postcode', 
`client_gemeente` = '$gemeente', 
`client_land` = '$land', 
`client_telefoon` = '$telefoon', 
`client_mail` = '$email', 
`client_aanspreking` = '$aanspreking', 
`client_aard` = '$aard', 
`client_wonende_te` = '$plaats', 
`client_beroep` = '$beroep', 
`client_hoge_raad` = '$hogeraad', 
`client_fax` = '$fax', 
`client_memo` = '$memo', 
`dossier_id` = '' 
WHERE `client_id` = '$c_id' ") or die (mysql_error());

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Ik zie nergens de variabele $c_id gedefinieerd?

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Wacky schreef op 02 november 2004 @ 13:52:
Ik zie nergens de variabele $c_id gedefinieerd?
En als dit id veld een integer is zijn die ' bij $c_id ook niet nodig.

Acties:
  • 0 Henk 'm!

Verwijderd

Waar is $c_id?

Wat ik niet snap is waarom je dit doet:
PHP:
1
$query = "UPDATE `tabel` SET `column` = '$varnaam'

Dit is behoorlijk lelijk imo.
Zo moet ie zijn in principe:
PHP:
1
$query = "UPDATE `tabel` SET `column` = '".$varnaam."'

[ Voor 19% gewijzigd door Verwijderd op 02-11-2004 13:57 . Reden: Too late :) ]


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Verwijderd schreef op 02 november 2004 @ 13:55:
Wat ik niet snap is waarom je dit doet:
PHP:
1
SET `column` = '$varnaam'

Dit is behoorlijk lelijk imo.
Zo moet ie zijn in principe:
PHP:
1
SET `column` = '".$varnaam."'
Beter nog is die hele SQL query in een losse string plaatsen, wel zoals hierboven gezegd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
thnx, ik heb het anders geleerd op school,
maja das school. Kga het meteen ff proberen

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Er staat netjes or die(mysql_error()) achter je query. Als er niets geupdate wordt, krijg je daar dus een melding van. Vertel die melding eerst eens een keer. ;)
Verwijderd schreef op 02 november 2004 @ 13:55:
Waar is $c_id?

Wat ik niet snap is waarom je dit doet:
PHP:
1
$query = "UPDATE `tabel` SET `column` = '$varnaam'

Dit is behoorlijk lelijk imo.
Zo moet ie zijn in principe:
PHP:
1
$query = "UPDATE `tabel` SET `column` = '".$varnaam."'
Dat is een kwestie van smaak en in dit topic helemaal niet relevant. En als je het dan toch al zo doet, gebruik dan ook single quotes, anders heb je nog steeds het voordeel van jouw methode niet eruit... :X

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hij geeft gewoon netjes aan dat ie heeft ge-update ... maar dat doet hij dus niet. Btje vreemd en als ik dit doe:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
UPDATE `clienten` SET client_naam = '".$naam."', 
`client_voornaam` = '".$voornaam."', 
`client_tav` = '".$tav."', 
`client_adres` = '".$adres."', 
`client_postcode` = '".$postcode."', 
`client_gemeente` = '".$gemeente."', 
`client_land` = '".$land."', 
`client_telefoon` = '".$telefoon."', 
`client_mail` = '".$email."', 
`client_aanspreking` = '".$aanspreking."', 
`client_aard` = '".$aard."', 
`client_wonende_te` = '".$plaats."', 
`client_beroep` = '".$beroep."', 
`client_hoge_raad` = '".$hogeraad."', 
`client_fax` = '".$fax."', 
`client_memo` = '".$memo."', 
`dossier_id` = '' WHERE `client_id` = '$c_id') or die (mysql_error());

dan leest hij de echo eronder niet meer


******
speciaal voor wacky:
PHP:
1
2
3
echo "
<html>
<head>

In de echo staat gewoon een pagina code

[ Voor 52% gewijzigd door Verwijderd op 02-11-2004 14:16 ]


Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Ik zie helemaal geen echo staan 8)7

Edit:
Je moet je query wel echo-en, en niet gewoon zo neer zetten natuurlijk B)

[ Voor 55% gewijzigd door Wacky op 02-11-2004 14:16 ]

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • Postman
  • Registratie: Februari 2000
  • Laatst online: 18-09 19:05
Ja, door die 'or die (mysql_error());' stopt je script met uitvoeren en geeft ie nog een foutmelding weer, mits dat aanstaat in je PHP.ini. Dus dat de rest van de pagina niet wordt gegeven betekend dat de SQL query niet goed wordt uitgevoerd.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
maar dat zou dus betekenen dan ik die or die (mysql_error ()); eruit moet halen?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Zet dit op een aparte pagina:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
echo "UPDATE `clienten` SET client_naam = '".$naam."',
`client_voornaam` = '".$voornaam."',
`client_tav` = '".$tav."',
`client_adres` = '".$adres."',
`client_postcode` = '".$postcode."',
`client_gemeente` = '".$gemeente."',
`client_land` = '".$land."',
`client_telefoon` = '".$telefoon."',
`client_mail` = '".$email."',
`client_aanspreking` = '".$aanspreking."',
`client_aard` = '".$aard."',
`client_wonende_te` = '".$plaats."',
`client_beroep` = '".$beroep."',
`client_hoge_raad` = '".$hogeraad."',
`client_fax` = '".$fax."',
`client_memo` = '".$memo."',
`dossier_id` = '' WHERE `client_id` = ".$c_id;


Voer vervolgens het resultaat daarvan in in phpMyAdmin ofzo, misschien krijg je dan een meer bruikbare foutmelding.

[ Voor 26% gewijzigd door NMe op 02-11-2004 14:20 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Je moet je query wel echo-en, en niet gewoon zo neer zetten natuurlijk
Waarom die query echo-en?

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Verwijderd schreef op 02 november 2004 @ 14:21:
[...]


Waarom die query echo-en?
Hij wil toch kijken hoe de variabelen in de query terugkomen 8)7

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
sorry :| maar ik snap het even niet meer ;(

Acties:
  • 0 Henk 'm!

Verwijderd

In phpmyadmin het resultaat van de querystring doen. Dit kan linksonderin in de query window of gewoon in de knop SQL.
We nemen aan dat je met phpmyadmin overweg kunt?

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Verwijderd schreef op 02 november 2004 @ 14:26:
sorry :| maar ik snap het even niet meer ;(
De variabele die je gebruikt om te updaten ($c_id) wordt niet gedifinieerd, oftewel je query ziet er op 't eind zo uit:

code:
1
WHERE `client_id` = ''

[ Voor 6% gewijzigd door Wacky op 02-11-2004 14:31 ]

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Die defineer ik wel

PHP:
1
2
$c_id = $_GET['c_id'];
if($commando=="plaatsen"){


Dat staat bovenaan mn pagina

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Wacky schreef op 02 november 2004 @ 14:31:
[...]


De variabele die je gebruikt om te updaten ($c_id) wordt niet gedifinieerd, oftewel je query ziet er op 't eind zo uit:

code:
1
WHERE `client_id` = ''
Dat vermoed ik inderdaad ook, maar dat weet je dus pas als TS de feitelijke query afdrukt (en eventueel probeert uit te voeren in phpMyAdmin).

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
De echo doet het weer, er miste een quotje.
Maar hij voert nog steeds niks in.

Maar hoe moet ik dan die query uitvoeren in phpmyadmin?
Ik bedoel hij probeert toch die waardes uit variables te halen?

Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op 02 november 2004 @ 14:37:
Maar hoe moet ik dan die query uitvoeren in phpmyadmin?
Ik bedoel hij probeert toch die waardes uit variables te halen?
De PHP-code invoeren in phpMyAdmin werkt inderdaad niet, maar wat je echoot en ook in de mysql_query() functie stopt zou toch wel moeten werken?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja dat werkt wel, als je de variables vervangt voor woorden.
Die zet hij wel weg, maar dat is logisch want ik heb de
query van phpmyadmin gekopieerd dus dat zou dan ook wel moeten.
Ik begrijp niet dat hij de waardes uit die variables niet lees.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

En je weet zeker dat het gebruikte id voorkomt in de database? En dat het stuk code waarin de query staat ook echt uitgevoerd wordt?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja het is het goede id, want als ik in die echo (die na de query staat)) het id laat zien, dan geeft hij de goede weer.
En ik denk dat het m nou juist in dat stukje code zit alleen heb ik geen flauw idee waar of hoe
Pagina: 1