tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
711
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kannaum kannaum ist offline Mitglied Silber
    Registriert seit
    Sep 2009
    Beiträge
    71
    hallo,

    Ich habe mal wieder ein Frage.
    Ich möchte bei einer SELECT Abfrage in der WHERE Klausel eine if Bedingung einfügen.
    Die If-Bedingung würde ich ka können:
    PHP-Code:
    if ($name != '') {
    $name name

    Aber wie kann man dass dann in eine SQl Abfrage einbauen?

    mfg
     

  2. #2
    Avatar von queicherius
    queicherius queicherius ist offline ♥ PHP ♥
    Registriert seit
    Oct 2008
    Ort
    Stuttgart
    Beiträge
    436
    Schema:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    
    mysql_connect();
    mysql_select_db();
     
    mysql_query();
    mysql_fetch_object();
     
    while
    if

    Ein guten Einstieg in Mysql und PHP gibt schattenbaum.net.
     
    Jeder freut sich über eine positive Bewertung oder ein Danke :)

    Wie poste ich falsch
    Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
    Mein Motto

  3. #3
    kannaum kannaum ist offline Mitglied Silber
    Registriert seit
    Sep 2009
    Beiträge
    71
    Das weiß ich ja.
    Aber ich will das so machen:
    $sql = SELECT * FROM database WHERE if(name != '') name = $name, .....
    mysql_query($sql);

    Aber so wird das ja wahrscheinlich nicht gehen.

    fmg
     

  4. #4
    bergonline bergonline ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Beiträge
    473
    Hi,

    @queicherius:
    Da fehlt das mysql_close()


    Kannst du dein Vorhaben präziser erläutern?

    PHP-Code:
    SELECT FROM Tabelle WHERE name '".$name"' 

    bo

    PHP-Code:

    if ($name != '') {
    $sql SELECT FROM Tabelle WHERE name '".$name"'  ;
    } else{
    $sql SELECT FROM Tabelle;
    }

    mysql_query($sql); 
     

  5. #5
    BadMatt BadMatt ist offline Mitglied Gold
    Registriert seit
    Mar 2007
    Beiträge
    105
    Hi, ich glaube das hier ist was für dich ;>
    http://dev.mysql.com/doc/refman/5.0/...functions.html
     

  6. #6
    TheKar TheKar ist offline Grünschnabel
    Registriert seit
    Jan 2009
    Beiträge
    4
    Ich konkateniere meistens. Das ist eine sehr gute Technick denke ich für komplexere querys
    PHP-Code:
    // Wichtig, auf die Leerzeichen achten beim konkatenieren
    $query ="SELECT * FROM Tabelle ";
    if (
    $name != '') { $query  .= "WHERE name =  '{$name}'  ;";

    mysql_query($query); 
     

  7. #7
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Zitat Zitat von kannaum Beitrag anzeigen
    $sql = SELECT * FROM database WHERE if(name != '') name = $name, .....
    mysql_query($sql);

    Aber so wird das ja wahrscheinlich nicht gehen.
    Richtig, so einfach geht es nicht.

    Allerdings verstehe ich den Sinn deiner Query nicht.
    Wenn du überprüfen willst ob eine Variable einen Inhalt hat, musst du das nicht die Datenbank machen lassen - das kann getrost PHP erledigen.

    Erklär einfach mal in Worten was du machen möchtest.
     
    mfg

    DeluXe

  8. #8
    kannaum kannaum ist offline Mitglied Silber
    Registriert seit
    Sep 2009
    Beiträge
    71
    Ich will ja nicht nur schauen ob es leer ist sondern wenn es nicht leer ist soll es von der Datenbank geholt werden.


    @bergonline:
    Das würde nicht sehr gut sein, denn ich habe ca. 6 solche Sachen und das würde dann sehr viel Code bedeuten.

    @TheKar:
    Das klingt schon gut.
    Da muss ich morgen mal schauen ob das geht.

    mfg
     

  9. #9
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Zitat Zitat von kannaum Beitrag anzeigen
    Ich will ja nicht nur schauen ob es leer ist sondern wenn es nicht leer ist soll es von der Datenbank geholt werden.
    Dann sucht du die Lösung von TheKar. (Nur ohne den geschweiften Klammern. )
    MySQL ist nicht dafür zuständig sich die Query selbst zusammen zu basteln - zumindest nicht in solch trivialen Fällen.
     
    mfg

    DeluXe

  10. #10
    Avatar von CookieBuster
    CookieBuster CookieBuster ist offline <?= "Hello World" ?>
    Registriert seit
    Sep 2008
    Ort
    Münsingen (BW)
    Beiträge
    420
    Blog-Einträge
    4
    @DeluXe Doch mit geschweitften Klammern. Es ist mehr als nur sinvoll absolut immer Klammer zu setzen, auch wenn sie nicht nötig sind!
    Weitere Kommentare dazu auf dieser CodingstandardSeite. Bzw eine Seite welche entsprechende Empfehlungen gibt.
     
    There are only 10 types of people in the world — those who understand binary, and those who don't.

    Mach mal einer das Licht an, ich hör nix!

    Why is 6 afraid of 7? Because 7 8 9.

  11. #11
    DeluXe DeluXe ist offline Funkjoker
    Registriert seit
    Jul 2004
    Ort
    Offenburg
    Beiträge
    847
    Ich meine auch nicht die im PHP, sondern die in der Query...
    PHP-Code:
    $query  .= "WHERE name =  '{$name}'  ;"
    Das hat dort nicht viel zu suchen.
     
    mfg

    DeluXe

  12. #12
    TheKar TheKar ist offline Grünschnabel
    Registriert seit
    Jan 2009
    Beiträge
    4
    Zitat Zitat von DeluXe Beitrag anzeigen
    Ich meine auch nicht die im PHP, sondern die in der Query...
    PHP-Code:
    $query  .= "WHERE name =  '{$name}'  ;"
    Das hat dort nicht viel zu suchen.
    Wenn ich mich nicht irre sind die {} das richtige Mittel um in Strings php-variablen direkt einzubinden. Fehler verursacht es definitiv nicht. Lässt man sich $query am Ende ausgeben stehen bei mir da auch keine Klammern mehr.

    Grüße
     

  13. #13
    bergonline bergonline ist offline Mitglied Brokat
    Registriert seit
    Jul 2006
    Beiträge
    473
    Zitat Zitat von kannaum Beitrag anzeigen
    Ich will ja nicht nur schauen ob es leer ist sondern wenn es nicht leer ist soll es von der Datenbank geholt werden.


    @bergonline:
    Das würde nicht sehr gut sein, denn ich habe ca. 6 solche Sachen und das würde dann sehr viel Code bedeuten.
    Hi,

    ja, war ja nur nen Tipp, der noch akzeptabel ist :P

    Aber wir kann ich mir jetzt eigentlich einen Anwendungsfall vorstellen?
    "SELECT * FROM db" selektiert alle Einträge aus der db und wenn ein Name gegeben ist, dann selektiere nur mit "WHERE name='".$name'" "?
    Für eine Suchfunktion halte ich dies Muster eher ungeeignet.

    bo
     

Ähnliche Themen

  1. Abfrage + Zählen über Where Klausel hinaus
    Von schrodi im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 04.06.09, 13:07
  2. into DB mit Klausel
    Von quidnovi im Forum PHP
    Antworten: 2
    Letzter Beitrag: 06.01.08, 04:10
  3. Probleme mit SELECT-Abfrage in WHERE-Klausel
    Von TomArenal im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 15.09.06, 12:03
  4. where klausel
    Von NgiseD im Forum ASP
    Antworten: 3
    Letzter Beitrag: 02.06.02, 08:51
  5. where klausel
    Von NgiseD im Forum ASP
    Antworten: 3
    Letzter Beitrag: 13.05.02, 19:39