kostenloser Webspace werbefrei: lima-city


Variablen übernehmen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    djschorsch

    Kostenloser Webspace von djschorsch, auf Homepage erstellen warten

    djschorsch hat kostenlosen Webspace.

    Hi,

    schreibe gerade an einer Datenbanksuche. Ich habe ein Skript das eine Formularseite darstellt un den Suchbegriff auf Knopfdruck an ein Skript das daraus die SQL-Suche bildet weitergibt.
    Mein Problem ist das dass 2te Skript die Variable nicht erkennt.

    erstes Skript
    printf("<form action=\"2.php\" method=\"post\">"); 
       printf("<input type=\"text\" name=\"suche1\"> Stichwortsuche <br>"); 
       printf("<input type=\"submit\" value=\"Suchen\">"); 
       printf("</form>");


    2tes Skript (teil)
    $kommando  = "select taxo_deutsch from taxonomie "; 
    $kommando .= "where taxo_deutsch like \"%$suche1%\" "; 
    $kommando .= "order by taxo_deutsch";


    Ausserdem würde ich in der Suche gerne mit dem select-Elementarbeiten.
    zB.
    printf("<select name=\"suche14\" size=\"1\">"); 
       printf("<option selected value=\"1\"> 1 </option>"); 
       printf("<option          value=\"2\"> 2 </option>");
       printf("<option          value=\"3\"> 3 </option>");
       printf("</select> Lebensform <br>");


    Wie kann ich dort Daten aus einer Tabellen-Spalte anzeigen lassen, statt den fest vorgegebenen Auswahlpunkten(in dem Fall 1,2,3)?


    Mfg djschorsch
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hast du die Variable auch im 2ten-Skript übernommen?

    Du versendest sie ja per post, also muss im zweiten Skript noch eine Zeile rein die so aussieht:
    $suche1 = $_POST["suche1"];


    Beitrag zuletzt geändert: 11.10.2010 16:57:12 von alfr3d
  4. Autor dieses Themas

    djschorsch

    Kostenloser Webspace von djschorsch, auf Homepage erstellen warten

    djschorsch hat kostenlosen Webspace.

    thx, für die schnelle Hilfe. Jemand ne lösumg für das 2te Problem?
  5. Du hast ja irgendwo deine Abfrage die in etwa so aussehen sollte/könnte:

    <?php
    echo "<select name=\"suche14\" size=\"1\">"; 
    
    $select = mysql_query("select spaltenname from tabellenname where spaltenname like \"%$suche1%\" ");
            while($row = mysql_fetch_object($select))
            {
              echo "<option selected value=\"1\">$row->spaltenname</option>"; 
            }
    ?>


    Ungetestet....
  6. Autor dieses Themas

    djschorsch

    Kostenloser Webspace von djschorsch, auf Homepage erstellen warten

    djschorsch hat kostenlosen Webspace.

    Funktioniert
    echo ("<select name=\"suche14\" size=\"1\">"); 
      $select = mysql_query("select spalten from tabelle where spalte like \"%$suche1%\" ");
            while($row = mysql_fetch_object($select))
            {
              echo "<option selected value=\"1\">$row->spalte</option>" ; 
            }
    echo ("</select> TEXT <br>");


    Danke schön.

    Beitrag zuletzt geändert: 11.10.2010 19:25:05 von djschorsch
  7. $zaehler = 1;
    echo ("<select name=\"suche14\" size=\"1\">"); 
      $select = mysql_query("select spalten from tabelle where spalte like \"%$suche1%\" ");
            while($row = mysql_fetch_object($select))
            {
              echo "<option selected value=\"$zaehler\">$row->spalte</option>" ; 
              $zaehler++;
            }
    echo ("</select> TEXT <br>");


    Dadurch erhöht sich der Wert (value) der Optionen bei jedem Schleifendurchlauf um 1. Somit hat jede Option einen eindeutigen Wert, nur falls du das benötigen solltest ;)
  8. Autor dieses Themas

    djschorsch

    Kostenloser Webspace von djschorsch, auf Homepage erstellen warten

    djschorsch hat kostenlosen Webspace.

    Wie kann ich jetzt in der Auswahl noch ein Leerfeld erzeugen, so das man auch nichts auswählen kann?

    -----


    Eine weitere Frage ist, wie kann ich mehrere Suchworte trennen ( zB. Mais Pflanze), so das einzeln nach Ihnen gesucht wird ( Mais, Pflanze)? Da in der Datenbank ja nur Mais steht und ich trotzdem ein Ergebniss will.

    <?php
    $suche1 = $_POST['suche1'];
    
    $kommando  = "select taxo_deutsch, taxo_englisch, taxo_gattung, taxo_art  "; 
    $kommando .= "from taxonomie ";
    $kommando .= "where ((taxo_deutsch like \"%$suche1%\") OR (taxo_englisch like \"%$suche1%\") OR (taxo_art like \"%$suche1%\") OR (taxo_gattung like \"%$suche1%\")) "; 
    $kommando .= "order by taxo_deutsch"; 
    
    ...




    Beitrag zuletzt geändert: 12.10.2010 12:57:35 von djschorsch
  9. Stimmt eigtl schon wie du das machst, musst du das OR benutzen...funktioniert die Abfrage so nicht?
  10. Indem Du mit explode() auftrennst.
    Also bei deinem Beispiel "Mais Pflanze" trenne ich das wort bei einem leerzeichen auf:

    Beispielcode:
    <?php
    
    $suche1="Mais Pflanze mit Blättern";
    if (strpos($suche1, " ") !== false)
    {
    $taxo = "taxo_deutsch";
    $suchdas=explode(" ",$suche1);
    $suchtext = "($taxo like \"%".implode("%\") OR ($taxo like \"%",$suchdas )."%\")";
    }
    
    echo $suchtext;
    
    ?>

    Echo gibt folgendes aus:


    (taxo_deutsch like "%Mais%") OR (taxo_deutsch like "%Pflanze%") OR (taxo_deutsch like "%mit%") OR (taxo_deutsch like "%Blättern%")


    Getestet & für gut befunden
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!