Ga naar inhoud

Duplicate entry


anoniem

Aanbevolen berichten

Ik zit met de volgende uitdaging: Ik heb een formulier waar onder andere een id en een naam kan worden ingevuld. Als er op de knop Add wordt geklikt dan wordt er eerst gegekeken of id leeg is en of de ingetypte naam al aanwezig is is de database. Indien dat zo is dan wordt de invoer gestopt en krijgt de gebruiker de melding te zien dat de naam al in de database zit. Als dat niet zo is dan worden de gegevens ingevoerd in de database. Om het bovenstaande te controleren gebruik ik het volgende: [b:39db6a48b2]if (empty ($id) && $Naam == "SELECT Naam FROM farmlijst WHERE Naam = $Naam") { echo "<strong>Naam is al bekend!!!</strong>";[/b:39db6a48b2] Als ik nu op de knop Add klik dan krijg ik de volgende melding terug: [b:39db6a48b2]Duplicate entry '127' for key 1[/b:39db6a48b2] Dit klopt, want op deze plaats staat inderdaad de naam die ik nog een keer probeer in te voeren in de database. Maar ik verwacht eigenlijk dat de melding [b:39db6a48b2]Naam is al bekend!!![/b:39db6a48b2] wordt weergegeven op het beeldscherm. id is van het type tinyint en wordt bij elke nieuwe invoer automatisch met 1 opgehoogd. Zo, ik hoop dat ik alle benodigde zaken vermeld heb voor deze uitdaging. Eens kijken of jullie mij kunnen helpen :D
Link naar reactie
Naast het feit dat ik deze [code:1:884cbe3918]$Naam == "SELECT Naam FROM farmlijst WHERE Naam = $Naam"[/code:1:884cbe3918]constructie vreemd vind denk ik dat je aan je limiet zit. Je zegt dat je een auto_increment kolom hebt van het type tinyint en laat nu de max waarde 127 zijn van dat type (signed). M.a.w. kies een ander datatype of schoon je table op.
Link naar reactie
[quote:653073c446="Ruudfeen"]ik neem aan dat het over php gaat... er staat "SELECT Naam FROM farmlijst WHERE Naam = $Naam" maar volgens mij wordt de query niet uitgevoerd. Er mist een mysql_query of wat voor db je ook gebruikt... nu wordt het met de string vergelijken, lijkt me[/quote:653073c446] Het gaat inderdaad over PHP ;) De query SELECT Naam FROM wordt netjes uitgevoerd hoor ;) Als ik dit stuk alleen gebruik, is de if statment altijd TRUE en krijg ik geen update meer in de database (als ik een reeds eerder ingevoerd naam gebruik). Aangezien dit niet de bedoeling is, wil ik dat er gecontroleerd wordt op twee invoervelden, Naam en id dus. Ik zit nog steeds te denken dat het ergens aan empty ($id) ligt. Als ik een echo voor de if statement plaats en niets invul in het veld id dan krijg ik niets terug en als ik een waarde invul van krijg ik de waarde netjes terug.
Link naar reactie
[quote:f7fc5fbbd2="Annie"]Naast het feit dat ik deze [code:1:f7fc5fbbd2]$Naam == "SELECT Naam FROM farmlijst WHERE Naam = $Naam"[/code:1:f7fc5fbbd2]constructie vreemd vind denk ik dat je aan je limiet zit. Je zegt dat je een auto_increment kolom hebt van het type tinyint en laat nu de max waarde 127 zijn van dat type (signed). M.a.w. kies een ander datatype of schoon je table op.[/quote:f7fc5fbbd2] Wat vind je vreemd? Want dat vertel je er niet bij en kan ik er dus niets mee doen. Meer tekst en uitleg dus aub ;) En waar bazeer jij je beredenering op dat de database meer dan 127 records zal bevatten? :-?
Link naar reactie
[quote:7399f1bcc8="Annie"]Ik zeg niet dat je database meer dan 127 entries bevat. Ik vermoed aleen dat er al een entry is met id 127 en dat de eerst volgende entry niet toegevoegd kan worden omdat er geen plaats is na 127 in het geval van een tinyint. En niet gebruikte id's worden niet overnieuw uitgedeeld. Het je het overigens al geprobeerd?[/quote:7399f1bcc8] id is ondertussen al van het type INT ;) Maar daar zit het probleem niet in.
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...