So erstellen Sie eine SELECT-Abfrage mit WHERE ungleich UND mindestens einer von mehreren LIKE-Bedingungen in CodeIgnitePhp

PHP-Programmierer chatten hier
Anonymous
 So erstellen Sie eine SELECT-Abfrage mit WHERE ungleich UND mindestens einer von mehreren LIKE-Bedingungen in CodeIgnite

Post by Anonymous »

Ich habe ein Problem mit dieser speziellen CodeIgniter-MySQL-Abfrage.
Ich versuche, meine Datenbankzeilen zu durchsuchen, in denen eines der drei Felder/Spalten denselben Ausdruck wie die Suchzeichenfolge enthält, der „Status“ jedoch nicht als „gelöscht“ markiert sein darf.
Ich habe es zuerst versucht:

Code: Select all

$this->db->where('status !=', 'deleted');
$this->db->like('meta_title', $string);
$this->db->or_like('name', $string);
$this->db->or_like('text_full', $string);
Aber das Feld „meta_title“ wurde einfach komplett ignoriert und „meta_title“ wurde überhaupt nicht verglichen oder untersucht. Dann habe ich basierend auf der Stackexchange-Frage einer anderen Person Folgendes versucht und das Problem wurde behoben, aber jetzt wird Folgendes ignoriert:

Code: Select all

WHERE `status` != 'deleted'
Mein Code

Code: Select all

$rows = $this->db->query("SELECT * FROM `categories` WHERE `name` LIKE '%$string%' OR `meta_title` LIKE '%$string%' OR `slug` LIKE '%$string%' OR `text_full` LIKE '%$string%' AND `status` != 'deleted' ")->result_array();

var_dump($rows);
echo $this->db->last_query(); die();
Dies gibt alle Zeilen zurück, auch die als gelöscht markierten Zeilen.
Ich habe es auch ohne die hinteren Häkchen versucht und ich habe es auch versucht

Code: Select all

`status` NOT LIKE 'deleted'
Gefällt mir

Code: Select all

$rows = $this->db->query("SELECT * FROM `categories` WHERE `name` LIKE '%$string%' OR `meta_title` LIKE '%$string%' OR `slug` LIKE '%$string%' OR `text_full` LIKE '%$string%' AND `status` NOT LIKE 'deleted' ")->result_array();
Das Ergebnis von

Code: Select all

echo $this->db->last_query(); die();
ist:

Code: Select all

SELECT * FROM `categories` WHERE `name` LIKE '%buyer%' OR `meta_title` LIKE '%buyer%' OR `slug` LIKE '%buyer%' OR `text_full` LIKE '%buyer%' AND `status` != 'deleted'
Ich habe auch versucht, den WHERE-Status != 'gelöscht' am Anfang der Abfrage zu platzieren
Ich bin nicht sehr bewandert in der Webentwicklung, aber ich habe ein bisschen mit diesem Problem herumgespielt. Leider bin ich an einem Punkt angelangt, an dem ich Hilfe brauche, um zu verstehen, was ich falsch mache.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post