CodeIgniter: überprüfen ob Datensatz vorhanden ist, habe alles versucht

Ich habe eine CodeIgniter Projekt für die Schule und ich brauche, um zu erstellen ein ticket mit Zugangsdaten. Wenn der Benutzer noch nicht in der Datenbank, die Daten, die er ausgefüllt in die form wird in die Datenbank eingefügt, und wenn er schon in der Datenbank vorhanden ist, wird nur ein ticket erstellt wird mit seiner bereits vorhandenen Benutzer-id.

Ich habe versucht, um zu überprüfen, ob ein Benutzer existiert, der mit seiner e-mail, aber ich hatte kein Glück. Googeln für Stunden, versuchte Rückrufe, normal Validierungen, you name it. Ich kann einfach nicht scheinen, um es zu arbeiten und würde wirklich zu schätzen einige helfen. Hier ist meine aktuelle code:

Controller

public function create_ticket() {
    $this->load->library('form_validation');
    //field name, error message, validation rules
    $this->form_validation->set_rules('voornaam', 'Voornaam', 'trim|required');
    $this->form_validation->set_rules('tussenvoegsel', 'Tussenvoegsel', 'trim');
    $this->form_validation->set_rules('achternaam', 'Achternaam', 'trim|required');
    $this->form_validation->set_rules('email', 'E-mailadres', 'trim|required|valid_email');
    $this->form_validation->set_rules('geboortedatum', 'Geboortedatum', 'required');
    $this->form_validation->set_rules('postcode', 'Postcode', 'trim|required');
    $this->form_validation->set_rules('woonplaats', 'Woonplaats', 'trim|required');

    if($this->form_validation->run() == FALSE)
    {
        echo "Failed";
        $this->reservate();
    }
    else
    {
        $this->ticket_model->add_ticket($email);
        $this->reservate();

    }
}

Modell:

public function add_ticket($email) {
    $query = $this->db->query("SELECT email FROM visitor
                               WHERE email = '".$email."'");
    if($query->num_rows() == 0){
        $data = array(
            'voornaam' => $this->input->post('voornaam'),
            'tussenvoegsel' => $this->input->post('tussenvoegsel'),
            'achternaam' => $this->input->post('achternaam'),
            'email' => $this->input->post('email'),
            'geboortedatum' => $this->input->post('geboortedatum'),
            'postcode' => $this->input->post('postcode'),
            'woonplaats' => $this->input->post('woonplaats')
        );
        $this->db->insert('visitor', $data);
    }
    else {
        return false;
    }

    }

Anzeigen (wenn überhaupt wichtig)

<?php echo validation_errors(); ?>
<h1>Ticket Bestellen</h1>
<label>
    <span>Voornaam</span>
    <input type="text" class="input_text" name="voornaam" id="voornaam"/>
</label>
<label>
    <span>Tussenvoegsel</span>
    <input type="text" class="input_text" name="tussenvoegsel" id="tussenvoegsel"/>
</label>
<label>
    <span>Achternaam</span>
    <input type="text" class="input_text" name="achternaam" id="achternaam"/>
</label>
<label>
    <span>E-mailadres</span>
    <input type="text" class="input_text" name="email" id="email"/>
</label>
<label>
    <span>Geboortedatum</span>
    <input type="text" id="geboortedatum" name="geboortedatum" placeholder="dd-mm-jjjj">
</label>
<label>
    <span>Postcode</span>
    <input type="text" class="input_text" name="postcode" id="postcode"/>
</label>
<label>
    <span>Woonplaats</span>
    <input type="text" class="input_text" name="woonplaats" id="woonplaats"/>
</label>
    <input type="submit" class="button" value="Reserveren" />
</label>

Die Fehler ich erhalte, ist:

A PHP Error was encountered

Severity: Notice

Message: Undefined variable: E-Mail

Mit dem Namen: controllers/booking.php

Zeilennummer: 42

Ich weiß nicht, warum dies geschieht, weil, wenn ich nicht setzen die $email-variable gibt, bekomme ich die Fehlermeldung, dass er fehlt, ein argument also, ich bin ein wenig verwirrt hier. Auch, das Hauptproblem, das ich habe, ist, dass, obwohl es Fehler gegeben und alles, er fügt den Datensatz in die Datenbank sowieso... Obwohl ein Datensatz mit der gleichen e-mail-Adresse bereits vorhanden!

Ich weiß wirklich nicht, wie man dieses Problem beheben, so dass jede Hilfe wird sehr geschätzt. Vielen Dank im Voraus.

Mach ein print_r($_POST) und zeige uns das Ergebnis

InformationsquelleAutor J_vdv | 2014-11-06

Schreibe einen Kommentar