login  Naam:   Wachtwoord: 
Registreer je!
 Forum

updaten gegevens via formulier

Offline Dierre - 09/08/2007 19:30 (laatste wijziging 10/08/2007 10:29)
Avatar van DierreMySQL interesse 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...

tia
Dierre

18 antwoorden

Gesponsorde links
Offline Wim - 10/08/2007 10:53
Avatar van Wim Crew algemeen 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.

Anyway, over de query, correcte syntax is bvb:
  1. UPDATE TABLE SET field1='newvalue', field2='newvalue', field5='newvalue', field4'newvalue' WHERE FIELD='value'
Offline Dierre - 10/08/2007 11:40
Avatar van Dierre MySQL interesse @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
Offline Abbas - 10/08/2007 11:45 (laatste wijziging 10/08/2007 11:45)
Avatar van Abbas Gouden medaille

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
Offline Dierre - 10/08/2007 11:49
Avatar van Dierre MySQL interesse ah, en hoe kan ik dan nu mijn code terugvinden op plaatscode?
Offline Abbas - 10/08/2007 11:52
Avatar van Abbas Gouden medaille

Crew .NET
Ik denk dat je je code terug zult moeten posten, want ik vind ze niet op plaatscode. Zet ze er dan nu even op... 
Offline Dierre - 10/08/2007 11:59
Avatar van Dierre MySQL interesse hier op het forum of op plaatscode? ben nu wel nog op mijn werk, zal voor deze avond zijn dat ik mijn code maar zal kunnen posten...
Offline Abbas - 10/08/2007 12:34
Avatar van Abbas Gouden medaille

Crew .NET
Op plaatscode natuurlijk! 
Offline Dierre - 12/08/2007 12:09 (laatste wijziging 12/08/2007 12:13)
Avatar van Dierre MySQL interesse natuurlijk op plaatscode ;)
Heb net ook een waarschuwing gekregen dus moet een beetje opletten hé ;)

dat is de link:
http://www.plaatscode.be/6262/
Offline vinTage - 12/08/2007 12:12 (laatste wijziging 12/08/2007 12:12)
Avatar van vinTage Nieuw lid Je word na het posten op plaatscode geredirect, de url van die redirect plaats je gewoon hier...
Offline Dierre - 12/08/2007 12:13
Avatar van Dierre MySQL interesse voila is gebeurd...

zag het als ik de code plaatste vinTage maar toch bedankt...
Offline Ultimatum - 12/08/2007 12:17
Avatar van Ultimatum PHP expert 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?...
Offline Wim - 12/08/2007 18:33
Avatar van Wim Crew algemeen @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:
  1. #
  2. $sqlUpdate = "UPDATE leden SET naam = '".mysql_real_escape_string($naam)."',
  3. #
  4. voornaam = '".mysql_real_escape_string($voornaam)."',
  5. #
  6. gebruikersnaam = '".mysql_real_escape_string($gebruikersnaam)."',
  7. #
  8. email = '".mysql_real_escape_string($email)."',
  9. #
  10. rechtId = '".mysql_real_escape_string($rechtId)."',
  11. #
  12. statusId = '".mysql_real_escape_string($statusId)."'
  13. #
  14. WHERE id = '".mysql_real_escape_string($id)."'";
Offline Dierre - 13/08/2007 08:15
Avatar van Dierre MySQL interesse zal ik eens proberen.

@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...
Offline marten - 13/08/2007 09:00
Avatar van marten Beheerder 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 
Offline Dierre - 13/08/2007 17:57 (laatste wijziging 13/08/2007 17:59)
Avatar van Dierre MySQL interesse @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

mijn sql-query ziet er nu als volgt uit:
  1. $sqlUpdate = "UPDATE leden SET naam = '".mysql_real_escape_string($naam)."',
  2. voornaam = '".mysql_real_escape_string($voornaam)."',
  3. gebruikersnaam = '".mysql_real_escape_string($gebruikersnaam)."',
  4. email = '".mysql_real_escape_string($email)."',
  5. rechtId = '".mysql_real_escape_string($rechtId)."',
  6. statusId = '".mysql_real_escape_string($statusId)."'
  7. WHERE id = '".mysql_real_escape_string($id)."'";
  8. mysql_query($sqlUpdate) or die(mysql_error());
Offline Wim - 13/08/2007 19:03 (laatste wijziging 13/08/2007 19:06)
Avatar van Wim Crew algemeen r87: if(empty($fout))

maar een else staat er niet bij. Zet tussen lijn 101 en 102 eens:
  1. else{
  2. if(is_array($fout)) print_r($fout);
  3. else echo $fout;
  4. }


//edit:
waarom geef je je ID via post-waardes mee en niet via GET-waardes?
Offline Dierre - 13/08/2007 19:29
Avatar van Dierre MySQL interesse van het ID via post, zal een foutje zijn. De macht der gewoonte denk ik  

in je code toevoeging van hierboven, wat doet dit juist en waarvoor is het nodig?
Offline Wim - 13/08/2007 19:37
Avatar van Wim Crew algemeen 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.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.219s