hoe verwerk ik de waarde van 2 kolommen uit listbox naar mysql?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer / Overheid / Complexiteit

Functieomschrijving Wil jij als Java Developer een bijdrage leveren aan een veiliger Nederland en je als Java Developer bezig houden met zeer complexe bedrijfskritische applicaties? Lees dan snel verder! Doorontwikkelen bedrijfskritische applicaties; Aanpassingen maken in de bestaande applicatie; Vertalen van jouw visie op continuous integration en continuous delivery; Debuggen van de applicatie; In gesprek gaan met eindgebruikers om verbetervoorstellen op te halen. Functie-eisen Minimaal HBO-werk en denkniveau; Minimaal 5 jaar werkervaring als Java Developer; Je bent minimaal OCP-Java SE 6 gercertificeerd; Je hebt kennis van Webservices en Continuous Integration; Je bent analytisch sterk en zowel klant- als resultaatgericht. Bedrijfsomschrijving Binnen

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Technisch Ontwerper / Applicatie Ontwikkelaar

Technisch Ontwerper / Applicatie Ontwikkelaar Actief Wat ga je doen? Als Technisch Ontwerper / Applicatie Ontwikkelaar kom je te werken bij onze gerenommeerde klanten op projecten of opdrachten van omvang en formaat. Je bent verantwoordelijk voor het omzetten van functionele specificaties naar een technisch ontwerp, het ontwerp van programmaspecificaties voor toepassingen, de realisatie van (gewijzigde) programmaonderdelen en databestanden van toepassingen en de technische systeemtest van applicatietoepassingen. Daarnaast geef je vorm aan webpagina’s en applicaties, stel je gebruikersdocumentatie op en verleen je ondersteuning bij het oplossen van productiefouten. Tevens ben je verantwoordelijk voor het samenstellen en onderhouden van de applicatie c.q.

Bekijk vacature »

Gerrit broekhuis

gerrit broekhuis

25/01/2012 15:05:29
Quote Anchor link
Hallo,

Ik heb een PHP pagina, die de inhoud van 2 velden ("id" en "name") uit de tabel "persons" naast elkaar weergeeft in een listbox. Verder heeft de pagina een select commando, die de keuze doorgeeft aan mijn PHP verwerkingspagina, die mijn keuze in een MySQL tabel plaatst.

Dit is mijn code voor het maken van de listbox:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
...
<
form method="post" action="insert_from_listbox.php">
<
select name="ccrseid">
<
option value="">Select</option>
[
code]<?php
while($getuserrow = mysql_fetch_array($result))
{

?>

<option value="<?php echo $getuserrow['id'] . " " . $getuserrow['name']; ?>"><?php echo $getuserrow['id'] . " " . $getuserrow['name']; ?></option>
<?php } ?>
</select>
<input type="submit" value="Opslaan"]>
</form>
...
?>


In insert_from_listbox.php wil ik na de connectie zowel het gekozen "id" als de "name" wegschrijven in een andere tabel. Met de volgende code schrijf ik in één keer "id" "name" weg als veldinhoud:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
...
$sql="INSERT INTO Persons (Name, ID)
 VALUES
 ('$_POST[ccrseid]','44')"
; // in plaats van 44 moet hier het id komen
?>


Ik heb al van alles geprobeerd, maar ik kan niet vinden hoe ik het "id" in het veld "ID" kan opslaan en "name" in het veld "Name". Ik voel er weinig voor om de string "ccrseid" op te splitsen, er moet een betere manier zijn.

Hoe kan ik de afzonderlijke veldnamen verwerken in mijn verwerkingsscript?

Groeten, Gerrit
Gewijzigd op 25/01/2012 19:42:56 door Gerrit broekhuis
 
PHP hulp

PHP hulp

25/09/2020 14:21:22
 
Jacco Brandt

Jacco Brandt

25/01/2012 15:19:54
Quote Anchor link
Als het veld ID auto_increment is(instelbaar dmv phpmyadmin of een alternatief) dan kun je die waarde weglaten, en word hij automatisch aangemaakt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
INSERT INTO Persons (Name) VALUES ('naam')


Let wel op dat je script op dit moment vatbaar is voor sql-injectie. Je kunt dit oplossen door $_POST['ccrseid'] buiten quotes te halen en er mysql_real_escape_string() omheen te zetten.
 
Gerrit broekhuis

gerrit broekhuis

25/01/2012 19:42:15
Quote Anchor link
Het veld ID is geen autoincremental veld en moet ik dus zelf met een geldige waarde vullen.

Iemand een idee hoe?

Groeten, Gerrit
 
Jaron T

Jaron T

25/01/2012 20:29:12
Quote Anchor link
Gerrit broekhuis op 25/01/2012 19:42:15:
Het veld ID is geen autoincremental veld en moet ik dus zelf met een geldige waarde vullen.

Iemand een idee hoe?

Groeten, Gerrit


misschien een idee om hem even wel op auto increment te zetten?.. dan is de waarde ook meteen uniek.
 
Gerrit broekhuis

gerrit broekhuis

25/01/2012 21:29:52
Quote Anchor link
Er is al een ander autoincrement veld. Ik moet het veld "id" en eventuele andere velden echt zelf kunnen vullen met de waardes van de velden uit een ander record.

Groeten, Gerrit
 
- Jim  -

- Jim -

25/01/2012 21:43:29
Quote Anchor link
Gerrit,

Ik denk dat je iets anders moet doen. In je code staat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<option value="<?php echo $getuserrow['id'] . " " . $getuserrow['name']; ?>"><?php echo $getuserrow['id'] . " " . $getuserrow['name']; ?></option>


Je zet hierbij de (user-)id en de (user-)name als waarde van de select-list.
Alleen de (user-)id zou voldoende zijn.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<option value="<?php echo $getuserrow['id']; ?>"><?php echo $getuserrow['name']; ?></option>

Je kan dan in je tabel alleen de (user-)id opslaan.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
$sql
="
INSERT INTO
    Persons
(
    `ID`
) VALUES (
    "
.intval($_POST[ccrseid])."
)"
;
?>


Als je deze later wilt ophalen met de username kan je dat eenvoudig moet een join doen.
Gewijzigd op 25/01/2012 21:47:22 door - Jim -
 
Gerrit broekhuis

gerrit broekhuis

25/01/2012 21:54:10
Quote Anchor link
Jim,

Zo heb ik het nu ook werkend gemaakt (opvragen in het verwerkingsscript, via nieuwe query op "id" m.b.v. substr van $_POST[ccrseid], maar in de listbox moet ik de velden "id" en "name" in dit voorbeeld beide kunnen zien om in de listbox de juiste keuze te maken. Aan alleen "id" of "name" heeft de gebruiker van de pagina niets.

Het werkt dus wel zo, maar het lijkt me dat het eenvoudiger moet kunnen.

Dank voor het meedenken, Gerrit
 
- Jim  -

- Jim -

25/01/2012 21:59:58
Quote Anchor link
Wat je zou kunnen helpen:
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
Gewijzigd op 25/01/2012 22:03:24 door - Jim -
 
- SanThe -

- SanThe -

25/01/2012 22:17:31
Quote Anchor link
Gerrit broekhuis op 25/01/2012 15:05:29:
Ik voel er weinig voor om de string "ccrseid" op te splitsen,


Waarom niet?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<option value="<?php echo $getuserrow['id'] . '||' . $getuserrow['name']; ?>">


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
list($id, $name) = explode('||', $_POST['ccrseid']);
echo $id . '<br />' . $name;
?>
 
Gerrit broekhuis

gerrit broekhuis

26/01/2012 14:00:47
Quote Anchor link
SanThe, dit werkt inderdaad goed. Via de variabelen kan ik in mijn php verwerkingspagina altijd nog weer een query uitvoeren en zo eventuele andere velden erbij pakken.

Super!

Gerrit
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.