INSERT INTO unique

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP Developer (junior functie)

Functie omschrijving Wij zijn op zoek naar een PHP Developer! Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed

Bekijk vacature »

Als Front-end developer werken aan apps voor het o

Functie Als Front-end developer werk je intensief samen met 1 van de UX-designers en denk je mee over de gebruiksvriendelijkheid en design van onze web- en mobile apps. Je bent betrokken bij sessies met gebruikers om designs te valideren en usability van de app-in-wording te testen. Vervolgens gebruik je dit om samen met je team waarin ook back-end (.NET) developers zitten, te zorgen voor de realisatie van de best mogelijke apps voor studenten en docenten. Eisen • Je hebt een hands-on development en coding mind-set en werkt graag aan een high quality code base welke je consequent onderhouden kan worden

Bekijk vacature »

SAP Integratie Ontwikkelaar

Ben jij ambitieus in de verdere ontwikkeling van SAP binnen HANOS, en heb je kennis van SAP PI, CPI (SAP integration suite) en of andere middleware tooling? Dan ben jij mogelijk onze nieuwe SAP Integratie (middleware) Ontwikkelaar! Lees snel verder en solliciteer! Wat ga je doen? Als SAP Financieel Consultant ben je, als deel van een gedreven team van interne SAP consultants, de schakel tussen de gebruikersorganisatie en ICT. Je draagt proactief bij aan een optimale aansluiting van de SAP-functionaliteit (een applicatielandschap met o.a. Suite on HANA, Fiori, Hybris, C4C en BO), op de bedrijfsprocessen. Verder ondersteun je de HANOS

Bekijk vacature »

Machine Software Developer

Bij een bedrijf in de machinebouw, regio Roosendaal, zijn we op zoek naar een: Machine Software Developer Waar ga je werken? Onze opdrachtgever is gespecialiseerd in de grondverzetmachines. Al meer dan 50 jaar leveren ze zowel nationaal als internationaal diverse machines. Het is een familiebedrijf met een informele werksfeer. Wat ga je doen? Als Machine Software Developer ben je verantwoordelijk voor: - Je ontwerpt, ontwikkelt en debugt software voor machinebesturingssystemen en complexe landbouwmachines; - Je stelt gebruikersinterfaces op (cabinedisplays); - Op termijn ga je softwareprojecten leiden voor specifieke machines; - Inclusief planning, documentatie en validatie; - Om specificaties te verifiëren

Bekijk vacature »

Software developer

Functieomschrijving Voor een gewaardeerde werkgever in de regio van Middelburg zijn wij op zoek naar een ambitieuze PHP/Symfony Developer. Een enthousiast persoon die het development team komt versterken met het aanpakken van complexe en nieuwe projecten. Ben jij op zoek naar een baan met veel uitdaging binnen een snelgroeiend e-commerce bedrijf, waar je de tijd en ruimte krijgt voor zowel persoonlijke als professionele groei? Lees dan snel verder! Dit ga je doen: Aanpassingssuggesties van collega’s in kaart brengen, vervolgens te analyseren en daarna te concluderen of de aanpassing een verbetering is; Ontwikkeling en beheer van de serviceportal in Symfony en

Bekijk vacature »

Mendix Developer

Voor Troostwijk Groep zoeken wij een: Mendix Developer Wij zoeken Je bent een getalenteerde en ervaren Mendix Developer en het is tijd om je horizon te verbreden. Je wilt minder coderen en meer modelleren, minder bezig zijn met allerlei technische details en randvoorwaarden en meer met functionaliteit. Daarnaast ben je trots op de innovatieve en gebruiksvriendelijke applicaties die je in de loop van de jaren hebt gebouwd. Werk je graag in een enthousiast team, wil je veel vrijheid en kun je tegelijkertijd goed met deadlines omgaan, dan ben jij absoluut degene die wij zoeken! Wat je nodig hebt is ruime

Bekijk vacature »

Software Developer C# .NET

Functie omschrijving Zoek jij een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf? Wij zijn voor deze functie op zoek naar een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! Verder ga jij je bezighouden met: Het verbeteren van functionaliteiten binnen het dataplatform; Meedenken in oplossingsrichtingen; Werken aan de architectuur; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je werken? De organisatie waar je voor gaat werken heeft een onafhankelijk

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

BizTalk/ Azure Developer

Dit ga je doen •Understanding the scope of required functionality, translate them within context of way of working of the team into developed solutions, whilst safeguarding documentation; •Planning based on assigned sprint tasks; •Acting as an expert in estimation techniques and planning; •Understanding your role in the agile process and act in this way; •Facilitating internal communication and effective collaboration; •Working closely with scrum master to handle backlogs and new requests; •Providing information to the third parties about activities and needs for compliance. Hier ga je werken Our client is a leading organization focusing on animal nutrition, offering solutions that

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Software Programmeur

Functie omschrijving Ben jij op zoek naar een organisatie waar je samen met een team werkt aan iets moois en waar je naast hard werken ook hard kunt lachen? Dan ben je hier aan het juiste adres! Voor een informeel IT-bedrijf in omgeving Wassenaar zijn wij op zoek naar versterking. Ben jij op zoek naar een nieuwe uitdaging als Software Programmeur lees dan snel verder! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed

Bekijk vacature »

Mendix Developer

Functie Wat ga je doen als Mendix Developer? We leven in een wereld die snel ontwikkelt en veranderd, ook nemen bedrijfsbelangen toe en blijken risico’s moeilijker in te schatten, daarom wij op zoek naar Junior, Medior en Senior Developers die bedrijven kunnen helpen met hun screeningproces en zorgen dat deze efficiënt en 100 procent AVG compliant is. Het concept achter Mendix is duidelijk. De klant heeft een vraag/probleem. Dit kunnen we door middel van slimme software oplossen. In plaats van te werken met de nieuwste technieken en tools, wordt er gekozen voor het implementeren en maken van software dat op

Bekijk vacature »

Front-end developer E-Commere

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als front-end developer heb je een adviserende rol en sta je aan het eindpunt van alles wat met designs te maken heeft. Je overlegt met klanten en collega’s, en zet je in om ideeen om te zetten tot unieke concepten. Je bent het aanspreekpunt voor de klant en bewaakt tevens de planning. Eisen

Bekijk vacature »
Veur Heur

Veur Heur

19/12/2022 07:50:08
Quote Anchor link
Al jaren gebruik ik een (misschien verkeerde) manier van INSERT INTO namelijk...

Om een uniek veld af te dwingen (bijv. user o.b.v. e-mail) zet ik een kolom op UNIQUE en is de insert query niet true, dan toon ik een foutmelding. Sinds PHP8.x geeft dit echter een foutmelding en twijfel ik of dit altijd wel de juiste manier is geweest en vraag ik me af...

Moet ik o.b.v. de UNIQUE kolom eerst een SELECT doen om te zien of de waarde bestaat en o.b.v. daarvan een foutmelding tonen of zijn er betere manieren die misschien minder omslachtig zijn?
 
PHP hulp

PHP hulp

14/11/2024 23:21:58
 
Jan R

Jan R

19/12/2022 09:09:49
Quote Anchor link
Database structuur is inderdaad uniek.
Als je record niet unique is dan krijg je nu inderdaad een melding. Deze melding kan je onderdrukken door
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysqli_report(MYSQLI_REPORT_OFF);

Een ander alternatief in aan je sql dit toevoegen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
ON DUPLICATE KEY UPDATE id=id
Niet echt proper maar het werkt wel.
 
Veur Heur

Veur Heur

19/12/2022 09:13:59
Quote Anchor link
Meldingen onderdrukken lijkt me nooit handig en in het geval van de toevoeging: is de uitkomst dan niet altijd true?
 

19/12/2022 10:24:02
Quote Anchor link
Met een UNIQUE index bewaakt de database server de integriteit van de gegevens.
Dat is ideaal om te voorkomen dat programmeurs fouten maken die de gegevens corrumperen.

De SQL syntax ON DUPLICATE KEY UPDATE is wel proper, mits je het toepast in de juiste situaties.
Stel, iemand vult de gegevens in van een bepaalde productcode (primary key) en klikt op 'Opslaan'.
Als het niet uitmaakt dat het product al in de database stond, dan kan je op deze manier de gegevens overschrijven, zonder extra queries uit te laten voeren.
Deze bewerking wordt ook wel 'UPSERT' genoemd: UPDATE OR INSERT. Zie ook https://linuxhint.com/upsert_mysql/
Gewijzigd op 19/12/2022 10:26:26 door
 
Adoptive Solution

Adoptive Solution

28/12/2022 15:32:50
Quote Anchor link
Hier een uitgebreid doch versimpeld voorbeeld van INSERT ON DUPLICATE UPDATE.

De idee is om een uniek accountnummer aan te maken en te reserveren alvorens de verdere gegevens in te voeren en te bewaren.

Als een leeg record niet wordt gebruikt omdat de invoer is afgebroken, kan je het gereserveerde accountnummer zelf gebruiken en daar je eigen gegevens aan toevoegen.Weliswaar is dat een omweg, maar toch.

De nadruk ligt op het aanmaken van het unieke accountnummer mbv MySQL in spCreateAccount().

Wat het doet :

Een leeg record met uniek accountnummer wordt aangemaakt : spCreateAccount && sfMakeAccountNumber

Met een form worden andere gegevens ingevoerd en bewaard met spUserInsert

Procedure spGetDiagnostics doet voor als een uniek record al bestaat.

Andere procedures laten de lege records zien en wissen die.

Maak eerst een lege database aan ( upsert , wordt in connect.php gebruikt ) en voer dan onderstaand SQL bestand uit dat een tabel en de procedures en functie toevoegt.

Aan het eind worden die uitgevoerd.

Fouten voorbehouden.

Zelf ideeën toevoegen en/of uitwerken.

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
-- Adminer 4.8.1 MySQL 10.6.11-MariaDB-0ubuntu0.22.04.1 dump

SET NAMES utf8;
SET time_zone = '+00:00';
SET foreign_key_checks = 0;
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

SET NAMES utf8mb4;

DELIMITER ;;

DROP FUNCTION IF EXISTS `sfMakeAccountNumber`;;
CREATE FUNCTION `sfMakeAccountNumber`() RETURNS char(15) CHARSET utf8mb4 COLLATE utf8mb4_general_ci
BEGIN
SET @modulo = 26;
SET @nu     = NOW();
SET @jaar   = DATE_FORMAT( @nu, '%y' ) - 20;
SET @maand  = MONTH(@nu);
SET @dag    = MOD( DAYOFMONTH( @nu ), @modulo );

IF @dag = 0 THEN
    SET @dag = 1;
END IF;

#SET @wofm   = FLOOR( ( DAYOFMONTH( @nu ) - 1) / 7) + 1;

SET @uur = HOUR( @nu );
IF @uur = 0 THEN
    SET @uur = 1;
END IF;

SET @minuut = MOD( MINUTE( @nu ) , @modulo );
IF @minuut = 0 THEN
    SET @minuut = 1;
END IF;

SET @seconde = MOD( SECOND( @nu ) , @modulo );
IF @seconde = 0 THEN
    SET @seconde = 26;
END IF;

SET @micro = MICROSECOND( SYSDATE(4) );
IF @micro = '' THEN
    SET @micro = '9999';
END IF;
SET @micro = LPAD( @micro, 4, 0 );

SET @base     = 64;
SET @cjaar    = CHAR( @base + @jaar );
SET @cmaand   = CHAR( @base + @maand );
SET @cdag     = CHAR( @base + @dag );
#SET @cwofm    = CHAR( @base + @wofm );
SET @cuur     = CHAR( @base + @uur );
SET @cminuut  = CHAR( @base + @minuut );
SET @cseconde = CHAR( @base + @seconde );
SET @account  = CONCAT ( @cjaar, @cmaand, @cdag, @cuur, @cminuut, @cseconde, @micro, 'Z' );

RETURN @account;
END;;

DROP PROCEDURE IF EXISTS `spCheckEmptyAccounts`;;
CREATE PROCEDURE `spCheckEmptyAccounts`()
SELECT *
FROM users
WHERE naam IS NULL
ORDER BY registratiedatum;;

DROP PROCEDURE IF EXISTS `spCreateAccount`;;
CREATE PROCEDURE `spCreateAccount`()
BEGIN
    SET @errno = 0;
    REPEAT
        SET @account = sfMakeAccountNumber();
        INSERT IGNORE INTO users (account, registratiedatum, naam, adres, woonplaats) VALUES ( @account, NOW(), NULL, NULL, NULL);
        GET DIAGNOSTICS @num_conditions = NUMBER;
        SET @nummer = @num_conditions;
        GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;
    UNTIL @errno = 0 END REPEAT;
    SELECT @account AS account;
END;;

DROP PROCEDURE IF EXISTS `spDeleteEmptyAccounts`;;
CREATE PROCEDURE `spDeleteEmptyAccounts`()
DELETE FROM users WHERE naam IS NULL;;

DROP PROCEDURE IF EXISTS `spGetDiagnostics`;;
CREATE PROCEDURE `spGetDiagnostics`()
BEGIN
INSERT IGNORE INTO users (account, registratiedatum, naam, adres, woonplaats) VALUES ( 'BBFAUHJ28851K', NOW(), NULL, NULL, NULL);
GET DIAGNOSTICS @num_conditions = NUMBER;
SET @nummer = @num_conditions;
GET DIAGNOSTICS CONDITION 1 @errno = MYSQL_ERRNO;
If @errno = 1062 THEN
  SELECT @errno AS fout;
ELSE
  SELECT @nummer;
END IF;
END;;

DROP PROCEDURE IF EXISTS `spUserInsert`;;
CREATE PROCEDURE `spUserInsert`(IN `faccount` char(15), IN `fnaam` char(50), IN `fadres` char(50), IN `fwoonplaats` char(50))
BEGIN

INSERT INTO
users ( account, registratiedatum, naam, adres, woonplaats )
VALUES ( faccount, now(), fnaam, fadres, fwoonplaats )
ON DUPLICATE KEY UPDATE
    naam = values(naam),
    adres = values(adres),
    woonplaats = values(woonplaats);
END;;

DELIMITER ;

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `account` char(15) NOT NULL,
  `registratiedatum` char(20) NOT NULL,
  `naam` char(50) DEFAULT NULL,
  `adres` char(50) DEFAULT NULL,
  `woonplaats` char(50) DEFAULT NULL,
  PRIMARY KEY (`account`),
  UNIQUE KEY `id` (`id`),
  KEY `naam` (`naam`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;


-- 2022-12-27 09:48:04

# demo how it works
TRUNCATE TABLE users;
CALL spGetDiagnostics();
CALL spCheckEmptyAccounts();
CALL spGetDiagnostics();
CALL spCreateAccount();
CALL spCheckEmptyAccounts();
SELECT @account;
SET @naam = 'Fred';
SET @adres = 'Plein 54';
SET @woonplaats = 'Ergens';
CALL spUserInsert(@account, @naam, @adres, @woonplaats);
SELECT * FROM users WHERE account = @account;
SELECT * FROM users;
CALL spDeleteEmptyAccounts();
SELECT * FROM users;


Dit zijn de PHP bestanden.

connect.php om te verbinden

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$SQL_host
     = 'localhost';
$SQL_user     = 'root';
$SQL_password = 'password';
$SQL_port     = '3306';
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new MySQLi( $SQL_host, $SQL_user, $SQL_password, '', $SQL_port );
$db->set_charset("utf8mb4");
$db->query("SET NAMES utf8mb4 COLLATE utf8mb4_general_ci");

$dbase = 'upsert';
$db->select_db( $dbase );
?>


menu.php

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
17
18
19
<style>
#menu {
    font-family: Copperplate;
    font-size: 1.200em;
    }

#menu a {
    text-decoration: none;
    }

</style>

<p id="menu">
<a href="UserInput.php">Input</a> |
<a href="UserUpdate.php">Update</a> |
<a href="UserShowAll.php">All</a>
</p>

<hr />


index.php om te beginnen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
include('menu.php');
?>


<h3>Upsert Demo</h3>


UserInput.php om in te voeren

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

include('menu.php');

include ('connect.php'); // = new mysqli();
$query = "CALL spCreateAccount();";
$result = $db->query( $query );
if ( $result->num_rows > 0 ):
    $row = $result->fetch_object();
    echo '<pre>' . print_r( $row, TRUE ) . '</pre>';
    $account = $row->account;
endif;

?>


<style>
p, input {
    font-size: 120%;
}
</style>

<form method="post" action="UserPost.php">

    <p>Account <input type="text" name="account" value="<?php echo $account; ?>" readonly /></p>

    <p>Naam <input type="text" name="naam" value="" required /></p>

    <p>Adres <input type="text" name="adres" value="" required /></p>

    <p>Woonplaats <input type="text" name="woonplaats" value="" required /></p>

    <p><input type="submit" name="submit" value="submit" /></p>

</form>


UserPost.php om te verwerken en het resultaat te zien

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
include('menu.php');

echo '<pre>' . print_r( $_POST, TRUE ) . '</pre>';

if ( $_POST['submit'] ):

    include('connect.php');// = new mysqli();

    $faccount    = $db->real_escape_string( trim( $_POST['account'] ) );
    $fnaam       = $db->real_escape_string( trim( $_POST['naam'] ) );
    $fadres      = $db->real_escape_string( trim( $_POST['adres'] ) );
    $fwoonplaats = $db->real_escape_string( trim( $_POST['woonplaats'] ) );

    if ( !empty($faccount) && !empty($fnaam) && !empty($fadres) && !empty($fwoonplaats) ):
        $query = 'CALL spUserInsert("' . $faccount . '", "' . $fnaam . '", "' . $fadres . '", "' . $fwoonplaats . '")';
        echo '<p>' . $query . '</p>';

        $result = $db->query( $query );

        $query = 'SELECT * FROM users WHERE account = "' . $faccount . '"';
        $result = $db->query( $query );
        $row = $result->fetch_object();
        echo '<pre>' . print_r( $row , TRUE ) . '</pre>';
    else:
        echo '<p style="color:red;">Er ontbreken gegevens</p>';
    endif;

endif;

?>


UserUpdate.php om te bewerken

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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
include('menu.php');
?>


<style>
    p, input {
        font-size: 120%;
    }
    </style>

<?php
if ( isset( $_GET['account'] ) ):
    
    include ('connect.php'); // = new mysqli();
    $account = $_GET['account'];
    $query = 'SELECT * FROM users WHERE account = "' . $account . '";';
    echo '<p>' . $query . '</p>';
    $result = $db->query( $query );
    if ( $result->num_rows > 0 ):
        $row = $result->fetch_object();
        echo '<pre>' . print_r( $row, TRUE ) . '</pre>';
        $account = $row->account;
        $naam = $row->naam;
        $adres = $row->adres;
        $woonplaats = $row->woonplaats;
        ?>


        <form method="post" action="UserPost.php">

        <p>Account <input type="text" name="account" value="<?php echo $account; ?>" required /></p>

        <p>Naam <input type="text" name="naam" value="<?php echo $naam; ?>" required /></p>

        <p>Adres <input type="text" name="adres" value="<?php echo $adres; ?>" required /></p>

        <p>Woonplaats <input type="text" name="woonplaats" value="<?php echo $woonplaats; ?>" required /></p>

        <p><input type="submit" name="submit" value="submit" /></p>

        </form>

        <?php
    else:
        echo '<p>Account niet gevonden</p>';
    endif;

else:
    echo '<p>Accountnummer ontbreekt</p>';
endif;

?>
Gewijzigd op 28/12/2022 15:34:40 door Adoptive Solution
 
Ozzie PHP

Ozzie PHP

28/12/2022 17:00:45
Quote Anchor link
>> Om een uniek veld af te dwingen (bijv. user o.b.v. e-mail)

Als het gaat om het toevoegen van een username o.b.v. een e-mailadres, dan lijkt me inderdaad de eerste logische stap om te bepalen of die username wellicht al bestaat. Dit zou ik dan doen vóórdat ik nieuwe informatie aan de database ga toevoegen.

In het geval dat het mailadres (als username) al bestaat, heeft de eigenaar daarvan waarschijnlijk vergeten dat hij zich ooit al eens heeft ingeschreven. In dat geval kun je vragen: bent u uw wachtwoord vergeten? (en zo ja een wachtwoord reset-link mailen)
 
Adoptive Solution

Adoptive Solution

28/12/2022 18:47:57
Quote Anchor link
Simpel testen of iets bestaat :

https://www.tutorialspoint.com/best-way-to-test-if-a-row-exists-in-a-mysql-table

Toevoeging op 28/12/2022 20:35:53:

Dit kan ook :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
DELIMITER ;;

DROP PROCEDURE IF EXISTS `spAccountBestaat`;;
CREATE PROCEDURE `spAccountBestaat`(IN `accountnum` char(15))
BEGIN
SET @x = (SELECT 1 FROM users WHERE account = accountnum);
#SELECT @x ;
SELECT COALESCE(@x, 0) AS bestaat;
END;;

DELIMITER ;


Een stored procedure die een 1 of 0 teruggeeft als een unieke gebruikersnaam wel of niet bestaat.

Je kan bij het opslaan vooraf een CALL spAccountBestaat() maken en daarop reageren.

Of je kunt bij het invoeren van de unieke gebruikersnaam bij elke keyup met AJAX e.e.a. dynamisch controleren.

https://www.w3schools.com/php/php_ajax_livesearch.asp
 



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.