Controle in database van gegevens alvorens deze op te slaan

Status
Niet open voor verdere reacties.

MrC67

Gebruiker
Lid geworden
21 jan 2011
Berichten
47
Hallo,
Ik heb in mysql een database draaien ( opgave ) met daarin tabelen van div. activiteiten. nu wil ik voordat gegevens die vanuit een form komen in deze database bij de juiste acitivteit opgeslagen worden, eerst kijken of de persoon die deze form verstuurd zich al heeft opgegeven, dus of de gegevens al in de database aanwezig zijn en ze dan aan de persoon laten zien.
Maar het wil me niet zo lukken, misschien heeft iemand van jullie sugesties.

Alvast Bedankt,

Als voorbeeld gaat het om een opgave voor de fietstocht.
From post: Naam - Adres - Woonplaats - Aantal_leden - Aantal_introduces
Database structure : ID - Datum - Naam - Adres - Aantal_leden - Aantal_intro - Totaalbedrag

Script tot zover.

// Verbinding openen
include_once('verbinding.php');
mysql_select_db("fietstocht", $con);
error_reporting(0);
// Gegevens controleren of ze al gePost zijn in database




// Gegevens invoegen in database
$sql = "INSERT INTO fietstocht (Naam, Adres, Aantal_Leden, Aantal_intro) VALUES ('$Name','$adres','$Aantal', $Aantal_intro)";
$sql = mysql_query($sql);

echo ("opslag gelukt");
// sluiten verbinding
mysql_close ($con);
 
PHP:
//gegevens controleren:

$sql = 'SELECT * FROM `fietstocht` WHERE `Naam`=\'' . $_POST['naam'] . '\''; //je kan de query langer maken door bijv: WHERE `Naam`=\'' . $_POST['Naam'] . '\' AND of OR WHERE `Adres`=\'' . $_POST['Adres'] . '\'

if(mysql_num_rows($sql) > 0) { //controleren hoeveel rijen met het resultaat in je tabel staan, als het er meer dan 0 zijn staat de naam er dus al in
   //foutmelding: naam staat al in DB
}else {
   //gegevens invoegen in database
}

//sluiten verbinding
 
Hallo Barry127,

werkt nog niet maar waarschijnlijk begrijp ik je niet, kun je me dit stukje Naam`=\'' . $_POST['naam'] . '\''; in taal uitleggen??

Alvast Bedankt.
 
Hoi MrC67,

ik zal de SQL query van $sql hier onder uitleggen:

Code:
SELECT * FROM `fietstocht`  //selecteert alle velden uit de tabel fietstocht.
WHERE `Naam`= $_POST['naam'] // specificeert de bovenstaande query naar dat alleen alle velden uit de tabel fietstocht worden geselecteerd waar het database veld Naam gelijk is aan $_POST['naam']
// $_POST['naam'] is de variabele $naam die jij gebruikt bij de INSERT
// als je bijvoorbeeld (in mijn geval) Barry invoert in jou systeem krijg je deze query:
SELECT * FROM `fietstocht` WHERE `naam`='Barry'

//vervolgens gebruik ik de functie mysql_num_rows($sql) deze functie geeft het aantal resultaten van de bovenstaande query als getal weer.
//als dit getal groter is dan 0 dan staat er minimaal 1 veld met de naam Barry in, dus dan is Barry al opgegeven.

Hoop dat je begrijpt wat ik bedoel met bovenstaande.

Succes :D
 
Hoi Barry127,

Heeft nog wat steun en kreun gekost, ik bleef om een rare reden error meldingen krijgen maar het werkt nu zoals gepland.

Thx.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan