2017-12-20 16 views
-3

Wie Sie die Anzahl der Zeilen zählen, in denen ein bestimmtes Wort angezeigt wird, und eine Tabelle mit allen Ergebnissen anzeigen. Ich bekomme gerade eine leere Seite.Anzahl der Zeilen zählen, in denen eine Variable angezeigt wird

+1

Eine völlig leere Seite klingt wie ein Fehler. Schalten Sie PHP-Fehlerberichte ein, überprüfen Sie Ihre PHP-Fehlerprotokolle usw. – David

+1

Überprüfen Sie im Handbuch, was '$ boatname' aus dieser Codezeile' $ boatname = $ conn-> query ($ query) sein wird; 'und es sollte sein ziemlich offensichtlich, was falsch – RiggsFolly

+1

Auf einer Randnotiz, verwenden Sie nie mysqli_num_rows: Es ist entweder [überflüssig oder schädlich] (https://phpdelusions.net/top#num_rows). In Ihrem Fall sollte es SELECT COUNT (*) Abfrage sein (und eine vorbereitete Anweisung natürlich) –

Antwort

0

1: Falls Sie Fehler haben, überprüfen Sie immer die Fehlerprotokolle Ihres Servers. Das wird dir die genaue Antwort sagen.

2: Abfrage gibt ein mysql_result zurück, das Sie weiter verarbeiten müssen. $boatname = $conn->query($query); weist der Variablen ein mysql_result-Objekt zu, dann wird "SELECT * FROM SpeciesHunt WHERE BoatName = '$boatname'" versuchen, es in eine Zeichenfolge zu konvertieren, aber es wird ein Fehler in PHP ausgelöst. Wahrscheinlich ist das dein Problem.

Versuchen Sie $boatname = $conn->query($query)->fetch_object()->BoatName. Dies ruft die Ergebnisse der Abfrage in ein Array von Objekten ab, wählt dann den 0. Index aus und ruft dann das Element BootName ab.

übrigens, ich kenne Ihr Ziel hier nicht, aber der Code, den ich lieferte, wird den Bootsnamen aus der ersten Reihe bekommen. Wenn es mehr als einen BoatName gibt und Sie jeden von ihnen bearbeiten möchten, müssen Sie ihn in eine Schleife einfügen. oder alternativ können Sie die folgende Abfrage verwenden dann die Ergebnisse in den

SELECT 
    COUNT(SpeciesHunt.id) AS NumberOfSpecies, 
SpeciesHuntBoats.BoatName 
FROM SpeciesHunt 
LEFT JOIN SpeciesHuntBoats 
    ON SpeciesHuntBoats.BoatName = SpeciesHunt.BoatName 
GROUP BY SpeciesHunt.BoatName; 

drucken dann zu einem Tisch Tisch gelegt:

echo "<table><tr><th>Boat Name</th><th>Number of Species</th></tr>"; 
while($row = $result->fetch_assoc()) { 
    echo "<tr><td>" . $row["BoatName"] . "</a></td><td>" . $row["NumberOfSpecies"]. "</td>/tr>"; 
} 

echo "</table>"; 
+0

Hallo domdetre, Sie haben Recht - das ist die Problemlinie, die es scheint, wenn ich auf das Fehlerprotokoll schaue. Weißt du, was die Linie sein sollte? Ich versuche, dies als einen Gefallen für einen Club zu bauen, ich helfe aber kämpfe! Vielen Dank für Ihre Zeit. – OliVQ

+0

Der Grund, warum ich zum ersten Mal nicht geantwortet habe, ist, weil ich annahm, dass Sie bereits wissen, wovon ich rede, da Sie die Ergebnisse einer Abfrage bereits in der while-Schleife abrufen. – domdetre

+0

Danke, leider ist es nicht mein Fachgebiet überhaupt, ich versuche mich nur so gut wie möglich an die Universitätstage zu erinnern! Ich habe die Zeile geändert, obwohl der Fehler jetzt ist: Schwerwiegender Fehler: Kann nicht Objekt des Typs stdClass als Array verwenden – OliVQ

Verwandte Themen