PDA

Volledige versie bekijken : [MySQL] Loginsysteem member query met punten.


dennisvdz
%Europe/Berlin %662 %2009, 16:53
Op het inloggen van de gebruiker word de member id in de sessie ID opgeslagen.
$_SESSION['ID']
Nu wil ik het 'item' in de MySQL tabel 'Punten' aanpassen met deze member ID.

Ik probeerde dit:

<?php
require_once('config.php');
$query = "UPDATE members SET punten = punten + 50 WHERE member_id = '$_SESSION['ID']'";
?>

met als gevolg een error:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in localhost/addpts.php on line 3


Kan iemand me hierbij helpen? Ik probeer MySQL een beetje te leren, maar op dit punt loop ik dus totaal vast.

Dennis.

Dauntless
%Europe/Berlin %671 %2009, 17:06
Probeer dit eens (iets duidelijker)
$query = "UPDATE members SET punten = punten + 50 WHERE member_id = '" . $_SESSION['ID'] . "';";

dennisvdz
%Europe/Berlin %681 %2009, 17:21
Nu heb ik totaal geen errors etc., maar nu word er in phpMyAdmin geen waarde toegevoegd.

Ook niet echt geweldig :Q.

Dauntless
%Europe/Berlin %682 %2009, 17:23
En als je de query print en zelf even uitvoerd in phpmyadmin ? Komt de ID waarde overeen met een van de gebruikers in je tabel ?

Probeer bv een SELECT * FROM members WHERE member_id = 'XXXXXXXXXXX'

dennisvdz
%Europe/Berlin %687 %2009, 17:29
Geweldig :D.
Dat werkt teminste XD.
Ik heb de var $query geprint en via SQL uitgevoerd in PhpMyAdmin en alles werkte prima.

Dauntless
%Europe/Berlin %688 %2009, 17:31
En wat is de rest van je PHP code dan ?

dennisvdz
%Europe/Berlin %690 %2009, 17:34
Alleen dat eerste met de update die was gegeven.
Het uitvoeren van de SQL code via PHP? Geen ervaring mee ;Q.

Even een ander vraagje, is er hiermee ook een mogelijkheid om op dezelfde manier de punten te echoën?

Dauntless
%Europe/Berlin %699 %2009, 17:47
Naast het declareren van de query moetje hem uiteraard ook nog uitvoeren!

Misschien best eerst even een kleine SQL+PHP tutorial volgen ?
http://www.phpfreakz.nl/artikelen.php?aid=19

dennisvdz
%Europe/Berlin %707 %2009, 17:59
Woo.
Eindelijk een totale beginnerstutorial :). Bedankt.
Het grootste probleem is opgelost.

Het echoën is alleen een probleempje.. Daar snap ik totaal niets van, ook niet met die tutorial.

Dennis.

dennisvdz
%Europe/Berlin %733 %2009, 18:35
Ok..
Ik probeerde dit (Stukje code waar het om gaat, beginnend bij lijn 15)
$query="SELECT punten FROM members WHERE member_id = '" . $_SESSION['ID'] . "';";
$result=mysql_query($query);
print($result)

met als gevolg deze error:

Parse error: syntax error, unexpected T_VARIABLE in localhost/test/logins.php on line 15

dcm360
%Europe/Berlin %736 %2009, 18:41
Wat doe je dan op lijn 14? (vaak worden foutmeldingen veroorzaakt in de regels ervoor, voordat de compiler/interpetator het doorheeft). Mis je misschien een puntkomma?

dennisvdz
%Europe/Berlin %739 %2009, 18:44
Natuurlijk mis ik puntkomma's XD.

Bedankt, 't werkt nu :).

023-jimmy
%Europe/Berlin %750 %2009, 19:00
Waarom staat er ook een punt-komma in je query?

$query="SELECT punten FROM members WHERE member_id = '" . $_SESSION['ID'] . "';";
->
$query="SELECT punten FROM members WHERE member_id = '" . $_SESSION['ID'] . "'";

dennisvdz
%Europe/Berlin %753 %2009, 19:04
Weet ik veel.. 't werkte de eerste keer goed, nu ook. Trouwens, jou mogelijkheid werkt ook.

En ik heb nu nóg een raar probleem.
Ik krijg als print:

Resource id #4

Snap er totaal niets van aangezien er nergens zo'n vage code staat XD.
Ik moet alleen een nummertje hebben.

Dauntless
%Europe/Berlin %766 %2009, 19:23
Wat je terugkrijgt van je query is een SQL-object. Die heeft normaal nog een 'punten' eigenschap. Gebruik bv eens print_r($result); Dan krijg je al een beter overzicht van hoe het er uit ziet. (Bekijk de broncode van je pagina).

In de tutorial die ik gaf staan voorbeelden hoe je gegevens print (dacht ik). Kijk daar ook nog eens naar :).

@Jimmy: Die ; had ik toegevoegd. Waarom zou dat niet mogen? Dacht altijd dat het netter was om je SQL query mooi af te sluiten.

dennisvdz
%Europe/Berlin %770 %2009, 19:29
Print_r is weinig verschil mee.. Geen, eigenlijk.
In die tutorial staat niets over het echoën/printen van dingen, voor zover ik zie.

EDIT: Via php.net heb ik het kunnen uitvogelen :D.

En het werkt, BEDANKT :D.

Dauntless
%Europe/Berlin %775 %2009, 19:37
Vreemd, print_r zou echt wel een hoop meer data moeten geven ... Maar als het werkt, werkt het natuurlijk :).

dennisvdz
%Europe/Berlin %799 %2009, 20:11
Wat zou een print_r moeten doen? Hier niks, maar tja..

Dauntless
%Europe/Berlin %928 %2009, 23:17
print_r zorgt voor een leesbare weergaven van een complex object, zoals bv een Array of een sql object.

Als je van een functie wil weten wat ze doet, kijk dan op http://be.php.net

dennisvdz
%Europe/Berlin %600 %2009, 15:24
Aha. Nouja, snap er totaal niets van. T'is al een wonder dat het überhaupt werkt :Q.

023-jimmy
%Europe/Berlin %662 %2009, 16:53
@Jimmy: Die ; had ik toegevoegd. Waarom zou dat niet mogen? Dacht altijd dat het netter was om je SQL query mooi af te sluiten.

Het mag wel, geeft ook geen fout. Het is nogal nutteloos. En 'mooi om af te sluiten', tjaah. Het staat tussen quotes, het valt niet eens op.

dennisvdz
%Europe/Berlin %717 %2009, 18:12
Ook voor het eerst dat het niet uitmaakt of je iets wel of niet doet in PHP? (En spaties en ' of ")

Dauntless
%Europe/Berlin %725 %2009, 18:24
Dat is omdat het hier over SQL gaat en niet PHP ;).