Hallo,

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:

$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
									{
										
									}
								}
							}
Wat doet save_string() en waarom maak je zelf de datum aan, terwijl je ook prima NOW() kan gebruiken?
En het lijkt mij niet handig om $participant te overschrijven.
Los daarvan (sa[color=#ff0000]f[/color]e_string()?), wat is dit:
$participants = explode('+', $_POST['participants']);

Kun 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() ?
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?
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

Los daarvan (sa[color=#ff0000]f[/color]e_string()?), wat is dit:
$participants = explode('+', $_POST['participants']);

Kun je dat niet wat eleganter oplossen in je formulier?


Ik denk dat hij een textarea gebruikt oid, hier vult men dan b.v. in:

thomas+peter+rob


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.

Als je meerdere mensen wit invoeren via een textarea? Waarom niet per lijn?
Ik denk dat hij een textarea gebruikt oid

Zoveel leek mij wel duidelijk ja.

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....

Reageren