[PHP/MySQL]Invoegen in database breekt af na spatie

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Beste Tweakers,

Ik heb een HTML-Formulier waarop gegevens ingevuld kunnen worden. Op dit formulier heb ik een pulldown-menu waar de gegevens uit een andere tabel in worden weergegeven. Men kan dit selecteren en als dan op submit gedrukt wordt, worden de gegevens naar de database gezonden. Deze slaat alle gegevens netjes op, alleen ik zit met een klein probleempje en kom er maar niet uit. Ik heb hier op GoT al rond gezocht en op php.net. Zoals ik al zei komen alle gegevens netjes in de database behalve datgene wat geselecteerd is in het pulldown-menu. Datgene wat namelijk geselecteerd is komt verkeerd in de database. Hij kapt namelijk op een spatie af en dat deel achter de spatie wordt niet in de database gezet.

Nu heb ik rond gezocht en kwam ik de functie urlencode, urldecode, rawurlencode en rawurldecode tegen. Hieronder even gauw de resultaten daarvan :

urlencode: blaat+bedrijf
urldecode: blaat
rawurlencode: blaat%20bedrijf
rawurldecode: blaat

Zo komt bijv. blaat bedrijf in de database te staan als blaat+bedrijf of blaat%20bedrijf.
Nu zijn volgens mij ook de boven beschreven functies voor wanneer men meestuurt in de url maar ik heb dit geprobeerd maar het werkt ook niet. Misschien is het niet mogelijk om blaat bedrijf in te voegen in de database ?

Dit is mijn code voor het pulldown menu:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<select name="Leverancier_1" size="1">
<?
    $query="SELECT Factuur_bedrijfsnaam, Relatie FROM relatietabel";
    $result = mysql_query($query);
      while (list($Factuur_bedrijfsnaam, $Relatie)= mysql_fetch_row($result))
      {
        if ($Relatie=='Leverancier')
        {
        echo "<option value=". $Factuur_bedrijfsnaam. ">". $Factuur_bedrijfsnaam. "</option>";
        };
       };
?>
</select>


Ik dacht zelf dat het komt door de "option value" maar misschien zit ik ook helemaal in de verkeerde richting te zoeken.
Misschien dat jullie me veder kunnen helpen of een zetje in de goede richting kunne doen..

Acties:
  • 0 Henk 'm!

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024
en wat is de code voor je insert statement?

Copy.com


Acties:
  • 0 Henk 'm!

  • BBrunekreeft
  • Registratie: Mei 2004
  • Laatst online: 22:03

BBrunekreeft

Dus...

Verwijderd schreef op donderdag 08 december 2005 @ 10:34:
Dit is mijn code voor het pulldown menu:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<select name="Leverancier_1" size="1">
<?
    $query="SELECT Factuur_bedrijfsnaam, Relatie FROM relatietabel";
    $result = mysql_query($query);
      while (list($Factuur_bedrijfsnaam, $Relatie)= mysql_fetch_row($result))
      {
        if ($Relatie=='Leverancier')
        {
        echo "<option value=". $Factuur_bedrijfsnaam. ">". $Factuur_bedrijfsnaam. "</option>";
        };
       };
?>
</select>


Ik dacht zelf dat het komt door de "option value" maar misschien zit ik ook helemaal in de verkeerde richting te zoeken.
Misschien dat jullie me veder kunnen helpen of een zetje in de goede richting kunne doen..
De value van de option moet nog tussen aanhalingstekens.
Dus zo:
PHP:
1
        echo "<option value=\"". $Factuur_bedrijfsnaam. "\">". $Factuur_bedrijfsnaam. "</option>";


Anders krijg je inderdaad dat de value van die optie alleen het eerste woord van $Factuur_bedrijfsnaam is

Acties:
  • 0 Henk 'm!

  • lier
  • Registratie: Januari 2004
  • Laatst online: 22:38

lier

MikroTik nerd

Ik neem aan dat deze lijst gevuld wordt op basis van een tabel !?
Heb je in die tabel ook een identifier staan, welke je als waarde in de tabel kan opslaan (referentietabel) ?

Eerst het probleem, dan de oplossing


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt BBrunekreeft, werkt super nu !

Eigenlijk heb ik nu nog een klein vraagje.. misschien dat jullie hier ook de oplossing voor weten:

Hoe kan ik er voor zorgen dat de waarde die in de database zit, standaard geselecteerd staat in het formulier. Het is geloof ik iets met "selected"
PHP:
1
<option value="Ja" <? if ("$Gekoppeld"=='Ja'){echo "selected";}?> >Ja</option>


Zoals hierboven maar dit krijg ik niet voor elkaar bij het andere pulldown menu. Iemand een tip ?

[ Voor 86% gewijzigd door Verwijderd op 08-12-2005 10:44 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op donderdag 08 december 2005 @ 10:42:
Bedankt BBrunekreeft, werkt super nu !

Eigenlijk heb ik nu nog een klein vraagje.. misschien dat jullie hier ook de oplossing voor weten:

Hoe kan ik er voor zorgen dat de waarde die in de database zit, standaard geselecteerd staat in het formulier. Het is geloof ik iets met "selected"
PHP:
1
<option value="Ja" <? if ("$Gekoppeld"=='Ja'){echo "selected";}?> >Ja</option>


Zoals hierboven maar dit krijg ik niet voor elkaar bij het andere pulldown menu. Iemand een tip ?
"$Gekoppeld" wordt als een string bekekeken en zal dus nooit en te nimmer als "ja" worden beschouwd. Ik denk dat hierdoor de oplossing wel simpel is.
trouwens i.p.v. selected te echoën, is het beter om selected='selected' te echoën, dat is namelijk xhtml-waardig en selected gewoon niet, alhoewel dat waarschijnlijk evengoed werkt.

Acties:
  • 0 Henk 'm!

  • BBrunekreeft
  • Registratie: Mei 2004
  • Laatst online: 22:03

BBrunekreeft

Dus...

Verwijderd schreef op donderdag 08 december 2005 @ 10:42:
Eigenlijk heb ik nu nog een klein vraagje.. misschien dat jullie hier ook de oplossing voor weten:

Hoe kan ik er voor zorgen dat de waarde die in de database zit, standaard geselecteerd staat in het formulier. Het is geloof ik iets met "selected"
PHP:
1
<option value="Ja" <? if ("$Gekoppeld"=='Ja'){echo "selected";}?> >Ja</option>


Zoals hierboven maar dit krijg ik niet voor elkaar bij het andere pulldown menu. Iemand een tip ?
Zoiets:
Zorg dat je in een variable de huidige Faktuur Bedrijfsnaam hebt.
en dan:
PHP:
1
2
echo "<option value=\"". $Factuur_bedrijfsnaam. "\"".($Factuur_bedrijfsnaam==$currentFakBedr?" selected=\"selected\":"").">". $Factuur_bedrijfsnaam. "</option>";
 

[ Voor 14% gewijzigd door BBrunekreeft op 08-12-2005 10:58 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op donderdag 08 december 2005 @ 10:52:
[...]

"$Gekoppeld" wordt als een string bekekeken en zal dus nooit en te nimmer als "ja" worden beschouwd. Ik denk dat hierdoor de oplossing wel simpel is.
trouwens i.p.v. selected te echoën, is het beter om selected='selected' te echoën, dat is namelijk xhtml-waardig en selected gewoon niet, alhoewel dat waarschijnlijk evengoed werkt.
Dit pulldown menu werkt gewoon, dit komt omdat $Gekoppeld de waarde Ja of Nee heeft. Dus dit gaat goed, maar bij het andere pulldown menu is de lijst telkens anders omdat er telkens bedrijven toegevoegd worden. Daar kan ik dus niet zeggen
PHP:
1
if ("$Factuur_bedrijfsnaam"=='$Factuur_bedrijfsnaam')
of iets dergelijks. ( ik hoop dat ik beetje duidelijk ben :9 )
Pagina: 1