Hoi, ik ben al een paar uren verschillende notaties aan het toepassen, zonder resultaat. Wellicht dat een van jullie de fout ziet in de volgende query:
<? $sql = 'UPDATE almelo_producten SET naam = "'.mysql_real_escape_string($_POST['naam']).'", basis = "'.mysql_real_escape_string($_POST['basisproduct']).'", omschrijving = "'.mysql_real_escape_string($_POST['omschrijving']).'", \'' . $pdf. '\',\''. mysql_real_escape_string($_FILES['myfile']['name']).'\'WHERE id = ".$_POST[id]';
?>
ik krijg geen foutmelding, hij stuurt de gegevens alleen niet naar de DB...
Wat Jan ook al zei, je gaat de mist in met de quotes. Verder ontbreken er een aantal velden, dat blijkt vanzelf wanneer je de query netjes gaat uitschrijven:
<?
$sql = "
UPDATE
almelo_producten
SET
naam = '".mysql_real_escape_string($_POST['naam'])."',
basis = '".mysql_real_escape_string($_POST['basisproduct'])."',
omschrijving = '".mysql_real_escape_string($_POST['omschrijving'])."',
'". $pdf. ",
'". mysql_real_escape_string($_FILES['myfile']['name'])."'
WHERE
id = ".$_POST['id'];
?>
Edit: $pdf en $_FILES worden nergens weggeschreven. En dat je geen foutmelding krijgt, komt waarschijnlijk omdat je geen fouten wilt zien. Gebruik je wel error_reporting(E_ALL) en de functie mysql_error() ?
Klopt: SET $pdf, $_FILES (wanneer ik de overige velden en functies even weglaat. Wie, wat en waar zouden deze gegevens moeten worden weggeschreven? Bij 'naam', 'basis' en 'omschrijving' benoem je keurig de veldnamen, maar bij de andere 2 gegevens ontbreken deze. MySQL is geen perfecte database, mocht dit al bestaan, maar gelukkig gaat MySQL niet zelf bedenken waar het de gegevens dan gaat wegschrijven. Dat mag jij nog steeds gaan bedenken!
Tip: Schrijf de boel eens netjes uit over meerdere regels, zie mijn voorbeeld.
Bij de INSERT gebruik je 'INSERT INTO almelo_producten (naam ,omschrijving ,categorie_id ,basis, pdf, files)' voordat je naar de VALUES gaat. Je benoemt dus keurig alle velden die moeten worden gevuld. Dat moet je in de UPDATE dus ook doen: SET veldnaam = value