Dag allemaal,
Ik heb in code boven dit een formulier, ik zou denken dat hiermee de gegevens in mijn database aangepast moeten worden. Dit doet ie echter niet. Iemand een idee?
if(isset($_POST['gameswijzigingen']))
				{
					$link = $_POST['gamelink'];
					$artiest = $_POST['gameartiest'];
					$genre = $_POST['gamegenre'];
					$formaat = $_POST['gameformaat'];
					$album = $_POST['gamealbum'];
					$beoordeling = $_POST['beoordeling'];
					$querygamewijziging = "	UPDATE eind_objecten SET gebruiker = '$gebruiker', artiest = '$artiest', genre = '$genre', beoordeling = '$beoordeling', formaat = '$formaat', link = '$link' 
											WHERE gebruikersid = 
											(SELECT gebruikersid 
    										FROM eind_gebruikersid 
    										WHERE gebruikersnaam = '$gebruiker') 
											AND artiest = '$artiest'
																" ; 
					mysql_query($querygamewijziging) or die(mysql_error());
				}

Alvast bedankt
Een subquery kan je niet gelijkstellen aan is. Gebruik IN ()

voor de rest is het waanzinig omslachten om $_POST waarden ongecontroleerd in variabelen te zetten en deze dan ook als zodanig te gebruiken in SQL-statements

Als je php code post zet deze dan tussen [ignore]<?php ?>[/ignore] tags.

en voor je je code post dan maak je dat ook nog netjes, zodat het redelijk leesbaar is:
<?php
if(isset($_POST['gameswijzigingen'])) {
$link = $_POST['gamelink'];
$artiest = $_POST['gameartiest'];
$genre = $_POST['gamegenre'];
$formaat = $_POST['gameformaat'];
$album = $_POST['gamealbum'];
$beoordeling = $_POST['beoordeling'];

$querygamewijziging = "UPDATE eind_objecten
SET gebruiker = '".mysql_real_escape_string($gebruiker)."'
, artiest = '".mysql_real_escape_string($artiest)."'
, genre = '".mysql_real_escape_string($genre)."'
, beoordeling = '".mysql_real_escape_string($beoordeling)."'
, formaat = '".mysql_real_escape_string($formaat)."'
, link = '".mysql_real_escape_string($link)."'
WHERE gebruikersid IN
(SELECT gebruikersid
FROM eind_gebruikersid
WHERE gebruikersnaam = '".mysql_real_escape_string($gebruiker)."')
AND artiest = '".mysql_real_escape_string($artiest)."'" ;
if (!$result = msyql_query($querygamewijziging)) {
echo $sql.'<br/>'.PHP_EOL;
echo mysql_error();
}
}
?>
Sorry voor de slechte post... ben hier nieuw en was mijn eerste..
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
Noppes schreef op 18.01.2009 22:30
Een subquery kan je niet gelijkstellen aan is. Gebruik IN ()

En sinds wanneer is dat dan het geval? Ik heb vele stukken code draaien waarbij er vergelijkingen worden gedaan met het resultaat van een subquery en waarbij toch echt een = wordt gebruikt. Waarom? Omdat ik een = vergelijking nodig heb.

Wanneer je meerdere resultaten verwacht en een OR vergelijking nodig hebt, dan kun je heel handig met IN() aan de slag. Maar wanneer je geen IN() wilt of kunt gebruiken, ga je deze uiteraard niet gebruiken.

Wanneer je = gebruikt, moet je er wel voor zorgen dat de subquery maar 1 resultaat retour geeft, anders is een foutmelding het gevolg. Gelukkig maar, er gaat tenslotte wat fout.

En ja, dit werkt zelfs in MySQL, voor versie 5 heb ik daar vaak moeten toepassen. Hoe het met oudere rommel zit, weet ik niet, dat is anno 2009 ook niet meer relevant.

Reageren