Wie frage ich alle meine MySQL-Zeilen ab, während eine gespeicherte Funktion mit einem reddit-basierten Algorithmus geändert wird?

StackOverflow https://stackoverflow.com/questions/8830092

Frage

Ich habe den ganzen Tag damit verbracht, diesen Code zu googeln, zu löschen und einzufügen. Ich habe versucht, eine reddit-ähnliche Site mit PHP und MySQL zu implementieren. Ich habe eine andere Frage verfolgt: Hilfe zum PHP MYSQL Query Algorithm und diese funktioniert sehr gut und ordnet Zeilen gemäß dem in der vorherigen Frage in myphpadmin codierten Algorithmus, wenn ich eine gespeicherte Funktion abfrage

SELECT
*,
reddit_rank(`time_added`, `up_votes`, `down_votes`) as rank
FROM
`table`
ORDER BY
rank;

, aber wenn ich die Abfrage in meine PHP-Datei einfüge:

<?php 
include("config.php");
$q= "SELECT *,reddit_rank(`time` , `votes_up` , `votes_down`) FROM `wallposts` ORDER BY rank LIMIT 0 , 30";
$r = mysql_query($q);
if(mysql_num_rows($r) > 0) {
while($row = mysql_fetch_assoc($r)){
...?>

Es funktioniert nicht und ich bekomme einen weißen HTML-Bildschirm. Also zum Beispiel in meinem PHP, wenn ich habe

$q = "SELECT * FROM wallposts ORDER BY votes_up DESC"; 

Meine reddit / facebook-ähnliche Pinnwand hat jede meiner Zeilen vor MySQL gestellt und alles funktioniert einwandfrei. aber wenn ich es auf ändere

$q= "SELECT *,reddit_rank(`time` , `votes_up` , `votes_down`) FROM `wallposts` ORDER BY rank LIMIT 0 , 30"; 

Die Webseite gibt nur einen weißen Bildschirm zurück, obwohl ich weiß, dass sie in myphpadmin funktioniert.

Stimmt etwas mit meiner Syntax nicht oder ist es nicht möglich, eine Auswahl aller mit einer gespeicherten Funktion abzufragen, um die Ergebnisse in PHP zu ordnen?

War es hilfreich?

Lösung

Ich glaube, ich habe eine Lösung gefunden, indem ich eine Ansicht erstellt und diese Ansicht dann anstelle der ursprünglichen Tabelle abgefragt habe.Nachdem ich die gespeicherte Funktion in myphpadmin abgefragt habe:

SELECT
*,
reddit_rank(`time_added`, `up_votes`, `down_votes`) as rank
FROM
`table`
ORDER BY
rank; 

Ich habe dann eine Ansicht erstellt, nachdem diese Ergebnisse zurückgegeben wurden.Anstatt in meiner PHP-Datei auf die gleiche Weise abzufragen, habe ich die neue MySQL-Ansicht mit folgenden Abfragen abgefragt:

SELECT * FROM [view] ORDER BY rank

Voila!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top