Checkboxes in regels naar DB en via array weer terug
Dit werkt prima, maar logisch is dat hij nu altijd eindigt met een \n.
Code (php)
Met het volgende script roep ik hem weer uit de database.
Zoals je ziet eindigt deze op een komma.
De bedoeling is dat ik dit krijg:
Quote:
ABS, Airbag, Airco, Alarm, Automaat, Boordcomputer, Centr. vergrendeling.
Maar het is logisch dat ik nu dit krijg:
Quote:
ABS, Airbag, Airco, Alarm, Automaat, Boordcomputer, Centr. vergrendeling, ,
Het gaat om het komma-gebruik op het einde, kan iemand mij vertellen of hier een oplossing voor is?
- Kan ik de laatste checkbox zonder een \n naar de database sturen?
- Kan ik de laatste record uit een array niet laten echoën?
- Andere oplossing?
Grt. Sven
Gewijzigd op 17/04/2012 19:04:28 door Sven de Haas
Elk aangevinkt checkboxje heeft zo z'n eigen betekenis, wel dan niet gecategoriseerd.
Dus je zult eerder iets krijg als:
checkboxvalues:
cat omschrijving checkbox_id
1 ABS 1
1 AirBag 2
2 Automaat 1
en dan krijg je iets als
Code (php)
1
2
3
2
3
<input name="veiligheid[1][1]" type="checkbox" />
<input name="veiligheid[1][2]" type="checkbox" />
<input name="versnelling[2][1]" type="checkbox" />
<input name="veiligheid[1][2]" type="checkbox" />
<input name="versnelling[2][1]" type="checkbox" />
En dan kan je de index keys gebruiken om het verder op correcte wijzen aan iets te koppelen en alsdanig in een tabel op te slaan.
Met andere woorden, werk eerst goed uit wat je wilt alvorens je blind gaat coderen.
1 van de eerste zaken waarin jij je dient te verdiepen is database normalisatie.
Gewijzigd op 17/04/2012 19:17:36 door Noppes Homeland
Maar de fundamentele vraag die je stelt is op zich wel handig om te beantwoorden. de vraag hoe je alle elementen van een array aan elkaar krijgt met een vast string ertussen, maar niet erachter. Het antwoord is simpeler dan de vraag.... met implode.
Voorbeeld:
Code (php)
Dit geeft als output: '1,2,3,4,5,6'
Dus geen komma achter de laatste.
Heb je nu wel een hele rij waardes, maar niet in een array (of je wilt een array filteren alvorens de string te maken), dan is het verstandig om er eerst een array van te maken, zodat je hetzelfde kan gebruiken:
Code (php)
In beide voorbeelden werkt het veel en veel makkelijker dan de komma achter de laatste weg te halen middels string functies.
Bedankt voor je informatie.
Hoe nu de database staat gevuld was eigenlijk precies mijn bedoeling.
Er zullen vast wel nadelen aan zitten, maar ik ben nog niet zodanig gevorderd met php dat ik hier hinder van zal ondervinden.
Erwin,
Bedankt voor je tekst en uitleg, ik heb hier wat aan! Nu heb ik hem precies zoals ik wou.
Code (php)
Bij de explode heb ik een -1 erachter gezet, nu is de lege regel op het einde ook weg.
Bedankt voor de moeite.
Sven Eu op 17/04/2012 20:12:04:
Noppes,
Bedankt voor je informatie.
Hoe nu de database staat gevuld was eigenlijk precies mijn bedoeling.
Er zullen vast wel nadelen aan zitten, maar ik ben nog niet zodanig gevorderd met php dat ik hier hinder van zal ondervinden.
Bedankt voor je informatie.
Hoe nu de database staat gevuld was eigenlijk precies mijn bedoeling.
Er zullen vast wel nadelen aan zitten, maar ik ben nog niet zodanig gevorderd met php dat ik hier hinder van zal ondervinden.
Misschien beetje offtopic.
Persoonlijk vind ik dit een foute denkwijze.
Waarom?
Stel je bent nu nog niet zo ver in het php en mysql gebeuren.
Over 1,5 jaar ben je dit misschien wel en bedenk je een leuke optie er bij voor het geen je wilt en hier boven beschrijft. Dus je gaat dan type en type en schrijven en coderen enz... vervolgens kom je er achter dat het niet lukt wat je wilt.
Waarom lukt het niet?
Het lukt niet, omdat je 1,5 jaar eerder een denk fout hebt gemaakt bij het aanmaken van de database en zoals noppers zij geen genormaliseerde database hebt.
Dus je zou alles moeten her-schrijven en alle record in je database moeten her-type in je database. Dit kost je meer werk dan nu als vast te kijken naar normalisatie van je database.
Dit is gewoon maar even een tip.
Tevens een tip waar ik nu zelf mee te maken heb omdat ik 1,5 jaar geleden zo strond eigenwijs was om niet te luisteren. Dit weer omdat ik dacht toch niet veel meer te willen doen met het systeem. En nu mag ik op de blaren zitten met een database met meer dan 50,000 rows die allemaal opnieuw ingevoerd moet worden ivm niks over een komt met de oude situatie.