Om leden gegevens online te kunnen wijzigen maak ik gebruik van een formuliertje en de UPDATE ... SET van mysql.
ik heb zo'n zes verschillende items die gewijzigd kunnen/mogen worden. Wanneer ik ze een voor een in een sql opdracht steek (dan is slechts een item te wijzigen), dan werkt alles perfect. Maar wanneer ik alle items in een sql-query steek, dan werkt het niet meer zoals ik zou verwachten. Ik ben dan verplicht om de eerste drie items (naam, voornaam, gebruikersnaam) altijd te wijzigen vooraleer de wijzigingen naar de database gestuurd worden. vb alleen de voornaam of naam vernaderen of het statusId lukt niet meer...
Hieronder zet ik ter verduidelijking even mijn code:
Marten schreef:
Lappen code op www.plaatscode.be
En dit is mijn formulier, als denk ik niet dat daar een fout zit...
Marten schreef:
Lappen code op www.plaatscode.be
hopelijk kan iemand mij hier op een foutje wijzen of me helpen de oplossing te vinden...
het heeft niets met je post te maken, maar wel met Marten: ik vindt het redelijk stom om alle code weg te halen, en dit gewoon te vervangen door "lappen code op www.plaatscode.be". Je had 3 betere opties gehad om dit aan te pakken:
- de SQL query laten staan, aangezien hier prolly de fout zit
- zelf de code op plaatscode.be zetten, het is uiteindelijk maar 2min werk!
- het probleem zelf oplossen, mss duurde het nog minder lang dan hierbij te zetten dat code op plaatscode.be staat.
@maarten: hoe vind ik nu mijn code terug?
Iedereen vraagt dat je bij een post je code zet om te verduidelijken. Als je dat dan doet halen ze hem hier dan weer weg... Ik kan niet meer volgen hoor sorry
Abbas - 10/08/2007 11:45 (laatste wijziging 10/08/2007 11:45)
Crew .NET
Gelijk heb je maar als er ellenlange stukken code hier op het forum geplaatst worden wordt het wat onoverzichtelijk en rommelig, daarom is er die plaatscode!
Je gaat naar plaatcode.be, je dumptje code erop en dan word je naar een andere pagina geredirect waar dan een nummer achter plaatscode.be staat. Die hele url dump je dan hier neer ipv de code die er eerst stond.
@wimmarien, dit gebeurd al zolang ik kan herinneren, waarom erger je je er nu (pas) aan dan?...
@ultimatum: omdat ik er nu pas iets van zeg... prolly was het op een verkeerd moment van de dag toen ik alles lag (en met momenten erger ik mij harder aan dingen dan andere momenten);
anyway, ontopic:
mysql_real_escape_string($naam,$_SESSION["connectie"])
deze dingen, volgens mij zit er ergens een foutje in je sessie "connectie". Aangezien de 2de parameter niet verplicht is kan je best een probere deze leeg te maken; dan krijg je zoiets:
r89-95:
@wimmarien:
ik heb deze parameter erbij gezet om dat, volgens bepaalde mensen, beter was. Hierdoor zou nog beter ge-escaped worden. Er zou gekeken worden naar de database of connectie...
Nuja als het hierdoor zou kunnen verkeerd gaan, zal ik zeker eens proberen hoe het gaat met de "connectie" sessie weg...
Ik probeer dit deze avond of middag wel eens en laat jullie zeker iets horen...
Als wij voor elke lap code dit om moeten zetten naar plaatscode hebben we een dagtaak erbij. Misschien had ik wel kunnen doen wat jij zei Wim maar net wat ik zeg. Dan hebben we een dagtaak erbij. En nu weet de TS dat hij het niet meer moet doen
@wimmarien:
ik heb het nu ook gedaan zoals je zei, zonder die session connectie, maar het blijft gelijk. De fout blijft nog altijd. Ik moet dus nog steeds een naam, voornaam en gebruikersnaam wijzigen vooraleer mijn wijzigingen effect hebben in mijn database...
Mijn sql-query wordt niet uitgevoerd, want als ik deze echo, krijg ik niets op het scherm te zien... Wanneer een update wel lukt krijg ik mijn echo wel te zien op het scherm
je controleert eerst of $fout leeg is, want anders wil je het niet toevoegen omdat er een fout is (wat normaal is).
Maar als er een fout is, zal er niets gebeuren, ook geen foutmelding oid. De code hierboven zorgt dat deze foutmelding er wel zal komen.
Eerst controleer ik met bovenstaande code of het een array is, aangezien je met $fout["update"] zit (wat een array is), ben ik niet zeker of het eenmalig zo gebruikt wordt of dat je echt overal met een array werkt, daarom deze kleine (overbodige -wegens luiheid-) controle.