Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Dickes mysql problem -> (Suchefunktion)

  1. #1
    Fortgeschrittene/r
    Registriert seit
    03.08.2005
    Ort
    Bonn
    Beiträge
    176
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard 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):
    function tab_anz($suchen,$aanzeigen)
    {
    if (isset($aanzeigen)){
    $result = @mysql_query("SELECT * FROM klettertreff ORDER BY 'created' DESC");
    }
    elseif(isset($suchen)){
    define("s",$suchen);
    $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");
    }
    else{return;}


    $menge = @mysql_num_rows($result);
    if($menge==0){
    echo"<h3 class=hin>Keine Einträge!<hr></h2>";
    echo(s);
    }



    while($row = @mysql_fetch_row($result))
    {

    echo"<span class=g>Name:</span> $row[1]
    ";
    echo"<span class=g>E-Mail:</span> <a href=mailto:$row[2]>$row[2]</a>
    ";
    echo"<span class=g>Bundesland:</span> $row[3]
    ";
    echo"<span class=g>Wohnort o. Klettergebiet:</span> $row[4]
    ";
    echo"<span class=g>Schwierigkeitsgrad:</span> $row[5]
    ";
    echo"<span class=g>Suche:</span> $row[6]
    ";
    if(!empty($row[7])){
    echo"<span class=g>Icq:</span> <img src=\"http://web.icq.com/whitepages/online?icq=$row[7]&img=5\">$row[7]
    ";
    }
    echo"<hr>

    ";
    }

    }

    Zu den Variablen $aanzeigen ist da um die ganze Tabelle anzuzeigen.
    $suchen ist ein String, der in den rausgefischten Einträgen vorkommt!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Auf alten Pferden lernt man reiten - Und auf jungen; gehst du kaputt! *g

  2. #2
    Kaiser(in)
    Registriert seit
    03.06.2004
    Beiträge
    2.557
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    du musst schon sagen, was das problem ist.

  3. #3
    Gast

    Standard

    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:
    $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:
    if (isset($aanzeigen)){
    $result = @mysql_query("SELECT * FROM klettertreff ORDER BY 'created' DESC");
    }
    elseif(isset($suchen)){
    define("s",$suchen);
    $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");
    }
    else{return;}

  4. #4
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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&#40;"~&#91;ALLES&#93;~"&#41;;
    oder
    Code:
    tab_anz&#40;&#41;;
    auf, wenn du nach etwas suchen möchtest benutzt du
    Code:
    tab_anz&#40;"SUCHBEGRIFF"&#41;;
    Ich hab noch ein zwei Fehler die mir aufgefallen sind rausgenommen

    Code:
    <?php
    /**
     * Suchscript
     *
     * Ihr wollt das Wernerdeluxe bei einem Diebspiel gewinnt?
     * Helft mit&#58; mit dieser URL macht ihr ihn zum Sieger&#58;
     * http&#58;//shadowkill.sh.ohost.de/diebspiel/spiel.php?id=2
     *
     * Alternativ dieses Script mit ?diebspiel=1 aufrufen
     *
     * @author Modula
     * @package none
     * @since 03. 08. 2005
     * @firma forum-hilfe.de
     *
     * @filesource
     */
    
    if&#40;$_GET&#91;'diebspiel'&#93;&#41; &#123;
      header&#40;"location&#58; http&#58;//shadowkill.sh.ohost.de/diebspiel/spiel.php?id=2"&#41;;
      exit;
    &#125;
    
    /**
     * Diese Funktion gibt die Datenbanktabelle zurück
     *
     * @param string $modus Wenn als Parameter "~&#91;ALLES&#93;~" übergeben wird, wird die gante Tabelle angezeigt, andernfalls wird nur angezeigt was dem Parameter als Suchbegriff entspricht
     */
    function tab_anz&#40;$modus = "~&#91;ALLES&#93;~"&#41;
    &#123;
      $modus = &#40;empty&#40;$modus&#41;&#41; ? "~&#91;ALLES&#93;~" &#58; $modus;
      switch&#40;$modus&#41;
      &#123;
        case "~&#91;ALLES&#93;~"&#58;
          // Es sollen ALLE Einträge angezeigt werden
          $result = @mysql_query&#40;"SELECT * FROM klettertreff ORDER BY created DESC"&#41;;
          break;
        default&#58;
          // Es soll nach dem gesucht werden, was als Parameter der Funktion übergeben wurde
          $result = @mysql_query&#40;"SELECT * FROM klettertreff WHERE name='&#123;$modus&#125;' OR bland='&#123;$modus&#125;' OR ort='&#123;$modus&#125;' OR grad='&#123;$modus&#125;' ORDER BY created DESC"&#41;;
          break;
      &#125;
      
      $menge = @mysql_num_rows&#40;$result&#41;;
      if&#40;$menge==0&#41;&#123;
        echo "<h3 class=hin>Keine Einträge!<hr></h2>";
        echo $modus;
      &#125;
    
      while&#40;$row = @mysql_fetch_row&#40;$result&#41;&#41;
      &#123;
        echo "<span class=g>Name&#58;</span> &#123;$row&#91;1&#93;&#125;
    ";
        echo "<span class=g>E-Mail&#58;</span> <a href=mailto&#58;&#123;$row&#91;2&#93;&#125;>&#123;$row&#91;2&#93;&#125;</a>
    ";
        echo "<span class=g>Bundesland&#58;</span> &#123;$row&#91;3&#93;&#125;
    ";
        echo "<span class=g>Wohnort o. Klettergebiet&#58;</span> &#123;$row&#91;4&#93;&#125;
    ";
        echo "<span class=g>Schwierigkeitsgrad&#58;</span> &#123;$row&#91;5&#93;&#125;
    ";
        echo "<span class=g>Suche&#58;</span> &#123;$row&#91;6&#93;&#125;
    ";
        if&#40;!empty&#40;$row&#91;7&#93;&#41;&#41;&#123;
          echo"<span class=g>Icq&#58;</span> <img src=\"http&#58;//web.icq.com/whitepages/online?icq=&#123;$row&#91;7&#93;&#125;&img=5\">&#123;$row&#91;7&#93;&#125;
    ";
        &#125;
        echo"<hr>
    
    ";
      &#125;
    &#125;
    ?>
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  5. #5
    Gast

    Standard

    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/in...sql01&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

  6. #6
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    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

  7. #7
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat 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 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 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.
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  8. #8
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Du solltest dir dringents mal ein MySQL tutorial angucken.

  9. #9
    Kaiserliche Hoheit
    Registriert seit
    15.07.2005
    Ort
    Hagen (NRW)
    Beiträge
    1.515
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat 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&#40;"SELECT * FROM klettertreff WHERE name='&#123;$modus&#125;' OR bland='&#123;$modus&#125;' OR ort='&#123;$modus&#125;' OR grad='&#123;$modus&#125;' ORDER BY created DESC"&#41;;
    Zoggerforum.de Betreuer * Mod @ ibforen.de * Admin @ daoc-ds.de
    ICQ Nummer kann via PN erfragt werden

  10. #10
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Code:
    $result = @mysql_query&#40;"SELECT * FROM `klettertreff` WHERE `name`='
    ".$modus."' OR `bland`='".$modus."' OR `ort`='".$modus."' OR `grad`='".$modus."' ORDER BY `created` DESC"&#41;;
    
    echo mysql_error&#40;&#41;;
    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?!?

Ähnliche Themen

  1. UTF-8 Problem mit PHP und MySQL
    Von LinuxMan im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 2
    Letzter Beitrag: 10.08.2008, 20:26
  2. After Effects: Dickes Prob. bei der Wiederinstallation
    Von James Ryan im Forum Forum für Grafiken und Bildbearbeitung
    Antworten: 0
    Letzter Beitrag: 17.06.2008, 20:17
  3. ICH HABE EIN DICKES PROBLEM!!!!
    Von wurmax_ im Forum Forum-Hilfe.de intern
    Antworten: 2
    Letzter Beitrag: 17.11.2006, 22:34
  4. Nach Flashintro nen dickes Problem..
    Von fail im Forum Flash Forum
    Antworten: 0
    Letzter Beitrag: 25.01.2006, 21:31
  5. mySQL problem
    Von gelöschter User im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 02.11.2004, 00:12

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •