Dickes mysql problem -> (Suchefunktion)

  • Hallo erstmal ( ich bin übrigens neu hier!),

    Ich habe eine Datenbank und möchte auf meiner Webseite eine suchfunktion einfügen womit die Datenbank nach bestimmten einträgen durchstöbert werden kann
    Der Code ist folgendes (Erklärung weiter unten):


    Zu den Variablen $aanzeigen ist da um die ganze Tabelle anzuzeigen.
    $suchen ist ein String, der in den rausgefischten Einträgen vorkommt!

    Auf alten Pferden lernt man reiten - Und auf jungen; gehst du kaputt! *g

  • Es kommt zwar keine Fehlermeldung, aber es funktioniert nur teilweise!

    Folgendes:wenn ich $aanzeigen übergebe wird die ganze Tabelle ausgegeben! :!:
    Wenn ich aber $suchen ohne $aanzeigen übergebe passiert garnix, was nich sein sollte. :?:
    Ich muss hinzufügen, dass es beabsichtigt ist, dass wenn $aanzeigen ausgewählt ist, $suchen dann egal ist.

    Ich denke diese zeile ist das Problem:

    Zitat


    $result = @mysql_query("SELECT * FROM klettertreff K WHERE (((K.name) = s) or ((K.bland) = s) or (((K.ort) = s) or (K.grad) = s) ORDER BY 'created' DESC");


    Ich bin mir aber nicht sicher!
    Hier nochmal die if-Anwisung:

  • Versuch mal diesen Code:

    beachte, dass die Funktion nun anders aufgerufen wird.

    Wenn du alles anzeigen möchtest, so rufst du sie entweder über

    Code
    tab_anz("~[ALLES]~");

    oder

    Code
    tab_anz();

    auf, wenn du nach etwas suchen möchtest benutzt du

    Code
    tab_anz("SUCHBEGRIFF");

    Ich hab noch ein zwei Fehler die mir aufgefallen sind rausgenommen :)

  • Du sagst, es gibt keine Fehlermeldung, aber du fragst die Fehlermeldung ja gar nicht ab.

    Füge nach dem mysql_query() ein "echo mysql_error()" ein. Dann siehst du, ob bei der Abfrage etwas schief gelaufen ist.

    Näheres gibt's hier:
    http://www.lernpilot.de/wbt/kurse/inde…ysql01&seite=11

    nimm auch das @ vor der Funktion weg. Wenn Du alle Fehlermeldungen unterdrückst wirst du nie erfahren, wenn etwas falsch läuft.

    Gruß Marian

  • naja das sind mehrere Fehler drin. das was mir erstens aufgefallen sit, das man im FROM die tabellen mit komma trennt.

    das mit dme finde ist auch quark,

    das schrewibt man denn:

    Code
    '".$suche."'

    also mit ' und "
    das beim order by wird nicht in ' geschrieben, den entitäten schreibt man in ` das ist ein Unterschied. SO mehr verate ich erstmal nicht :-p

  • Zitat von GreenRover

    naja das sind mehrere Fehler drin. das was mir erstens aufgefallen sit, das man im FROM die tabellen mit komma trennt.

    Ich hab das so verstanden, dass es sich nur um eine tabelle handelt die K genannt wird (gültige Syntax) - was ich hier aber für unnötig halte weswegen ichs im meinem Code entfernt habe.

    Zitat von GreenRover

    das mit dme finde ist auch quark,

    das schrewibt man denn:

    Code
    '".$suche."'

    also mit ' und "

    Da hab ich jetzt nicht so ganz verstanden was du sagen willst...
    egal, im meinem Code sollte es mit den Variablen kein Problem geben...

    Zitat von GreenRover

    das beim order by wird nicht in ' geschrieben, den entitäten schreibt man in ` das ist ein Unterschied. SO mehr verate ich erstmal nicht :-p


    Der Fehler ist mir gar nicht aufgefallen, hab ich in meinem Code oben nun behoben.

  • Zitat von GreenRover

    Du solltest dir dringents mal ein MySQL tutorial angucken.

    Mal abgesehen das ich nicht Autor dieses Querys bin beantwortet das nicht die Frage was daran Falsch ist...

    Ich habe nicht nur schon diverse MySQL Tutorials gelesen sogar schon welche geschrieben..

    Ich sehe in dem Query keinen Fehler, sorry...

    Code
    $result = @mysql_query("SELECT * FROM klettertreff WHERE name='{$modus}' OR bland='{$modus}' OR ort='{$modus}' OR grad='{$modus}' ORDER BY created DESC");
  • Code
    $result = @mysql_query("SELECT * FROM `klettertreff` WHERE `name`='
    ".$modus."' OR `bland`='".$modus."' OR `ort`='".$modus."' OR `grad`='".$modus."' ORDER BY `created` DESC");
    
    
    echo mysql_error();

    dann führe das mal bitte aus. Dan werden wir sehen ob einfach nur dein code müll war oder deien Variabelle $modus einfach nur leer ist.

    PS du hast wirklich ein SQL Tutorial geschrieben ??
    Und bist dir sicher, das das sinvoll war?!?

  • tut mir ja leid aber greenrover gib mal nicht so an du tust immer so als ob du alles aber wirklich alles besser wüsstest... wenn seine query´s so funktionieren wie er sie schreibt (das mache ich auch) dann lasse sie ihn halt so schreiben... :evil:

  • Also als Urheber dieses Threads woolt ich mal einigens klarstellen:

      Wir sind zwei die an der Website arbeiten und der Ursprungs-code stammt von meinem Kollegen, (das war die Funktion zum ausgeben des ganzen tabelleninhalts), welcher funktioniert!

    Code
    $result = @mysql_query("SELECT * FROM klettertreff ORDER BY 'created' DESC");


    Was von mir ist und wo ich auch einbischen experimentiert habe ist die Suchabfrage. ich werd mal die vorgeschlagenen Lösungen ausprobieren und dann sagen welche gehen!
    Ausserdem finde ichs krass, dass so schnell Hilfe gekommen ist! :yes: :humba:

  • Auf alten Pferden lernt man reiten - Und auf jungen; gehst du kaputt! *g

  • Zitat von GreenRover

    dann führe das mal bitte aus. Dan werden wir sehen ob einfach nur dein code müll war oder deien Variabelle $modus einfach nur leer ist.

    Ich würd immer noch gerne wissen, wie meine Variable nach dieser Anweisung leer sein kann....

    [php:1:73c6203a9f]<?php
    function tab_anz($modus = "~[ALLES]~")
    {
    $modus = (empty($modus)) ? "~[ALLES]~" : $modus;
    ?>[/php:1:73c6203a9f]

    Referend meine Testtabelle wird nicht so umfangreich sein wie eure, aber du kannst meine Funktion gerne hier testen: http://modula.mo.funpic.de/mysql/

  • das hattest du so schon gepostet ?? Modula ??

    Und auf das auf die Fehler Meldung von SQL Server wartet man auch immernoch. Wiso Hilfe erwarten und dann nichts für tuhen.

  • Zitat von GreenRover

    Und auf das auf die Fehler Meldung von SQL Server wartet man auch immernoch. Wiso Hilfe erwarten und dann nichts für tuhen.

    Welche Fehlermeldungen?

    Soll ich welche erfinden?
    Mein Code arbeitet nunmal leider ohne Fehler - aber bitte - ich hab ihn so ergänzt, dass - wenn welche auftreten würden - sie angezeigt werden:

    http://modula.mo.funpic.de/mysql/

    Code hänge ich an.

    BTW: Ich erwarte bei diesem Thema keine Hilfe, ich gebe sie...

  • Keine Ursache - hast mich nur ziemlich verunsichert mit der aussage, dass das so nicht gehen könnte, dass ichs erstmal doch durchtesten musste ;)

    In der regel benutz ich mitlerweile für meine MySQL Abfragen ein Objekt was ich mal geschrieben hab, weswegen ich mich nicht mehr so recht drum kümmere was im Hintergrund passiert ;)