2017-09-16 8 views
0

Ich habe eine Tonne verschiedener Versionen dieses Codes aus vielen verschiedenen Websites probiert. Ich bin völlig verwirrt, warum das nicht funktioniert. Sogar kopierter und eingefügter Code funktioniert nicht. Ich bin ziemlich neu in PHP und MySQL, aber habe eine anständige Menge an HTML, CSS und JS gemacht, also bin ich nicht wirklich neu im Code zu programmieren, aber ich bin immer noch ein AnfängerIch kann Daten nicht aus der Datenbanktabelle abrufen .... 500 Fehler

Hier ist was ich habe. Ich versuche, Daten von einer Datenbank zu holen, um sie mit den vom Benutzer eingegebenen Daten von der letzten Seite zu vergleichen (im Wesentlichen eine Login-Sache). Ich bin noch nicht einmal zum Vergleichsabschnitt gekommen, weil ich keine Informationen abrufen kann. Ich bekomme nur einen Fehlercode von 500 im Debug-Fenster von Chrome. Ich bin völlig ratlos, weil alles, was ich gelesen habe, sagt, das sollte völlig in Ordnung sein.

Ich bin völlig erschöpft von diesem, es hat mich bis zum Ende frustriert. Hoffentlich kann hier jemand helfen. Für die Aufzeichnung, es verbindet sich gut, es ist die Minute, die ich versuche, die Variablen $ SQL verwenden, dass alles auseinander fällt. Ich mache das auf GoDaddy Hosting, wenn das irgendwas bedeutet.

<?php 
$servername = "localhost"; 
$username = "joemama198"; 
$pass = "Password"; 
$dbname = "EmployeeTimesheet"; 

// Create connection 
$conn = mysqli_conect($servername, $username, $pass, $dbname); 
// Check connection 
if (mysqli_connect_errno) { 
    echo "Failed to connect to MySQL: " . mysqi_connect_error(); 
} 

$sql = 'SELECT Name FROM Employee List'; 
$result = mysqli_query($conn, $sql); 

    if (mysqli_num_rows($result) > 0) { 
     while($row = mysqli_fetch_assoc($result)) { 
      echo "Name: " . $row["Name"]. "<br>"; 
     } 
    } else { 
     echo "0 results"; 
    } 
    mysqli_close($conn); 

?>

+0

Können Sie Fehlermeldung anzeigen? –

+0

Wie lautet Ihr Datenbankname, da Sie 2 Namen nach FROM in '$ sql' verwenden? – Harish

+0

Meine Datenbank ist EmployeeTimesheet. Die Tabelle in dieser Datenbank, auf die ich zugreifen möchte, ist EmployeeList –

Antwort

0

Der Name Ihrer Datenbanktabelle in Ihrer SELECT-Anweisung hat einen Raum darin. Wenn das beabsichtigt ist, versuchen Sie:

$sql = 'SELECT Name FROM `Employee List`'; 
+0

Das wurde behoben, und mein Datenbankname wurde in phpMyAdmin geändert. immer noch nichts leider –

0

Ich denke, Sie haben Leerzeichen in Ihrer Abfrage verlassen.

$sql = 'SELECT Name FROM Employee List'; 

Änderung

$sql = "SELECT `Name` FROM `EmployeeList`"; 
+1

Upvoted, weil dies ein gültiger Punkt war und einen Fehler von 500 verursacht haben könnte, da die Abfrage als erfolgreich angenommen wurde. Die ursprüngliche Abfrage war ein impliziter Alias ​​(der gleiche wie 'SELECT \' Name \ 'FROM \' Mitarbeiter \ 'AS \' List \ ''), der fehlgeschlagen wäre, wenn es keine Tabelle namens "Employee" gäbe. – rickdenhaan

+0

Oh okay @rickdenhaan verstanden. –

1

da sein Problem hier:

// Create connection 
$conn = mysqli_conect($servername, $username, $pass, $dbname); 
// Check connection 
if (mysqli_connect_errno) { 
    echo "Failed to connect to MySQL: " . mysqi_connect_error(); 
} 

Es gibt drei Probleme hier:

  1. mysqli_conect() statt mysqli_connect() (man beachte den Doppel n in connect)
  2. mysqli_connect_errno eine Funktion sein sollte: mysqli_connect_errno()
  3. mysqi_connect_error() statt mysqli_connect_error() (man beachte die l in mysqli)

Der Grund sind Sie ein 500-Fehler bekommen, dass Sie nicht das Debuggen haben Sie aktiviert. Bitte fügen Sie die folgende an die Spitze des Skriptes:

ini_set('display_errors', 'on'); 
error_reporting(E_ALL); 

Die vom Erscheinen eines nicht-so-nützlich 500 Fehler verhindern soll, und stattdessen den tatsächlichen Grund für andere Fehler zeigen.

Es könnte ein Problem hier:

$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 

Wenn die Abfrage fehlschlägt, wird $resultfalse und Sie werden einen Fehler auf dem mysqli_num_rows() Anruf erhalten.Sie sollten zwischen dort eine Überprüfung hinzufügen:

$result = mysqli_query($conn, $sql); 

if (!$result) { 
    die('Query failed because: ' . mysqli_error($conn)); 
} 

if (mysqli_num_rows($result) > 0) { 
+0

DANKE !!!! Ich habe endlich meinen Code zur Arbeit bekommen. Auch diese Debug-Sache war wunderbar, der Fehler 500 war super nicht hilfreich. Ich habe diesen Code mit allen Rechtschreibfehlern kopiert und eingefügt. Ich werde öfter eine Rechtschreibprüfung durchführen müssen. Dies hat mich verrückt gemacht, vielen Dank –

+0

Froh, zu helfen :-) Denken Sie daran, für das nächste Mal, wenn Ihr Browser einen 500 Fehler zeigt, sollten Ihre Server-Protokolle den tatsächlichen Fehler enthalten. Keine Ahnung, wo GoDaddy diese aber speichert, oder ob sie überhaupt dort verfügbar sind. – rickdenhaan

Verwandte Themen