Controleren of value in de database al bestaat

Status
Niet open voor verdere reacties.

apellsientje925

Gebruiker
Lid geworden
6 jun 2009
Berichten
142
Hoi,

Misschien weer een beetje beginvraagje:o
Maar ik vraag het toch:
Hoe kun je controleren of de value al bestaat in de tabel.
In de kolom: spelernaam
Alvast bedankt,


MVG
 
[SQL]SELECT * FROM `tabel` WHERE `spelersnaam`='naam'[/SQL]

:) En dan controleren met mysql_num_rows of er 1 of meer gevonden zijn, dan weet je dat die naam dus al bestaat.
 
Wat wil je bereiken? Misschien kan je ook een veld in je database unique veranderen, zodat er geen dubbele ingevoegd kunnen worden?
 
Ik ben nog beginner met php.
Dus snap niet hoe dat moet (sorry :o)
Eerst maak je verbinding met je database, en dan gebruik je de mysql_query die SumBeam zojuist aangaf. Bijvoorbeeld: (dit is vergelijkbaar met het eerste voorbeeld van http://php.net/manual/en/function.mysql-query.php)
PHP:
<?php
$result = mysql_query("SELECT * FROM 'tabel' WHERE 'spelersnaam' = 'cruijff'");
if ($result) {
    echo "Spelersnaam Cruijff komt voor in de tabel.";
}
?>
 
Laatst bewerkt:
Hoewel dat werkt is de methode van raymond88, zeker op een drukke website, beter. Met de andere methode is er een race condition mogelijk. Als twee personen vrijwel tegelijkertijd zich registreren met dezelfde naam bestaat de kans dat dat zo verloopt:
1. Er wordt gecontroleerd of de nieuwe gebruikersnaam van A al bestaat. Nee.
2. Er wordt gecontroleerd of de nieuwe gebruikersnaam van B al bestaat. Nee.
3. A wordt geregistreerd met gebruikersnaam X.
4. B wordt geregistreerd met gebruikersnaam X.

Met de methode van raymond88 is dit risico niet aanwezig. Bovendien bespaart het je een query. Zet met phpMyAdmin een uniqueness constraint op de kolom spelernaam en controleer in het registratiescript of de INSERT-query lukt. Zo nee, kijk naar de foutmelding of het veroorzaakt wordt door een al bestaande naam.
 
Sorry, ik heb het inmiddels niet meer nodig.
Mijn excuus.
Misschien later
Sorry voor de moeite:o
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan