[PHP] Updaten bij 1 veld wil niet?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
Hallow mensen,
Ik ben niet echt supergoed in PHP maar ik ben voor me stage een beetje aan het leren.
Nu heb ik een simpel Update script gemaakt, maar hij werkt bij allemaal maar bij 1 veld niet.
Ik heb al gezocht op internet, maar daar staat precies hetzelfde, ik vat er echt helemaal niets van.
Me gegevens krijgen automatisch een ID, de parameter is dan ook
PHP:
1
index.php?MapAdjust=wijzigen&ID=".$row['ID']."

Dit werkt allemaal. Maar zodra je wil updaten gaat hij niet.
Mijn HTML code is als volgt:
code:
1
2
3
<tr>
<td bgcolor="#d3dce3" width="15%"><b>MapNR:</b></td><td bgcolor="#dddddd" colspan ="5"><INPUT TYPE='TEXT' MAXLENGTH='10' SIZE='13' NAME='MapNR' VALUE="<?=$FetchMappen["MapNR"]?>"></td>
</tr>

Ik heb daaronder een submit knop genaamd:
code:
1
<input type="submit" value="Wijzigen" name="MapAdjust">

Zodra je hier op drukt gaat hij naar actios.php waar deze regel in staat:
PHP:
1
2
3
4
5
6
include "include.php";
    if ($MapAdjust == "Wijzigen")
        {
            $UpdateMap = "UPDATE MapProject SET MapNR = '".$MapNR."', MapCatID = '".$MapCatID."', Soort = '".$Soort."', Bedrijf = '".$Bedrijf."', Product = '".$Product."', WHERE ID = '".$ID."'";
            mysql_query($UpdateMap, $db) or die(mysql_error());     
        }

Bij elk veld doet hij het, dus bij MapCatID, Soort, Bedrijf en Product maar behalve bij MapNR.
Kan iemand mij vertellen wat hier fout gaat? :/

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

ID-College schreef op vrijdag 15 april 2005 @ 10:29:
Kan iemand mij vertellen wat hier fout gaat? :/
Kan jij ons dan eerst vertellen wat er niet goed gaat? Krijg je een error, witte pagina, ..? :)

// Edit

Waar komen al je variabelen vandaan eigenlijk? Als ik zo naar je script kijk gebruik je globals, niet echt aan te raden. Plus dat het erg verstandig is altijd de input van gebruikers eerst te controleren.

[ Voor 31% gewijzigd door OkkE op 15-04-2005 10:33 ]

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
probeer ten eerste eens die quotes om die MapNR in je sql weg te halen. (als het een int is tenminste)

Wat ook wel eens wil helpen is de sql ff in een var te dumpen en dan te kijken watvoor regeltje er dan uitkomt als alles is in gevult

[ Voor 41% gewijzigd door cybermans op 15-04-2005 10:35 ]

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
OkkE schreef op vrijdag 15 april 2005 @ 10:31:
[...]

Kan jij ons dan eerst vertellen wat er niet goed gaat? Krijg je een error, witte pagina, ..? :)
Nou hij geeft gewoon een leeg schermm (wat logisch is, dat hij werkt, geen error) en daan heb gaat hij weer naar de index met
code:
1
<META http-equiv="refresh" content="1;URL=/<?=$foname?>">

Maar dan is de waarde niet gewijzigd en blijft gewoon bij het oude.

En @Okke
Het is voor intern voor me stage, en het komt niet het WWW op, maar gewoon via LAN :)

[ Voor 14% gewijzigd door ID-College op 15-04-2005 10:34 ]


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Je moet wel een hidden field in je form plaatsen waar die $row['id'] instaat, want ze gaan niet magisch mee naar de submit pagina.

Doe ook eens print_r($_POST), dan kan je zien wat er allemaal mee gestuurd wordt.

Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
Megamind schreef op vrijdag 15 april 2005 @ 10:38:
Je moet wel een hidden field in je form plaatsen waar die $row['id'] instaat, want ze gaan niet magisch mee naar de submit pagina.

Doe ook eens print_r($_POST), dan kan je zien wat er allemaal mee gestuurd wordt.
Klopt ik heb ook
code:
1
<input type="hidden" value="<?=$ID?>" name='ID'>
staan, maar dat maakt niet ut. ik zal ff kijken wat er meegestuurd wordt.
Dit is me output
code:
1
You have an error in your SQL syntax near 'WHERE ID = '1'' at line 1

[ Voor 16% gewijzigd door ID-College op 15-04-2005 10:45 ]


Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
Ok mensen ik heb het probleem al gevonden.
Bedankt, door de output ben ik er gekomen. Me Query zag er zo uit.
PHP:
1
$UpdateMap = "UPDATE MapProject SET MapNR = '".$MapNR."', MapCatID = '".$MapCatID."', Soort = '".$Soort."', Bedrijf = '".$Bedrijf."', Product = '".$Product."', WHERE ID = '".$ID."'";

Let vooral op die komma na $product en voor WHERE. Dat was de boosdoener :/

[ Voor 22% gewijzigd door ID-College op 15-04-2005 10:50 ]


Acties:
  • 0 Henk 'm!

  • Mysteryman
  • Registratie: Februari 2001
  • Laatst online: 11:44

Mysteryman

kan jij wat ik kan...

hier stond een e.v.t. oplossing

[ Voor 93% gewijzigd door Mysteryman op 15-04-2005 10:53 ]

Everybody happy??? I soon change that here we go...


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

ID-College schreef op vrijdag 15 april 2005 @ 10:33:
[...]

Nou hij geeft gewoon een leeg schermm (wat logisch is, dat hij werkt, geen error) en daan heb gaat hij weer naar de index met
code:
1
<META http-equiv="refresh" content="1;URL=/<?=$foname?>">

Maar dan is de waarde niet gewijzigd en blijft gewoon bij het oude.

En @Okke
Het is voor intern voor me stage, en het komt niet het WWW op, maar gewoon via LAN :)
Ik zou trouwens de redirect gewoon ook met php doen (header("Location: $sUrl )). Maar print de query eens op het scherm, misschien dat je dan het probleem gelijk ziet. En, zoals al gezegd, als het een int (getal) is, dan hoeven er geen aanhalingstekens om.

Dat het voor intern gebruik is maakt trouwens vrij weinig uit. Het is niet zozeer dat mensen expres alles willen verzieken, maar het kan goed dat een gebruiker per ongeluk ergens een verkeerd teken invult en je script geeft een error. Niet erg netjes. Plus dat je het beter gelijk goed kan aanleren en er een gewoonte van kan maken. :)

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
OkkE schreef op vrijdag 15 april 2005 @ 10:53:
[...]

Ik zou trouwens de redirect gewoon ook met php doen (header("Location: $sUrl )). Maar print de query eens op het scherm, misschien dat je dan het probleem gelijk ziet. En, zoals al gezegd, als het een int (getal) is, dan hoeven er geen aanhalingstekens om.

Dat het voor intern gebruik is maakt trouwens vrij weinig uit. Het is niet zozeer dat mensen expres alles willen verzieken, maar het kan goed dat een gebruiker per ongeluk ergens een verkeerd teken invult en je script geeft een error. Niet erg netjes. Plus dat je het beter gelijk goed kan aanleren en er een gewoonte van kan maken. :)
Ja idd, maar er maakt een geavanceerd gebruiker van het systeem. Ik zat er ook al aan te denken, maar ik ben net begonnen en weet nog niet zo heel veel ervan af, ik ben hier op me stage om dat te leren. Ik zal er eens naar kijken, en die meta http-equiv van HTML was ook gaar, maar ik wist niet hoe het beter moest :P

Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

PHP:
1
2
header( "Location: index.php" );
exit;

Daarmee stuur je de gebruiker via php door. Let er wel op dat je geen html en/of spaties (of php-errors) voor je Header hebt staan. Anders werkt het niet.

Enne, zoals ik zei: het gaat er - in mijn ogen - niet om hoe veel de gebruiker er vanaf weet. Het gaat er om dat het systeem niet gelijk op zijn gat ligt als er (per ongeluk) een foute waarde is ingevuld.

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.


Acties:
  • 0 Henk 'm!

  • ID-College
  • Registratie: November 2003
  • Laatst online: 15:55
OkkE schreef op vrijdag 15 april 2005 @ 11:10:
PHP:
1
2
header( "Location: index.php" );
exit;

Daarmee stuur je de gebruiker via php door. Let er wel op dat je geen html en/of spaties (of php-errors) voor je Header hebt staan. Anders werkt het niet.

Enne, zoals ik zei: het gaat er - in mijn ogen - niet om hoe veel de gebruiker er vanaf weet. Het gaat er om dat het systeem niet gelijk op zijn gat ligt als er (per ongeluk) een foute waarde is ingevuld.
Nee oke, maar ik ben nog niet klaar en dat komt wel, volgende week is er iemand die er wat meer vanaf weet en dan kijken we er even naar :)
Toch bedankt voor je reacties :D
Pagina: 1