2017-05-16 4 views
2

Ich habe versucht, eine Suchmaschine zu machen, wo ich zwei Eingabefelder habe, beide suchen in der gleichen Datenbank und Tabelle, aber verschiedene Zeilen/Spalten. Mein Problem ist, dass beide in beiden Zeilen/Spalten suchen. Ich füge unten Screenshots hinzu, damit du mich besser verstehen kannst.Suchmaschine mit zwei Eingabefeldern mit dem gleichen Ergebnis

Ich vermute, dass etwas falsch ist die Funktionen in Dokument 2, aber ich kann nicht verstehen, was.

Hier ist der Code in zwei Dokumenten.

Dokument 1

mysql_connect ("localhost","xxxx","xxxx") or die ("Tilkoblingsfeil"); 
mysql_select_db ("xxxx") or die("Finner ikke database"); 
$output = ''; 

if(isset($_POST['searchVal'])) { 
    $searchq = $_POST['searchVal']; 
    $searchq = preg_replace ("#^0-9#"," ",$searchq); 

    $query = mysql_query("SELECT * FROM ds_OrderItem WHERE idProduct LIKE '%$searchq%' LIMIT 100") or die("Klarte ikke søke!"); 
    $count = mysql_num_rows ($query); 

    if($count == 0){ 
     $output = 'Ingen produktID med disse verdiene'; 




}else{ 


    $output .='<table border="1" cellpadding="5" cellspacing="1" width="50%" bordercolor="grey"><tr><th>ProduktID</th><th>Ordrenummer</th><th>Beskrivelse</th><th>Antall</th>'; 
    while($row = mysql_fetch_array($query)) { 
    $output .= '<tr><td>'.$row['idProduct'].'</td><td>'.$row['idOrder'].'</td><td>'.$row['title'].'</td><td>'.$row['qty'].'</td></tr>'; 
} 
     $output .='</table>'; 




     if($_POST['searchVal'] == NULL) { 
      $output = ""; 
      } 

    } 

} 
if(isset($_POST['searchVal'])) { 
    $searchw = $_POST['searchVal']; 
    $searchw = preg_replace ("#^0-9a-z#i"," ",$searchw); 

    $query = mysql_query("SELECT * FROM ds_OrderItem WHERE title LIKE '%$searchw%' LIMIT 100") or die("Klarte ikke søke!"); 
    $count = mysql_num_rows ($query); 

    if($count == 0){ 
     $output = 'Ingen TECDOC artikler med disse verdiene'; 




    }else{ 


     $output .='<table border="1" cellpadding="5" cellspacing="1" width="50%" bordercolor="grey"><tr><th>ProduktID</th><th>Ordrenummer</th><th>Beskrivelse</th><th>Antall</th>'; 
     while($row = mysql_fetch_array($query)) { 
     $output .= '<tr><td>'.$row['idProduct'].'</td><td>'.$row['idOrder'].'</td><td>'.$row['title'].'</td><td>'.$row['qty'].'</td></tr>'; 
} 
     $output .='</table>'; 




     if($_POST['searchVal'] == NULL) { 
       $output = ""; 
      } 

    } 

} 
echo ($output); 

?> 

Dokument 2

<?php 
error_reporting(1); 
include('system_admin.inc.php'); 

make_header($title,array('enable_ajax' => true)); 


?> 

<html> 


<head> 
<title>TecdocORProduct</title> 
<script type=text/javascript " src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 
<script type=text/javascript "> 



function searchq() { 
    var searchTxt = $("input[name='search1']").val(); 

    $.post("testsearch.php", {searchVal: searchTxt}, function(output) { 
     $("#output") .html(output); 



    }); 


} 
function searchw() { 
    var searchTxt = $("input[name='search2']").val(); 

    $.post("testsearch.php", {searchVal: searchTxt}, function(output) { 
     $("#output") .html(output);  




}); 

} 
</script> 

</head> 


<body> 
<h1>Søk i produktID eller tecdocnr</h1> 


<form class="odd" action="william.properties.php" method="post"> 
     <input type="text" name="search1" placeholder="Søk etter produktID" onkeyup="searchq();" /> 



<form class="odd" action="william.properties.php" method="post"> 
     <input type="text" name="search2" placeholder="Søk etter tecdocnr" onkeyup="searchw();" /> 


     <div id="output"> 


</div> 

</form> 





</body> 
</html> 

Dank für Ihre Zeit danken und alle Antworten, die ich gegeben werden könnten.

The right searchfield

The left searchfield

+0

sollten Sie eindeutige Schlüssel verwenden für Ihre sowohl die Suchanfrage '{searchVal: searchTxt}' oder '{searchVal2: searchTxt}' –

+0

Also für meine searhw Funktion im searchVal mit searchVal2 zu ersetzen? – easyquestions

+0

differenzieren Sie die Daten wie folgt {idproduct: searchTxt} {title: sextxt} – JYoThI

Antwort

1

sollten Sie eindeutige Schlüssel für beide {searchVal: searchTxt} oder {searchVal2: searchTxt} der Suchanfrage verwenden und in PHP-Suchbedingungen verwenden entsprechend

Versuchen Sie js und php Code zu ändern wie unten:

JS:

function searchq() { 
    var searchTxt = $("input[name='search1']").val(); 

    $.post("testsearch.php", {searchVal: searchTxt}, function(output) { 
     $("#output") .html(output); 



    }); 


} 
function searchw() { 
    var searchTxt = $("input[name='search2']").val(); 

    $.post("testsearch.php", {searchVal2: searchTxt}, function(output) { 
     $("#output") .html(output);  




}); 

} 

Php:

mysql_connect ("localhost","xxxx","xxxx") or die ("Tilkoblingsfeil"); 
mysql_select_db ("xxxx") or die("Finner ikke database"); 
$output = ''; 

if(isset($_POST['searchVal'])) { 
    $searchq = $_POST['searchVal']; 
    $searchq = preg_replace ("#^0-9#"," ",$searchq); 

    $query = mysql_query("SELECT * FROM ds_OrderItem WHERE idProduct LIKE '%$searchq%' LIMIT 100") or die("Klarte ikke søke!"); 
    $count = mysql_num_rows ($query); 

    if($count == 0){ 
     $output = 'Ingen produktID med disse verdiene'; 




}else{ 


    $output .='<table border="1" cellpadding="5" cellspacing="1" width="50%" bordercolor="grey"><tr><th>ProduktID</th><th>Ordrenummer</th><th>Beskrivelse</th><th>Antall</th>'; 
    while($row = mysql_fetch_array($query)) { 
    $output .= '<tr><td>'.$row['idProduct'].'</td><td>'.$row['idOrder'].'</td><td>'.$row['title'].'</td><td>'.$row['qty'].'</td></tr>'; 
} 
     $output .='</table>'; 




     if($_POST['searchVal'] == NULL) { 
      $output = ""; 
      } 

    } 
exit($output); 
} 
if(isset($_POST['searchVal2'])) { 
    $searchw = $_POST['searchVal2']; 
    $searchw = preg_replace ("#^0-9a-z#i"," ",$searchw); 

    $query = mysql_query("SELECT * FROM ds_OrderItem WHERE title LIKE '%$searchw%' LIMIT 100") or die("Klarte ikke søke!"); 
    $count = mysql_num_rows ($query); 

    if($count == 0){ 
     $output = 'Ingen TECDOC artikler med disse verdiene'; 




    }else{ 


     $output .='<table border="1" cellpadding="5" cellspacing="1" width="50%" bordercolor="grey"><tr><th>ProduktID</th><th>Ordrenummer</th><th>Beskrivelse</th><th>Antall</th>'; 
     while($row = mysql_fetch_array($query)) { 
     $output .= '<tr><td>'.$row['idProduct'].'</td><td>'.$row['idOrder'].'</td><td>'.$row['title'].'</td><td>'.$row['qty'].'</td></tr>'; 
} 
     $output .='</table>'; 




     if($_POST['searchVal'] == NULL) { 
       $output = ""; 
      } 

    } 
exit($output); 
} 


?> 
+0

Das hat funktioniert! Danke :-) – easyquestions

+0

@easyquestions willkommen :) –

1

Sie müssen den Post-Daten Name { idproduct : searchTxt} and { title:searchtxt }

JS unterscheiden:

 function searchq() { 
     var searchTxt = $("input[name='search1']").val(); 

     $.post("testsearch.php", {idproduct: searchTxt}, function(output) { 
      $("#output") .html(output); 



     }); 


    } 
    function searchw() { 
     var searchTxt = $("input[name='search2']").val(); 

     $.post("testsearch.php", {title: searchTxt}, function(output) { 
      $("#output") .html(output);  

    }); 

    } 

PHP:

if(isset($_POST['idproduct'])) { .... } 

if(isset($_POST['title'])) { .... } 
+0

Das hat funktioniert! Danke :-) – easyquestions

+0

froh, dir zu helfen @easyquestions – JYoThI

Verwandte Themen