tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
327
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von darknet
    darknet darknet ist offline Mitglied Silber
    Registriert seit
    Oct 2003
    Beiträge
    52
    Hallo zusammen.

    ich hab mal wieder n kleines Problem.
    wie kann ich in der Datenbank (MySQL) nach Einträgen suchen die mit 0 beginnen?
    Leider haben Email-Adressen die dumme eigenschaft auch mit 0 beginnen zu können.
    Wenn ich nun in meiner Datenbank nach 0 suchen möchte lande ich automatisch bei a.

    PHP-Code:
    // Alphabetische Abfragesortierung
    if (empty($buchstabe))
    {
        
    $buchstabe_suche "a";
    }

    elseif (
    $buchstabe == Alle)
    {
        
    $buchstabe_suche "";
    }

    else
    {
        
    $buchstabe_suche $buchstabe;
    }


    //Abfrage DB
    $abfrage "SELECT anrede, nachname, e_mail_adr, bestaetigt FROM newsletter_abo WHERE e_mail_adr LIKE '$buchstabe_suche%' ORDER BY e_mail_adr, nachname";
    $ergebnis mysql_query($abfrage); 
     
    Suum cuique!
    DarkNet-WD

  2. #2
    WieGehts WieGehts ist offline Mitglied Gold
    Registriert seit
    Oct 2003
    Beiträge
    130
    Hallo,
    probier mal folgendes:
    PHP-Code:
    // Alphabetische Abfragesortierung 
    $buchstabe "0"
    if (empty($buchstabe)) 

        
    $buchstabe_suche "a"

    el... 
    Wenn du damit die Datensätze mit 0 beginnend bekommst, ist alles OK. Wenn nicht, habe ich deine Problembeschreibung nicht verstanden.
     

  3. #3
    Avatar von darknet
    darknet darknet ist offline Mitglied Silber
    Registriert seit
    Oct 2003
    Beiträge
    52
    die Variable bekommt das Script schon. Das ist nicht das Problem.
    Oberhalb des geposteten Scripts gibt es eine Ausgabe zur Orientierung für den User
    PHP-Code:
    Seite: <?PHP echo $buchstabe;?>
    Dort erscheint meine 0 ohne Probleme.
    Das Problem liegt anscheinend in der Abfrage der Datenbank.
    wenn ich nach der Null suche verwirft er anscheinend die Null als Zahl.
    Hab mir grad nochwas zum testen gebastelt. Das liegt unterhalb der o.a. Ausgabe von $buchstabe
    PHP-Code:
    // Alphabetische Abfragesortierung
    if (empty($buchstabe))
    {
        
    $buchstabe_suche "a";
    }

    elseif (
    $buchstabe == Alle)
    {
        
    $buchstabe_suche "";
    }
    else
    {
        
    $buchstabe_suche $buchstabe;
    }

    echo 
    "Buchstabe: $buchstabe";


    //Abfrage DB
    $abfrage "SELECT anrede, nachname, e_mail_adr, bestaetigt FROM newsletter_abo WHERE e_mail_adr LIKE '$buchstabe_suche%' ORDER BY e_mail_adr, nachname";
    $ergebnis mysql_query($abfrage); 
    bei echo "Buchstabe: $buchstabe"; bekomme ich auch die Ausgabe "Buchstabe: 0"

    nur das er nicht nach LIKE '0%' sucht sondern nach LIKE 'a%' oder Gott weiss was.

    ich verzweifel noch....
     
    Suum cuique!
    DarkNet-WD

  4. #4
    vop vop ist offline Mitglied Platin
    Registriert seit
    Mar 2004
    Beiträge
    676
    Versuch doch mal das hier:
    $abfrage = "SELECT anrede, nachname, e_mail_adr, bestaetigt FROM newsletter_abo WHERE e_mail_adr LIKE '"
    . $buchstabe_suche . "%' ORDER BY e_mail_adr, nachname"
    ;


    Ansonsten laß die $abfrage vor dem Aufruf mal ausgeben mit
    echo( $abfrage );

    vop
     

  5. #5
    Avatar von darknet
    darknet darknet ist offline Mitglied Silber
    Registriert seit
    Oct 2003
    Beiträge
    52
    Gar seltsam.
    Der Fehler lag anscheinend nicht in der Abfrage der Datenbank sondern im Script davor (siehe *****).
    PHP-Code:
    Alphabetische Abfragesortierung
    if (!isset($buchstabe)) //***** war vorher empty*****
    {
        
    $buchstabe_suche "a";
    }

    elseif (
    $buchstabe == Alle)
    {
        
    $buchstabe_suche "";
    }
    else
    {
        
    $buchstabe_suche $buchstabe;
    }

    echo 
    "Buchstabe: $buchstabe";


    //Abfrage DB
    $abfrage "SELECT anrede, nachname, e_mail_adr, bestaetigt FROM newsletter_abo WHERE e_mail_adr LIKE '$buchstabe_suche%' ORDER BY e_mail_adr, nachname";
    echo 
    "$abfrage"
    Denn wenn ich jetzt nach 0 suche bekomme ich bei echo "$abfrage";
    SELECT anrede, nachname, e_mail_adr, bestaetigt FROM newsletter_abo WHERE e_mail_adr LIKE '0%' ORDER BY e_mail_adr, nachname
    sonst bekam ich
    SELECT anrede, nachname, e_mail_adr, bestaetigt FROM newsletter_abo WHERE e_mail_adr LIKE 'a%' ORDER BY e_mail_adr, nachname
    was aus
    PHP-Code:
    Alphabetische Abfragesortierung
    if (empty($buchstabe)) //***** jetzt geändert in !isset*****
    {
        
    $buchstabe_suche "a";

    resultierte.

    Kann es sein das PHP 0 bei empty als leer erkennt?
    Geändert von darknet (06.10.05 um 13:10 Uhr)
     
    Suum cuique!
    DarkNet-WD

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 19.10.07, 08:45
  2. Textarea in 2 Variablen "vor" und "nach" dem Cursor aufteilen?
    Von Catscrash im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 21.09.06, 09:09
  3. MySQL5.0 - In Datenbank auch nach "/" und "-" suchen
    Von MatMagic im Forum Relationale Datenbanksysteme
    Antworten: 4
    Letzter Beitrag: 09.11.05, 21:30
  4. bei instr-Funktion nach " suchen
    Von ClausN im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 27.01.05, 09:54
  5. Antworten: 14
    Letzter Beitrag: 23.02.04, 09:35