Comment puis-je interroger sélectionner toutes les lignes de mon mysql sous la modification d'une fonction stockée avec un algorithme basé sur reddit-?

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

Question

J'ai passé toute la journée googler et la suppression et l'insertion d'essayer de mettre en œuvre ce code. J'ai essayé de mettre en place un site comme reddit en utilisant php et mysql. J'ai suivi une autre question: PHP MYSQL Recherche algorithme d'aide et fonctionne très bien et se classe rangées selon l'algorithme codé dans la question précédente au sein myphpadmin quand j'Interroger une fonction stockée

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

, mais quand je colle la requête dans mon fichier php:

<?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)){
...?>

Il ne fonctionne pas et je reçois un écran HTML blanc. Ainsi, par exemple dans mon PHP quand j'ai

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

mon reddit / facebook-like mur a préfixé chacun de mes lignes de MySQL et tout fonctionne très bien. mais quand je change à

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

RETURNS de page Web, mais rien d'un écran blanc, même si je sais que cela fonctionne dans myphpadmin.

Y at-il quelque chose de mal avec ma syntaxe ou est-il pas possible d'interroger tout sélectionner une fonction stockée pour commander les résultats en php?

Était-ce utile?

La solution

Je pense avoir trouvé une solution en créant une vue, puis en interrogeant ce point de vue au lieu de la table d'origine. Après avoir interrogé la fonction stockée dans myphpadmin:

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

J'ai ensuite créé une vue après ces résultats ont été retournés. Ensuite, au lieu d'interroger la même manière dans mon fichier PHP, j'interroge sur la nouvelle vue MySQL avec:

SELECT * FROM [view] ORDER BY rank

Voila!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top