anoniem Geplaatst: 10 december 2003 Delen Geplaatst: 10 december 2003 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 Quote Link naar reactie
anoniem Geplaatst: 10 december 2003 Auteur Delen Geplaatst: 10 december 2003 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 Link naar reactie
anoniem Geplaatst: 10 december 2003 Auteur Delen Geplaatst: 10 december 2003 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. Quote Link naar reactie
anoniem Geplaatst: 10 december 2003 Auteur Delen Geplaatst: 10 december 2003 [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. Quote Link naar reactie
anoniem Geplaatst: 10 december 2003 Auteur Delen Geplaatst: 10 december 2003 [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? :-? Quote Link naar reactie
anoniem Geplaatst: 10 december 2003 Auteur Delen Geplaatst: 10 december 2003 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 Link naar reactie
anoniem Geplaatst: 11 december 2003 Auteur Delen Geplaatst: 11 december 2003 [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. Quote Link naar reactie
anoniem Geplaatst: 11 december 2003 Auteur Delen Geplaatst: 11 december 2003 weet je t zeker? staat ie nog op AUTO_INCREMENT? als dat allemaal het geval is moet je je code eens grondig nakijken of er niet ergens wordt geprobeerd een nieuwe record te maken die persé 127 als ID moet hebben... Quote Link naar reactie
anoniem Geplaatst: 12 december 2003 Auteur Delen Geplaatst: 12 december 2003 ik kan jou wel met zekerheid vertellen dat de query niet uitgevoerd wordt... er moet toch eerst een mysql_query aan te pas komen om de query alleen uit te voeren daarna moet je ook nogges een mysql_fetch_... of mysql_num_rows uitvoeren want anders weet php echt niet dat hij de database moet raadplegen Quote Link naar reactie
anoniem Geplaatst: 12 december 2003 Auteur Delen Geplaatst: 12 december 2003 als je nou eens een groter stuk code hier plakt, bijvoorbeeld het hele gedeelte wat wordt uitgevoerd als je op de knop add drukt... Quote Link naar reactie
anoniem Geplaatst: 13 december 2003 Auteur Delen Geplaatst: 13 december 2003 De uitdaging waarmee ik zat is reeds op een andere manier opgelost. Ik heb de source dus niet meer waarover het ging. Desondank iedereen bedankt voor de reacties, want ik heb er indirect toch wat van opgestoken :D Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen