Meerdere checkboxes in database zetten

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ibrahim A

Ibrahim A

16/06/2012 20:01:13
Quote Anchor link
Beste coders,

In mijn admin paneel kan je items toevoegen aan meerdere categoriën.
Deze categoriën moeten zo in de database worden opgeslagen:
0 = niet in categorie
1 = in de categorie
met als kolom naam de categorie.

Hoe kan ik dit via een sumbit button in database zetten? (de 1 / 0 moeten in de database komen..)
Ik heb het internet al rond gezocht en had iets gevonden met array's.. ik snap er echter helemaal niks van!

Misschien dat iemand mij hier kan helpen?
Alvast bedankt!

Mvg,
Ibrahim A.


HTML code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<form method="post" action="">
    <input id="babes" type="checkbox" name="babes"/>Babes
    <input id="cartoon" type="checkbox" name="cartoon"/>Cartoon
    <input id="celebrities" type="checkbox" name="celebrities"/>Celebrities
    <input id="dudes" type="checkbox" name="dudes"/>Dudes
    <input id="funny" type="checkbox" name="funny"/>Funny
    <input id="logos" type="checkbox" name="logos"/>Logos
    <input id="love" type="checkbox" name="love"/>Love
    <input id="people" id="" type="checkbox" name="people"/>People

    <input type="submit" class="button" name="add" value="Add" />
</form>
 
PHP hulp

PHP hulp

28/03/2024 12:36:55
 
Joren de Wit

Joren de Wit

16/06/2012 20:05:40
Quote Anchor link
Aangezien je meerdere categorieën aan meedere items wilt koppelen, heb je te maken met een veel-op-veel relatie. In de database los je dit op door middel van een koppeltabel waarin je een categorie aan een item koppelt:

items
-----
id
omschrijving

categorieen
--------
id
categorie

item_categorie
-------------
id
item_id
categorie_id

In PHP is het nu een kwestie van uitlezen welke categorieën aangevinkt zijn en een nieuwe regel wegschrijven in de item_categorie tabel met de juiste id's (die je weer uit je formulier kunt halen). Tip: bouw je formulier dus ook op met de gegevens uit de database, dan heb je daar direct de juiste id's in staan.
 
Ibrahim A

Ibrahim A

16/06/2012 20:20:21
Quote Anchor link
@Joren de Wit

Bedankt voor uw reactie,
dit is volgens mij niet het probleem, ik heb dit nu in mijn database:

items
------
id
omschrijving
Babes
Cartoon
Celebrities
Dudes
Funny
Logos
Love
People

Het is de bedoeling dat een item meerdere categoriën kan hebben. maar de item blijft unique.
Later kan ik het per categorie ophalen door $query = mysql_query(.... WHERE people = 1).

Het probleem is nu:
Ik weet niet hoe ik via PHP kan zien of de checkboxen checked zijn of niet, en hoe ik ze een 1 en een 0 kan geven.
Gewijzigd op 16/06/2012 20:20:52 door Ibrahim A
 
Wouter J

Wouter J

16/06/2012 20:27:29
Quote Anchor link
Ibrahim, dan wordt het tijd om eens wat te doen aan normalisatie. Want met deze manier van een DB kun je niks beginnen, je zal het echt moeten doen op de manier van Joren, met een tabel items en een tabel categorien en 1 koppeltabel om die bij elkaar te voegen.

Wat leesvoer: De 3 Normalisatie regels en een makkelijkere manier van Normaliseren
 
Ibrahim A

Ibrahim A

16/06/2012 20:44:23
Quote Anchor link
Hmm.. volgends mij begrijpen jullie het nog niet goed of ik heb het niet goed uitgelegd.

Het gaat om een image database

een image kan meerdere catagorien hebben. (bijvoorbeeld Funny en Cartoon)
Dan komt er testaan in de database bij funny en cartoon '1' waar image_name = X.

Verder komt er op de site een index met de plaatjes, en bovenaan kan je filteren op de categoriën(maximaal 1 categorie tegelijk selecteren!). Dus als bijvoorbeeld de categorie Cartoon word aangeklikt, dat er onderandere image X word weergegeven.

Ik denk dat dit mijn het database wat ik nu heb dit prima uit te maken is (correct me if I'm wrong).

En graag wil ik nogsteeds weten hoe ik via php een checked checkbox in database de waarde 1 kan geven en een unchecked checkbox de waarde 0.
 
Obelix Idefix

Obelix Idefix

16/06/2012 21:11:23
Quote Anchor link
Ibrahim A op 16/06/2012 20:44:23:
Ik denk dat dit mijn het database wat ik nu heb dit prima uit te maken is (correct me if I'm wrong).

Dat doen ze volgens mij ;-)

Ibrahim A op 16/06/2012 20:44:23:
En graag wil ik nogsteeds weten hoe ik via php een checked checkbox in database de waarde 1 kan geven en een unchecked checkbox de waarde 0.

1e hit op Google: Kijk eens op http://www.html-form-guide.com/php-form/php-form-checkbox.html
 
Ibrahim A

Ibrahim A

16/06/2012 21:25:00
Quote Anchor link
@Obelix,
En hoe krijg ik ze dan in database met een 1 en een 0?

Of anders:
Wat is de PHP regel als ik wil checken of een checkbox checked is? (Dan kom ik er zelf wel uit(: )

Dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
If $_POST['checkbox1'] = checked {
  //add "1" to database
}

Wat hier boven staan om deze code te laten werken?
 
Obelix Idefix

Obelix Idefix

16/06/2012 21:34:53
Quote Anchor link
Hoeveel kennis van php heb je?
 
Ibrahim A

Ibrahim A

16/06/2012 22:02:36
Quote Anchor link
Obelix en Idefix op 16/06/2012 21:34:53:
Hoeveel kennis van php heb je?


0,5
 
Obelix Idefix

Obelix Idefix

16/06/2012 22:19:40
Quote Anchor link
En met (my)sql?Zaken als insert, update, delete van een query zijn basic.

Misschien tijd om je kennis dan (eerst) uit te gaan breiden? Zonder (basis)kennis is het vragen om problemen; onvoldoende controle op invoer, query's die onbeveiligd zijn, etc.
 
Ibrahim A

Ibrahim A

16/06/2012 22:37:25
Quote Anchor link
Obelix en Idefix op 16/06/2012 22:19:40:
En met (my)sql?Zaken als insert, update, delete van een query zijn basic.

Misschien tijd om je kennis dan (eerst) uit te gaan breiden? Zonder (basis)kennis is het vragen om problemen; onvoldoende controle op invoer, query's die onbeveiligd zijn, etc.



Ik heb als webdesigner veel designs in dure scripts geïmplanteerd. Deze scripts heb ik aandachtig bekeken, en heb deze als voorbeeld gebruikt. Tevens levert google / stackoverflow ook veel op.
In het verleden had ik veel vrienden die hack(t)en, ik kan uiteraard aan een van deze vrienden vragen of ze binnen mijn systeem kunnen komen.
Heel bang ben ik dus niet voor hackers...

Maar kunt u misschien mijn vraag beantwoorden? Scheelt ons een hoop tijd! (:
 
Obelix Idefix

Obelix Idefix

16/06/2012 22:45:38
Quote Anchor link
Kijk eens naar insert-query.
Gewijzigd op 16/06/2012 22:46:34 door Obelix Idefix
 
Ibrahim A

Ibrahim A

16/06/2012 22:54:44
Quote Anchor link
Obelix en Idefix op 16/06/2012 22:45:38:
Kijk eens naar insert-query.


ik snap query..

Maar wat is de code om te bekijken of een checkbox checked is of niet??
 
- SanThe -

- SanThe -

16/06/2012 22:57:01
Quote Anchor link
isset($_POST['...'])
 
Ibrahim A

Ibrahim A

16/06/2012 23:22:28
Quote Anchor link
- SanThe - op 16/06/2012 22:57:01:
isset($_POST['...'])


DANKJE! ;D
 
Roel -

Roel -

17/06/2012 00:33:22
Quote Anchor link
Maar hiermee is je databaseprobleem nog niet opgelost. Nu 'werkt' het nog, maar als je meerdere categorieën wilt hebben, dan ben je de sjaak.
 
Obelix Idefix

Obelix Idefix

17/06/2012 09:12:48
Quote Anchor link
Ibrahim A op 16/06/2012 22:54:44:
Maar wat is de code om te bekijken of een checkbox checked is of niet??


Je hebt kennelijk niet de moeite genomen om iets met onderstaande te doen?

Obelix en Idefix op 16/06/2012 21:11:23:
 
B Polak

B Polak

17/06/2012 09:52:43
Quote Anchor link
Correctie op eerder genoemde PHP code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

If (isset($_POST['cartoon'])) {
  //actie
}

?>


Je moet de naam van de checkbox invullen. Niet de type.

isset = wanneer ingevuld
!isset = wanneer niet ingevuld
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

17/06/2012 10:47:32
Quote Anchor link
Ibrahim A op 16/06/2012 20:44:23:
Ik denk dat dit mijn het database wat ik nu heb dit prima uit te maken is (correct me if I'm wrong).

Op het moment dat jij een categorie wilt toevoegen of verwijderen, moet je de structuur van de tabel aanpassen, dat is iets wat je altijd moet zien te vermijden als je uit de testfase bent.
 
Ibrahim A

Ibrahim A

17/06/2012 13:14:01
Quote Anchor link
Surf Secure op 17/06/2012 09:52:43:
isset = wanneer ingevuld
!isset = wanneer niet ingevuld


Dit wist ik nog niet, begreep ook nooit wat het verschil was.. Bedankt!
 



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.