2017-11-19 4 views
-2

Ich versuche, Informationen aus einer SQL-Datenbank über ein Formular "SUBMIT" zu ziehen. Die Verbindung wird gemacht, nehme ich an, da es der gleiche Code wie für den Eintrag ist und das funktioniert gut. Ich kann das Ergebnis als einen Block von Elementen anzeigen, aber nicht in einer Tabelle integrieren.SQL-Suchformular Ergebnisse in einer Tabelle anzeigen

Vorerst als der Code, es gibt nur eine leere Seite ...

finde ich vor vielen Beispiele von ein paar Jahren, aber die Dinge haben sich seitdem geändert ..

Hier ist der Code auf das ist PHP-Seite, die die Ergebnisse in einer Tabelle anzeigen soll.

Ich habe verschiedene Möglichkeiten der Integration der Ergebnisse in eine Tabelle versucht, bevor Sie hier Hilfe holen, aber alle geben das gleiche Ergebnis zurück. Ich bin ziemlich neu dazu.

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = "Rmvs03ff"; 
$dbname = "EmployeeListing"; 

$conn = new mysqli($servername, $username, $password, $dbname); 

if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

if (isset($_POST['submit-search'])) { 
    $search = mysqli_real_escape_string($conn, $_POST['search']); 
    $sql = "SELECT * FROM BasicEmployee WHERE EmployeeID LIKE '%$search%' OR FirstName LIKE '%$search%' OR LastName LIKE '%$search%' OR DoB LIKE '%$search%'"; 
    $result = mysqli_query($conn, $sql); 
    $queryResult = mysqli_num_rows($result); 

    echo "<br/>There are " .$queryResult. " matches found"; 

    echo "<table> 
      <tr> 
      <th>Employee I.D.</th> 
      <th>Sex</th> 
      <th>First Name</th> 
      <th>Last Name</th> 
      <th>Date of Birth</th> 
      </tr>"; 

    if ($queryResult > 0) { 
     while ($row = mysqli_fetch_assoc($result)) { 
      echo "<tr>" 
      echo "<td><strong> 
        ".$row['EmployeeID']." 
        </strong></td>" 
      echo "<td> 
        ".$row['Prefix']." 
        </td>" 
      echo "<td><p> 
        ".$row['FirstName']." 
        </p></td>" 
      echo "<td><p> 
        ".$row['LastName']." 
        </p></td>" 
      echo "<td><p> 
        ".$row['DoB']." 
        </p></td>"; 
      echo "</table>"; 
     } 

    } else { 
     echo "<br/>No results found"; 
    } 

} 

echo "<br/>Approved"; 

$conn->close(); 

?> 
    </body> 
    </html> 

Ich habe tun, um die Öffnung html, Kopf eine Körper natürlich, wollte nicht mit diesem versperren Raum ...

+0

Dies ist keine Antwort auf die oben genannten "Referenz - Was bedeutet dieser Fehler in PHP?" weil ich eine leere Seite bekomme und hier kein Fehler ... und das Log scheint im Moment nichts zu protokollieren. – danny26b

+0

Warum sehe ich am Ende jeder Echo-Anweisung keine Semikola? Und sehen Sie, dass Ihre Tabelle HTML gebrochen ist, wenn es keine Zeilen gibt? – mickmackusa

Antwort

0

Sie müssen einmal die gesamte Tabelle echo:

<?php 

$servername = "localhost"; 
$username = "root"; 
$password = "Rmvs03ff"; 
$dbname = "EmployeeListing"; 

$conn = new mysqli($servername, $username, $password, $dbname); 

if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

if (isset($_POST['submit-search'])) { 
    $search = mysqli_real_escape_string($conn, $_POST['search']); 
    $sql = "SELECT * FROM BasicEmployee WHERE EmployeeID LIKE '%$search%' OR FirstName LIKE '%$search%' OR LastName LIKE '%$search%' OR DoB LIKE '%$search%'"; 
    $result = mysqli_query($conn, $sql); 
    $queryResult = mysqli_num_rows($result); 

    echo "<br/>There are " .$queryResult. " matches found"; 

    $table = "<table> 
      <tr> 
      <th>Employee I.D.</th> 
      <th>Sex</th> 
      <th>First Name</th> 
      <th>Last Name</th> 
      <th>Date of Birth</th> 
      </tr>"; 

    if ($queryResult > 0) { 
     while ($row = mysqli_fetch_assoc($result)) { 
      $table .= "<tr>"; 
      $table .= "<td><strong> 
        ".$row['EmployeeID']." 
        </strong></td>"; 
      $table .= "<td> 
        ".$row['Prefix']." 
        </td>"; 
      $table .= "<td><p> 
        ".$row['FirstName']." 
        </p></td>"; 
      $table .= "<td><p> 
        ".$row['LastName']." 
        </p></td>"; 
      $table .= "<td><p> 
        ".$row['DoB']." 
        </p></td>"; 
      $table .= "</table>"; 
     } 

    } else { 
     echo "<br/>No results found"; 
    } 

} 
echo $table; 


echo "<br/>Approved"; 

$conn->close(); 

?> 
    </body> 
    </html> 
+0

Danke für Ihren Kommentar, ich habe meine Antwort bearbeitet – SMH

+0

Das hat das Problem behoben, danke! – danny26b

+0

Ich werde nachsehen, wie man korrekt angezeigt wird, wenn es mehrere Ergebnisse gibt! – danny26b

Verwandte Themen