tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
262
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von weedo
    weedo weedo ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    179
    Hi,

    ich versuche mich gerade an Neuland und möchte eine Suche für meine Homepage programmieren. Irgendwie fumktioniert das aber nicht so, wie ich mir das vorgestellt habe, denn MySQL gibt mir

    Code :
    1
    
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* LIKE 'schlüsselweort'' at line 12

    wieder. Wo ist mein Denkfehler? Hier der code dafür.

    PHP-Code:
    <?
      
    print '<div style="background:url(\'Bilder/black/index_16.gif\'); width:523px; height:30px; background-repeat: no-repeat; color: #FFFFFF; font-weight: bold;line-height:2;">
              &nbsp;&nbsp;Suche
            </div>
            <div style="background:url(\'Bilder/index_19.gif\'); background-repeat:repeat-y">
              <table class="overall" valign=top width=523>'
    ;
                
    $result $_POST['result'];
      print 
    "     <form action=\"index.php?&part=about&site=search&result=1\" method=\"post\">";
      print 
    "       <tr>
                      <td>Schl&uuml;sselwort: 
                          <input type=\"text\" name=\"result\" value=\"
    $result\" style=\"width:300px;\" /> 
                          <input type=\"submit\" value=\"Suchen\">
                      </td>
                    </tr>
                  </form>"
    ;
        
    switch(
    $_GET["result"]) {
      case 
    "1":
        
    $result $_POST['result'];
        
    $mysql mysql_query("SELECT * FROM advertisement_shop_cat,
                                            advertisement_shop_offer,
                                            advertisement_shop_sub,
                                            consulting,
                                            marketing,
                                            office_shop_cat,
                                            office_shop_offer,
                                            office_shop_sub,
                                            promotion,
                                            textiles_shop_cat,
                                            textiles_shop_offer,
                                            textiles_shop_sub WHERE * LIKE '
    $result'") or die(mysql_error());
        while(
    $db mysql_fetch_assoc($mysql)) {
          
    var_dump($db);
          print 
    '<tr>
                   <td>
                     <hr width=98% />
                   </td>
                 </tr>'
    ;
          print 
    "<tr>
                   <td>
                     
    $result
                   </td>
                 </tr>"
    ;
        }
      break 
    1;
    }
    print 
    "  </table><img src=\"Bilder/index_22.gif\" width=\"523\" height=\"8\">
           </div>"

    ?>
    lg weedo
     
    Das Kennzeichen eines unreifen Menschen ist,
    dass er nobel für eine Sache sterben will,
    während der reife Mensch nobel für eine Sache lebt.

  2. #2
    bergonline bergonline ist offline Mitglied Platin
    Registriert seit
    Jul 2006
    Beiträge
    518
    Hi,

    die SQL ist total falsch.
    Wenn du alles (*) aus mehreren Tables finden willst, dann brauchst du joins

    bo

    http://dev.mysql.com/doc/refman/5.1/de/join.html
    Geändert von bergonline (11.10.09 um 15:25 Uhr)
     

  3. #3
    Avatar von weedo
    weedo weedo ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    179
    Danke erstmal für die schenelle Antwort.

    Ich versuche das gerade irgendwie zu verstehen.

    Kommt das dem nahe?

    PHP-Code:
    $mysql mysql_query("SELECT * FROM advertisement_shop_cat WHERE beschreibung LIKE '$result' LEFT JOIN
                                            advertisement_shop_offer WHERE beschreibung LIKE '
    $result' LEFT JOIN
                                            advertisement_shop_sub WHERE beschreibung LIKE '
    $result' LEFT JOIN
                                            consulting WHERE content LIKE '
    $result' LEFT JOIN
                                            marketing WHERE content LIKE '
    $result' LEFT JOIN
                                            office_shop_cat WHERE beschreibung LIKE '
    $result' LEFT JOIN
                                            office_shop_offer WHERE beschreibung LIKE '
    $result' LEFT JOIN
                                            office_shop_sub WHERE beschreibung LIKE '
    $result' LEFT JOIN
                                            promotion WHERE content LIKE '
    $result' LEFT JOIN
                                            textiles_shop_cat WHERE beschreibung LIKE '
    $result' LEFT JOIN
                                            textiles_shop_offer WHERE beschreibung LIKE '
    $result' LEFT JOIN
                                            textiles_shop_sub WHERE beschreibung LIKE '
    $result'") or die(mysql_error()); 
     
    Das Kennzeichen eines unreifen Menschen ist,
    dass er nobel für eine Sache sterben will,
    während der reife Mensch nobel für eine Sache lebt.

  4. #4
    bergonline bergonline ist offline Mitglied Platin
    Registriert seit
    Jul 2006
    Beiträge
    518
    nein;

    les dir doch die Seite genauer durch


    PHP-Code:
    SELECT 
    FROM table1
    LEFT JOIN table2 
    ON table1
    .id=table2.id
     WHERE table2
    .id IS NULL

    Select * -> selektiert alles
    FROM table1 -> von der Tabelle1
    LEFT JOIN -> zu 2. eingebundene Tabelle
    ON table1.id = table2.id -> das zu referenzierende Attribut
    WHERE -> Bedingung, dass die ID von der 2. Tabelle NULL ist

    Mit dem "ON" verbindest du das jeweilige Attribut
    Alle Datensätze in der Tabelle1 haben Bezug mit den Datensätzen ion der 2.Tabelle wenn das Attribut "id" bei beiden Tabellen gelch ist.


    bo
     

  5. #5
    Avatar von weedo
    weedo weedo ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    179
    Ich bemühe mich ehrlich das ganze zu verstehen und auf meine Situation anzupassen. Aber irgendwie will das alles nicht so, wie ich möchte.

    Ich habe das nochmal versucht:

    PHP-Code:
    $mysql mysql_query("SELECT * FROM advertisement_shop_cat LEFT JOIN
                                            advertisement_shop_offer LEFT JOIN
                                            advertisement_shop_sub LEFT JOIN
                                            consulting LEFT JOIN
                                            marketing LEFT JOIN
                                            office_shop_cat LEFT JOIN
                                            office_shop_offer LEFT JOIN
                                            office_shop_sub LEFT JOIN
                                            promotion LEFT JOIN
                                            textiles_shop_cat LEFT JOIN
                                            textiles_shop_offer 
                                            ON advertisement_shop_cat.beschreibung=
                                            advertisement_shop_sub.beschreibung=
                                            advertisement_shop_offer.beschreibung=
                                            office_shop_cat.beschreibung=
                                            office_shop_offer.beschreibung=
                                            office_shop_sub.beschreibung=
                                            textiles_shop_cat.beschreibung=
                                            textiles_shop_offer.beschreibung=
                                            textiles_shop_sub.beschreibung WHERE beschreibung LIKE '
    $result'") or die(mysql_error()); 
    ich bekomme jetzt den Fehler

    Code :
    1
    
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE beschreibung LIKE 'schlüsselweort'' at line 20
     
    Das Kennzeichen eines unreifen Menschen ist,
    dass er nobel für eine Sache sterben will,
    während der reife Mensch nobel für eine Sache lebt.

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    1.856
    Blog-Einträge
    2
    Bevor du weiter bastelst: Woher willst du wissen in welcher Tabelle es ist, wenn es gefunden wird?
    Du wählst nur die Zeilen und die Tabellennamen bleiben stets im Nirwana.

    Das was du hier realisierst geht in Richtung: Vorhanden? Ja / Nein.
    Aber ein "Wo?" bekommst du so nicht heraus. Dazu wären einzelne Anweisungen auf die jeweiligen Tabellen nötig.
     
    Gebe keine Hilfe per PN, Mail, Instant Messenger etc.
    und keine Copy&Paste-Lösungen - ein bisschen selbst nachdenken sollte drin sein. Konstruktivismus 4tw!


    MfG, Zod

    __________________
    rpd Framework: Rapid Web-Engineering in PHP (Manual | Google Code)

  7. #7
    Avatar von weedo
    weedo weedo ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    179
    Macht Sinn...wie realisiert man sowas denn dann?
     
    Das Kennzeichen eines unreifen Menschen ist,
    dass er nobel für eine Sache sterben will,
    während der reife Mensch nobel für eine Sache lebt.

  8. #8
    bergonline bergonline ist offline Mitglied Platin
    Registriert seit
    Jul 2006
    Beiträge
    518
    Zitat Zitat von ZodiacXP Beitrag anzeigen
    Dazu wären einzelne Anweisungen auf die jeweiligen Tabellen nötig.
    So!

    Einzelne Queries ausführen und via while ausgeben lassen.
     

  9. #9
    Avatar von weedo
    weedo weedo ist offline Mitglied Gold
    Registriert seit
    Dec 2003
    Beiträge
    179
    Dann werd ich mich mal daran machen. Dank euch für die Hilfe
     
    Das Kennzeichen eines unreifen Menschen ist,
    dass er nobel für eine Sache sterben will,
    während der reife Mensch nobel für eine Sache lebt.

Ähnliche Themen

  1. C# und Datenbanken
    Von thespecialx im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 07.12.07, 22:25
  2. Problem mit dem durchsuchen von datenbanken
    Von Darksystem im Forum PHP
    Antworten: 0
    Letzter Beitrag: 24.10.07, 11:51
  3. Datenbanken
    Von Sircoly im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 29.04.06, 17:34
  4. datenbanken
    Von Prediger im Forum Relationale Datenbanksysteme
    Antworten: 0
    Letzter Beitrag: 19.03.05, 23:16
  5. 2 datenbanken
    Von melmager im Forum PHP
    Antworten: 3
    Letzter Beitrag: 06.08.02, 22:39