2017-05-26 1 views
0

Ich habe versucht, Duplikate Zeilen in Benutzereinträgen zu stoppen, ich habe diese Arbeit, aber wenn ich eine nicht vorhandene Zeile hinzufügen, lässt es mich nicht die Einträge speichern. Es sollte mir erlauben, das neue entrie hinzuzufügen. Was ist los mit dir?Kann nicht nach Stop-Duplikaten hinzufügen

Modellfunktion

public function get_duplicaterow() { 

     $query = $this->db->query('SELECT * FROM intervaloshorarios INNER JOIN citas ' 
       . 'ON intervaloshorarios.idIntervaloHorario = citas.idIntervaloHorario ' 
       . 'GROUP BY citas.cita, intervaloshorarios.idIntervaloHorario ' 
       . 'HAVING COUNT(*) >= 2'); 


     return $query->result(); 
    } 

in der Hauptsteuerung

$crud->set_rules('intervaloHorario', 'Franja Horaria', '_callback_doublerow_check'); 

In der Steuerung

public function doublerow_check() { 

      $this->Fechacita_Model->get_duplicaterow(); 
$q = $this->Fechacita_Model->get_duplicaterow(); 
     if ($count_row > 0) { 
     //if count row return any row; that means you have already this email address in the database. so you must set false in this sense. 
     return FALSE; // here I change TRUE to false. 
    } else { 
     // doesn't return any row means database doesn't have this email 
     return TRUE; // And here false to TRUE 
    } 

     } 

Antwort

0

Ist nicht doublerow_check Funktion soll etwas zurückgeben?

UPDATE:
Meine Vermutung wäre, dass Sie wahr oder falsch zurückkommen müssen. True validiert die Regeln, die Ihren neuen Eintrag erlauben, false würde bedeuten, dass Ihr neuer Eintrag sich nicht an die festgelegten Regeln hält (oder umgekehrt?). In Ihrem Fall übergeben Sie die Validierung, wenn Ihre Abfrage keine Zeilen gefunden hat. Also würde ich etwas wie found rows from $q == 0 zurückgeben. Führen Sie diese Überprüfung jedoch durch, wenn Sie einen neuen Wert einfügen möchten? In diesem Fall sollten Sie den Eintrag ungültig machen, auch wenn nur ein Eintrag bereits existiert.

+0

Sie haben Recht, ich werde es überprüfen. – Jose

+0

Es funktioniert nicht, ich werde den Fragecode aktualisieren. Ich habe return-Anweisung vergessen, aber es funktioniert immer noch nicht ... – Jose

+0

Ich denke nicht, dass die Rückkehr das rohe Ergebnis der Abfrage hat auch viel Bedeutung, überprüfen Sie mein Update. –

Verwandte Themen