2017-10-04 1 views
1

Ich habe kleine Zweifel in PHP-Codierung, bitte helfen Sie mir. Momentan zeige ich Jobs an, nach der Suche wird das Ergebnis auf derselben Seite angezeigt. Es ist fertig, aber das Ergebnis wird unter dem Inhalt angezeigt. Was muss ich tun, um nur Ergebnisse auf dieser Seite anzuzeigen? Ich will nicht zur Verfügung der bisherigen contents.This machen, ist der Code:Suche und Anzeige des Ergebnisses auf der gleichen Seite

<html> 
<head> 
<title>Example</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 

<body> 

<h2>Job Openings</h2> 
<form method="POST" action="jobopenings.php"> 
<input type="text" name="txt" required /> 
<input type="submit" name="btn" value="search" /><br/> 
</form> 
</body> 
</html> 

<?php 

define('HOST', 'localhost'); 
define('USER', 'root'); 
define('PASS', ''); 
define('DB', '*****'); 


$con = mysqli_connect(HOST,USER,PASS,DB) or die("Unable to connect to db"); 


$selQ = "Select * from jobpostings"; 
$res1 = mysqli_query($con, $selQ); 

while($row = mysqli_fetch_array($res1)) 

echo $row[3]."<br> Job Id:<b>".$row[2]."</b><br><b>".$row[1]."</b>"." 
<br>"."Exp:".$row[5]."<br>"."Location:".$row[6]."<br>".$row[8]."<br><br>"; 


if(isset($_POST["btn"])){ 

    $query=$_POST['txt']; 
$query=htmlspecialchars($query); 
$query=mysqli_real_escape_string($con,$query); 
$raw_results="select * from jobpostings where (C_name like '%" .$query."%') 
or (Job_title like '%".$query."%')"; 
$final_results=mysqli_query($con,$raw_results); 

if(mysqli_num_rows($final_results)>0){ 
    while($results=mysqli_fetch_array($final_results)){ 
     echo "<p><b>".$results[1]."</b><br> Job Id:".$results[2] 
               <br>".$results[3]."</p>"; 
    } 
    } 
else{ 
    echo '<b style="color:red;">No results found</b>'; 
    } 
    } 
    ?> 

Vielen Dank im Voraus

+1

Gut, dass der Inhalt in einen Zustand wickeln auch ...? – CBroe

+0

Sie sind nicht Problem immer 'echo "

" $ results [1] "
Job Id:"... $ Results [2]
" $ results [3]."

";' diese Zeile? –

Antwort

0

Nehmen Sie den ganzen PHP-Code innerhalb <body> und setzt, wenn die Bedingungen entweder von Abschnitten zu zeigen. Wie folgt aus:

<html> 
<head> 
<title>Example</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 

<body> 

<h2>Job Openings</h2> 
<?php if(!isset($_POST["btn"])) 
{ ?> 
    <form method="POST" action="jobopenings.php"> 
    <input type="text" name="txt" required /> 
    <input type="submit" name="btn" value="search" /><br/> 
    </form> 
<?php } 

define('HOST', 'localhost'); 
define('USER', 'root'); 
define('PASS', ''); 
define('DB', '*****'); 


$con = mysqli_connect(HOST,USER,PASS,DB) or die("Unable to connect to db"); 


$selQ = "Select * from jobpostings"; 
$res1 = mysqli_query($con, $selQ); 

while($row = mysqli_fetch_array($res1)) 

echo $row[3]."<br> Job Id:<b>".$row[2]."</b><br><b>".$row[1]."</b>"." 
<br>"."Exp:".$row[5]."<br>"."Location:".$row[6]."<br>".$row[8]."<br><br>"; 


if(isset($_POST["btn"])){ 

    $query=$_POST['txt']; 
$query=htmlspecialchars($query); 
$query=mysqli_real_escape_string($con,$query); 
$raw_results="select * from jobpostings where (C_name like '%" .$query."%') 
or (Job_title like '%".$query."%')"; 
$final_results=mysqli_query($con,$raw_results); 

if(mysqli_num_rows($final_results)>0){ 
    while($results=mysqli_fetch_array($final_results)){ 
     echo "<p><b>".$results[1]."</b><br> Job Id:".$results[2] 
               <br>".$results[3]."</p>"; 
    } 
    } 
else{ 
    echo '<b style="color:red;">No results found</b>'; 
    } 
    } 
    ?> 
</body> 
</html> 
+0

@ B.Desai, ich habe meine Antwort aktualisiert –

0

Hier ist der modifizierte Code:

<?php 

define('HOST', 'localhost'); 
define('USER', 'root'); 
define('PASS', ''); 
define('DB', '*****'); 


$con = mysqli_connect(HOST,USER,PASS,DB) or die("Unable to connect to db"); 




$final_results = null; 
if(isset($_POST["btn"])){ 

    $query=$_POST['txt']; 
    $query=htmlspecialchars($query); 
    $query=mysqli_real_escape_string($con,$query); 
    $raw_results="select * from jobpostings where (C_name like '%" .$query."%') or (Job_title like '%".$query."%')"; 
    $final_results=mysqli_query($con,$raw_results); 
} 
    ?> 

    <html> 
<head> 
    <title>Example</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 

<body> 

<h2>Job Openings</h2> 
<form method="POST" action="jobopenings.php"> 
    <input type="text" name="txt" required /> 
    <input type="submit" name="btn" value="search" /><br/> 
</form> 

<?php 

    if(!is_null($final_results) && mysqli_num_rows($final_results)>0){ 
     while($results=mysqli_fetch_array($final_results)){ 
      echo "<p><b>".$results[1]."</b><br> Job Id:".$results[2]."<br>".$results[3]."</p>"; 
      } 
    }else{ 
     echo '<b style="color:red;">No results found</b>'; 
    } 

    $selQ = "Select * from jobpostings"; 
    $res1 = mysqli_query($con, $selQ); 

    while($row = mysqli_fetch_array($res1)) 

     echo $row[3]."<br> Job Id:<b>".$row[2]."</b><br><b>".$row[1]."</b>"." 
    <br>"."Exp:".$row[5]."<br>"."Location:".$row[6]."<br>".$row[8]."<br><br>"; 
?> 

</body> 
</html> 

ich diesen Code testen haben, bestätigen Sie bitte es funktioniert gut.

immer auch PHP-Code vor <html> Tag und alles, was Sie drucken müssen sein starten innerhalb <body> Tag

+0

Vielen Dank für Ihre Antwort ... Ich habe die Ausgabe, was ich benötigt, indem Sie Ihre Art von Code zu beobachten. Vielen Dank –

0

1) sein muss ich Ihnen nicht Abfrage erstellen 2 SQL vorschlagen würde (eine ohne Suche und eine mit Suche). Sie können eine Abfrage erstellen und where-Klausel entsprechend der Suche anhängen.

2) "..aber das Ergebnis unter dem Inhalt angezeigt wird." => den Inhalt alle innerhalb <body> Tag Wickeln.

Aktualisiert-Code

<html> 
    <head> 
    <title>Example</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    </head> 
    <body> 
    <h2>Job Openings</h2> 
    <form method="POST" action="jobopenings.php"> 
     <input type="text" name="txt" required /> 
     <input type="submit" name="btn" value="search" /><br/> 
    </form> 

    <?php 
    define('HOST', 'localhost'); 
    define('USER', 'root'); 
    define('PASS', ''); 
    define('DB', '*****'); 

    $con = mysqli_connect(HOST, USER, PASS, DB) or die("Unable to connect to db"); 

    $where = ""; 
    $searched = false; 
    if (isset($_POST["btn"]) && isset($_POST['txt'])) { 
     $searched = true; 
     $txt = htmlspecialchars($_POST['txt']); 
     $txt = mysqli_real_escape_string($con, $txt); 
     $where = "WHERE (C_name like '%" .$txt. "%') or (Job_title like '%" .$txt. "%')"; 
    } 

    $raw_results = "SELECT * FROM `jobpostings` ".$where; 
    $final_results = mysqli_query($con, $raw_results); 
    if (mysqli_num_rows($final_results) > 0) { 
     while ($results = mysqli_fetch_array($final_results)) { 
     if(!$searched){ 
      echo "<p><b>".$results[1]."</b><br> Job Id:".$results[2]."<br>".$results[3]."</p>"; 
     } else { 
      echo $results[3] . "<br> Job Id:<b>" . $results[2] . "</b><br><b>" . $results[1] . "</b>" . "<br>" . "Exp:" . $results[5] . "<br>" . "Location:" . $results[6] . "<br>" . $results[8] . "<br><br>"; 
     } 
     } 
    } else { 
     echo '<b style="color:red;">No results found</b>'; 
    }?> 
    </body> 
</html> 

Hinweis: Verwenden Sie Prepared Statements zu vermeiden SQL Injections

0
<html> 
<head> 
<title>Example</title> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
</head> 

<body> 
<h2>Job Openings</h2> 
<form method="POST" action="jobopenings.php"> 
<input type="text" name="txt" required /> 
<input type="submit" name="btn" value="search" /><br/> 
</form> 
<?php 

define('HOST', 'localhost'); 
define('USER', 'root'); 
define('PASS', ''); 
define('DB', '*****'); 

$con = mysqli_connect(HOST,USER,PASS,DB) or die("Unable to connect to db"); 

if(isset($_POST["btn"])){ 

$query=$_POST['txt']; 
$query=htmlspecialchars($query); 
$query=mysqli_real_escape_string($con,$query); 
$raw_results="select * from jobpostings where (C_name like '%" .$query."%') 
             or (Job_title like '%".$query."%')"; 
$final_results=mysqli_query($con,$raw_results); 

if(mysqli_num_rows($final_results)>0){ 
while($results=mysqli_fetch_array($final_results)){ 
    echo "<p><b>".$results[1]."</b><br> Job Id:".$results[2] 
              <br>".$results[3]."</p>"; 
    } 
    } 
else{ 
    echo '<b style="color:red;">No results found</b>'; 
    } 
} 
    else{ 
    $selQ = "Select * from jobpostings"; 
    $res1 = mysqli_query($con, $selQ); 

    while($row = mysqli_fetch_array($res1)) 

    echo $row[3]."<br> Job Id:<b>".$row[2]."</b><br><b>".$row[1]."</b>"." 
<br>"."Exp:".$row[5]."<br>"."Location:".$row[6]."<br>".$row[8]."<br><br>";} 
?> 
</body> 
</html> 
+0

Das ist meine aktualisierte Code .... danke für Ihre Unterstützung. –

Verwandte Themen