Probleem met deelnemers in database zetten
Ik krijg het maar niet voor elkaar om het volgende te doen: Ik heb een invoer veld en daar kunnen mensen namen invullen maar ik krijg ze niet apart in de database, als iemand 1 naam invoerd komt die wel in de database.
Hier is mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$participants = explode('+', $_POST['participants']);
foreach ($participants as $participant)
{
$participantIdSql = $mysqli->query("SELECT * FROM `leden` WHERE `gebruikersnaam` = '" . save_string($participant) . "'");
if (!$participantIdSql)
{
getValue('error');
}
else
{
$participant = $participantIdSql->fetch_assoc();
$participant = $participant['id'];
$createNewConvoParticipantsSql = $mysqli->query("INSERT INTO `paneel_conversatie_deelnemers` (`gebruiker_id`, `conversatie_id`, `toegevoegd_op`) VALUES ('" . save_string($participant) . "', '" . $convoId . "', '" . save_string(date('H:i:s d-m-Y', time())) . "')");
if (!$createNewConvoParticipantsSql)
{
getValue('error');
}
else
{
}
}
}
foreach ($participants as $participant)
{
$participantIdSql = $mysqli->query("SELECT * FROM `leden` WHERE `gebruikersnaam` = '" . save_string($participant) . "'");
if (!$participantIdSql)
{
getValue('error');
}
else
{
$participant = $participantIdSql->fetch_assoc();
$participant = $participant['id'];
$createNewConvoParticipantsSql = $mysqli->query("INSERT INTO `paneel_conversatie_deelnemers` (`gebruiker_id`, `conversatie_id`, `toegevoegd_op`) VALUES ('" . save_string($participant) . "', '" . $convoId . "', '" . save_string(date('H:i:s d-m-Y', time())) . "')");
if (!$createNewConvoParticipantsSql)
{
getValue('error');
}
else
{
}
}
}
En het lijkt mij niet handig om $participant te overschrijven.
Gewijzigd op 15/08/2017 15:56:27 door - Ariën -
fe_string()?), wat is dit:
Kun je dat niet wat eleganter oplossen in je formulier?
Los daarvan (saKun je dat niet wat eleganter oplossen in je formulier?
save_string() is een eigen functie die ik heb aangemaakt. Maar kunnen jullie dan een voorbeeld geven hoe ik het kan verbeteren
Wat doet die functie (die overigens verkeerd geschreven is). En wat is de meerwaarde vergeleken met $mysqli->real_escape_string() ?
Is de gebruikersnaam wel uniek? Wellicht is het handiger als gebruikers/deelnemers eerst geregistreerd worden en dat je die vervolgens selecteert?
Thomas van den Heuvel op 15/08/2017 22:04:37:
Het is korter :s. Misschien is het een zelf gemaakte alias van real_escape_string()?
Zou kunnen! De topicstarter weet het beter!
Ikzelf ben geen fan van aliassen aanmaken. Elke goede IDE heeft function-recognising ingebouwd in een suggest, waardoor je met enkele toetsaanslagen, een pijlcursor en een enter de juiste functie al in je script zet.
Thomas van den Heuvel op 15/08/2017 17:53:48:
Ik denk dat hij een textarea gebruikt oid, hier vult men dan b.v. in:
Vervolgens maakt hij er denk ik een array van middels de explode.
Je kunt natuurlijk inderdaad meerdere input velden toevoegen in je formulier, of een knop voor een extra invoerveld. Echter zal dit wel compacter blijven zoals hij het nu opbouwt.
Gewijzigd op 16/08/2017 09:03:52 door - Ariën -
Quote:
Ik denk dat hij een textarea gebruikt oid
Zoveel leek mij wel duidelijk ja.
Quote:
Echter zal dit wel compacter blijven zoals hij het nu opbouwt.
Uhuh, en behoorlijk gebruikersonvriendelijk, bewerkelijk en foutgevoelig.
Ik snap wel wat TS probeert te bereiken, maar kan er niet bij dat deze zoiets op deze manier zou willen doen.
Als jij verteld zou worden dat je informatie op bovenstaande wijze zou moeten invoeren bij gebruikmaking van een systeem, wat zou je dan antwoorden? Ik zou vragen wat de maker aan het roken was op het moment dat deze deze functionaliteit schreef.
Thomas van den Heuvel op 16/08/2017 10:50:30:
Als jij verteld zou worden dat je informatie op bovenstaande wijze zou moeten invoeren bij gebruikmaking van een systeem, wat zou je dan antwoorden? Ik zou vragen wat de maker aan het roken was op het moment dat deze deze functionaliteit schreef.
Dat is uiteraard afhankelijk van de wensen. Mijn voorkeur zou het niet hebben, maar wat als topic starter het toch graag zo wilt....
Peter K op 16/08/2017 11:40:14:
maar wat als topic starter het toch graag zo wilt....
Als ontwikkelaar heb je ook een zekere verantwoordelijkheid om mensen bij te sturen wanneer deze al te exotische constructies als gangbare oplossingen (willen/blijven) gebruiken.
Geen fatsoenlijk administratief systeem zal op de bovenstaande wijze werken, noch op deze wijze op een fatsoenlijke manier blijven werken.
Blijkbaar ook de topicstarter. Als je met een groep werkt, dan is een goede workflow en het volgen van de juiste procedures en technieken zeker een must om te voorkomen dat de code onwerkbaar wordt. Een wiki met richtlijnen en wat interessante vergaderingen met elkaar zijn dan een mooi initiatief.
Maar als de topicstarter toch door willens en wetens niet overstag wilt gaan, dan is dat zijn/haar risico. Dan is het in mijn ogen zinloos om hier een heel topic aan te spenderen. (puur om als voorbeeld te noemen). De wereld kan je nooit naar je eigen hand brengen, om maar in gedachten te houden ;-)
Gewijzigd op 16/08/2017 12:05:12 door - Ariën -
Sorry, ik was het onderscheid tussen ontwikkelaar en hobby bob even uit het oog verloren.
Peter K op 16/08/2017 07:00:54:
Ik denk dat hij een textarea gebruikt oid, hier vult men dan b.v. in:
Vervolgens maakt hij er denk ik een array van middels de explode.
Je kunt natuurlijk inderdaad meerdere input velden toevoegen in je formulier, of een knop voor een extra invoerveld. Echter zal dit wel compacter blijven zoals hij het nu opbouwt.
Thomas van den Heuvel op 15/08/2017 17:53:48:
Ik denk dat hij een textarea gebruikt oid, hier vult men dan b.v. in:
Vervolgens maakt hij er denk ik een array van middels de explode.
Je kunt natuurlijk inderdaad meerdere input velden toevoegen in je formulier, of een knop voor een extra invoerveld. Echter zal dit wel compacter blijven zoals hij het nu opbouwt.
Dit klopt grotendeels alleen gebruik ik geen textarea maar een text input
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<form>
<div class="box-body no-padding">
<div class="box-body">
<div class="form-group">
<input class="form-control form-convo-o" type="text" placeholder="Titel van conversatie">
</div>
<div class="form-group">
<input class="form-control form-convo-to" type="text" placeholder="Leden van conversatie (gescheiden met een plus, zoals leet1+leet2+leet3)">
</div>
<div class="form-group">
<textarea name="form-convo-conv"></textarea>
</div>
<div class="form-group">
<div class="checkbox">
<label title="Als de conversatie gesloten is kunnen er geen reacties worden geplaatst"><input class="form-convo-closed" type="checkbox" value="1"> Gesloten conversatie</label>
</div>
</div>
</div>
<div class="box-footer">
<div class="pull-right">
<button type="submit" class="btn btn-primary form-convo-submit">
<i class="fa fa-envelope-o"></i>
Verzenden
</button>
</div>
<a href="/Workspace/Novara Bank/conversaties" class="btn btn-default">
<i class="fa fa-times"></i>
Annuleren
</a>
</div>
</div>
</form>
<div class="box-body no-padding">
<div class="box-body">
<div class="form-group">
<input class="form-control form-convo-o" type="text" placeholder="Titel van conversatie">
</div>
<div class="form-group">
<input class="form-control form-convo-to" type="text" placeholder="Leden van conversatie (gescheiden met een plus, zoals leet1+leet2+leet3)">
</div>
<div class="form-group">
<textarea name="form-convo-conv"></textarea>
</div>
<div class="form-group">
<div class="checkbox">
<label title="Als de conversatie gesloten is kunnen er geen reacties worden geplaatst"><input class="form-convo-closed" type="checkbox" value="1"> Gesloten conversatie</label>
</div>
</div>
</div>
<div class="box-footer">
<div class="pull-right">
<button type="submit" class="btn btn-primary form-convo-submit">
<i class="fa fa-envelope-o"></i>
Verzenden
</button>
</div>
<a href="/Workspace/Novara Bank/conversaties" class="btn btn-default">
<i class="fa fa-times"></i>
Annuleren
</a>
</div>
</div>
</form>
We kunnen diegene wel een paar keer waarschuwen, maar je kan diegene niks verplichten. Wij zijn immers toch niet verantwoordelijk voor zijn/haar applicatie?
Maar goed, dit verdient eigenlijk meer een eigen topic, dus laten we ons vanaf nu weer op de TS zijn probleem richten.
Gewijzigd op 16/08/2017 12:21:25 door - Ariën -
Thomas van den Heuvel op 15/08/2017 22:04:37:
Het is korter :s. Misschien is het een zelf gemaakte alias van real_escape_string()?
Is de gebruikersnaam wel uniek? Wellicht is het handiger als gebruikers/deelnemers eerst geregistreerd worden en dat je die vervolgens selecteert?
Is de gebruikersnaam wel uniek? Wellicht is het handiger als gebruikers/deelnemers eerst geregistreerd worden en dat je die vervolgens selecteert?
de conversaties zijn voor leden, dus zijn geregistreed, uiteindelijk wil ik ook maken dat je ze kan selecteren maar ik heb nog geen idee hoe dat werkt ben sinds kort pas weer begonnen met coderen dus het is even inkomen voor mij. dit is gewoon weer even een proef projectje
Gewijzigd op 16/08/2017 12:21:43 door - Rob -
- Rob - op 16/08/2017 12:20:56:
de conversaties zijn voor leden, dus zijn geregistreed, uiteindelijk wil ik ook maken dat je ze kan selecteren maar ik heb nog geen idee hoe dat werkt ben sinds kort pas weer begonnen met coderen dus het is even inkomen voor mij. dit is gewoon weer even een proef projectje
Thomas van den Heuvel op 15/08/2017 22:04:37:
Het is korter :s. Misschien is het een zelf gemaakte alias van real_escape_string()?
Is de gebruikersnaam wel uniek? Wellicht is het handiger als gebruikers/deelnemers eerst geregistreerd worden en dat je die vervolgens selecteert?
Is de gebruikersnaam wel uniek? Wellicht is het handiger als gebruikers/deelnemers eerst geregistreerd worden en dat je die vervolgens selecteert?
de conversaties zijn voor leden, dus zijn geregistreed, uiteindelijk wil ik ook maken dat je ze kan selecteren maar ik heb nog geen idee hoe dat werkt ben sinds kort pas weer begonnen met coderen dus het is even inkomen voor mij. dit is gewoon weer even een proef projectje
Wellicht verstandig om eens even te verdiepen in alles wat HTML5 je te bieden heeft? Dan kun je er achter komen wat er allemaal kan. (in principe kan alles)
Blijf als uitgangspunt hebben dat je een gebruiksvriendelijk programma wilt ontwerpen/bouwen.
Ik heb nu iets gevonden, een plugin waarmee je meerdere mensen kunt selecteren en mensen kan zoeken. De plugin is select2
- Rob - op 16/08/2017 13:18:23:
Ik heb nu iets gevonden, een plugin waarmee je meerdere mensen kunt selecteren en mensen kan zoeken. De plugin is select2
Heb je je al verdiept in HTML5?
https://www.w3schools.com/tags/tryit.asp?filename=tryhtml_select_multiple
Select multiple zit dus in select2, ja dus.