Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..
Gracias.
La Administración de phpBB España.
consulta mysqlTema Solucionado
-
- Mensajes: 48
- Registrado: 23 Nov 2010, 15:46
Re: consulta mysql
Aja todo aclarado voy a probar...
URL: http://amsspecialist.com
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
-
- Mensajes: 48
- Registrado: 23 Nov 2010, 15:46
Re: consulta mysql
Probado, funciona correctamente... solo por rizar el rizo decir que se situa en la ultima pagina de post pero el scroll arriba y no al final XD , es esto mucho pedir?
URL: http://amsspecialist.com
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Re: consulta mysql
Qué? es que después de todo, ni siquiera nos has mostrado que es lo que estas haciendo.rafaxplayer escribió:Probado, funciona correctamente... solo por rizar el rizo decir que se situa en la ultima pagina de post pero el scroll arriba y no al final XD , es esto mucho pedir?
-
- Mensajes: 48
- Registrado: 23 Nov 2010, 15:46
Re: consulta mysql
Cierto, lo siento...Alorse escribió:Qué? es que después de todo, ni siquiera nos has mostrado que es lo que estas haciendo.rafaxplayer escribió:Probado, funciona correctamente... solo por rizar el rizo decir que se situa en la ultima pagina de post pero el scroll arriba y no al final XD , es esto mucho pedir?
Bueno estoy haciendo una extensión de chrome que accede a mi foro, uso dos php :
uno para contar los mensajes nuevos que ha quedado así:
Código: Seleccionar todo
<?php
header("Expires: Sun, 19 Nov 1978 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
include("config.php");
mysql_select_db($dbname,mysql_connect($dbhost,$dbuser,$dbpasswd));
$userdata = mysql_fetch_array(mysql_query("SELECT * FROM phpbb_users WHERE username_clean='".mysql_real_escape_string(strtolower($_GET['id']))."' LIMIT 1"));
if ($userdata!=false) {
$query = mysql_query("SELECT t.topic_id, t.topic_last_post_time, tt.mark_time as topic_mark_time, ft.mark_time as forum_mark_time
FROM (phpbb_topics t) LEFT JOIN phpbb_topics_track tt
ON (tt.user_id = " . $userdata['user_id'] . "
AND t.topic_id = tt.topic_id) LEFT JOIN phpbb_forums_track ft
ON (ft.user_id = " . $userdata['user_id'] . "
AND t.forum_id = ft.forum_id) WHERE t.topic_last_post_time > " . $userdata['user_lastvisit'] ."
AND(
(tt.mark_time IS NOT NULL AND t.topic_last_post_time > tt.mark_time) OR
(tt.mark_time IS NULL AND ft.mark_time IS NOT NULL AND t.topic_last_post_time > ft.mark_time) OR
(tt.mark_time IS NULL AND ft.mark_time IS NULL)
)
AND t.topic_moved_id = 0 ");
$fi=0;
while ($data=mysql_fetch_array($query)) {
$query2=mysql_query("SELECT post_id FROM phpbb_posts WHERE topic_id='".$data["topic_id"]."' AND post_time > '".$userdata['user_lastvisit']."'");
while ($data2=mysql_fetch_array($query2)) {
$fi++;
}
}
}else{
$fi=0;
}
echo $fi;
?>
Código: Seleccionar todo
<html><head><title>AMSSpecialist</title>
<style>
a:link {
color: #666;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #666;
}
a:hover {
text-decoration: none;
color: #666;
}
a:active {
text-decoration: none;
color: #666;
}
body,td,th {
font-family: Verdana, Geneva, sans-serif;
font-size: 10px;
}
</style>
</head>
<body style="background-color:#e9e9e9; margin:0px; padding:0px; font: Verdana 10px;">
<?php
include("config.php");
mysql_select_db($dbname,mysql_connect($dbhost,$dbuser,$dbpasswd));
$userdata = mysql_fetch_array(mysql_query("SELECT * FROM phpbb_users WHERE username_clean='".mysql_real_escape_string(strtolower($_GET['id']))."' LIMIT 1"));
if ($userdata!=false) {
$query = mysql_query("SELECT t.topic_title, t.topic_id, t.topic_last_poster_name, t.topic_last_post_id, t.topic_last_post_time, t.forum_id, tt.mark_time as topic_mark_time, ft.mark_time as forum_mark_time
FROM (phpbb_topics t) LEFT JOIN phpbb_topics_track tt
ON (tt.user_id = " . $userdata['user_id'] . "
AND t.topic_id = tt.topic_id) LEFT JOIN phpbb_forums_track ft
ON (ft.user_id = " . $userdata['user_id'] . "
AND t.forum_id = ft.forum_id) WHERE t.topic_last_post_time > " . $userdata['user_lastvisit'] ."
AND(
(tt.mark_time IS NOT NULL AND t.topic_last_post_time > tt.mark_time) OR
(tt.mark_time IS NULL AND ft.mark_time IS NOT NULL AND t.topic_last_post_time > ft.mark_time) OR
(tt.mark_time IS NULL AND ft.mark_time IS NULL)
)
AND t.topic_moved_id = 0 ");
while ($data=mysql_fetch_array($query)) {
$query2=mysql_query("SELECT post_id FROM phpbb_posts WHERE topic_id='".$data["topic_id"]."' AND post_time > '".$userdata['user_lastvisit']."'");
$fi=0;
while ($data2=mysql_fetch_array($query2)) {
$fi++;
}
echo "<div style='position:relative; width:500px; height:20px; overflow:hidden; background:url(bjk.png) no-repeat;'>";
echo "<div style='position:absolute; left:7px; top:3px; color:#fff; font-weight:bold;'>".$fi."</div>";
echo "<div style='position:absolute; left:24px; top:3px;'><a href='http://www.amsspecialist.com/viewtopic.php?f=".$data["forum_id"]."&t=".$data["topic_id"]."&p=".$data["topic_last_post_id"]."#p=".$data["topic_last_post_id"]."' target='_blank'><b>".$data["topic_title"]."</b></a></div>";
echo "<div style='position:absolute; left:410px; top:3px; color:#0b75e0;'>".$data["topic_last_poster_name"]."</div>";
echo "</div>";
}
} else{
echo 'No user data, use RSS';
}
?>
</body>
</html>

Nota: Si queréis todo el source, lo cuelgo.
URL: http://amsspecialist.com
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Re: consulta mysql
Si se sitúa en la pagina que es y al final tiene el #p, debería situarse exactamente en el mensaje que corresponde, no arriba ni al final, aunque si el mensaje es el primero pues si se situa al principio.rafaxplayer escribió:se situa en la ultima pagina de post pero el scroll arriba y no al final
-
- Mensajes: 48
- Registrado: 23 Nov 2010, 15:46
Re: consulta mysql
Bueno a mi este el post en la posición que este me sitúa al principio del topic , como ves la url es la del segundo php , supongo que #p requiere la id del post, no?.
URL: http://amsspecialist.com
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Re: consulta mysql
Si claro, requiere la id del mensaje (post) para poder que lo ubique en el.rafaxplayer escribió:supongo que #p requiere la id del post, no?.
-
- Mensajes: 48
- Registrado: 23 Nov 2010, 15:46
Re: consulta mysql
Pues no hace lo dichoAlorse escribió:Si claro, requiere la id del mensaje (post) para poder que lo ubique en el.rafaxplayer escribió:supongo que #p requiere la id del post, no?.

URL: http://amsspecialist.com
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
-
- Mensajes: 48
- Registrado: 23 Nov 2010, 15:46
Re: consulta mysql
Saludos compañeros , retomo el tema de la consulta anterior porque pensaba que estaba todo solucionado y así lo parecía hasta ahora.
Resulta que la consulta me cuenta los post no leídos desde ultima visita y funciona perfecto e incluso cuando los voy leyendo y haciendo la consulta el contador baja según leo , todo correcto , el problema es cuando en el indice uso el enlace de marcar todos los foros como leidos , lo normal seria que la consulta me retornara 0 post sin leer desde ultima visita no? ,pues no ,me retorna los mismos que había al principio y esto no se arregla hasta que no me deslogueo del foro , espero me hayáis entendido sobre todo tu alorse que eres el autor de la estupenda query que me soluciono casi todo mi script , un saludo
Resulta que la consulta me cuenta los post no leídos desde ultima visita y funciona perfecto e incluso cuando los voy leyendo y haciendo la consulta el contador baja según leo , todo correcto , el problema es cuando en el indice uso el enlace de marcar todos los foros como leidos , lo normal seria que la consulta me retornara 0 post sin leer desde ultima visita no? ,pues no ,me retorna los mismos que había al principio y esto no se arregla hasta que no me deslogueo del foro , espero me hayáis entendido sobre todo tu alorse que eres el autor de la estupenda query que me soluciono casi todo mi script , un saludo
URL: http://amsspecialist.com
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Re: consulta mysql
Bueno, eso vuelve la cosa mucho más compleja... mejor hagamos algo nuevo, primero que todo... dime donde estas usando esta consulta? nunca nos has mostrado funcionando el script.
Luego has unQuedaría así:
Eso no recuerdo que es lo que te retorna, pero ya miraras y sabrás que hacer, además ya retorna sin el problema de la sesión.
Muéstranos el script y dinos que tal te fue.
PD: Debes borrar la consulta que hicimos con anterioridad.
Luego has un
import
al archivo includes/functions.php del foro y llama la función get_unread_topics()
a la cual debes pasarle 4 parámetros, $userdata['user_id']
, $sql_extra
, $sql_sort
y $sql_limit
, estos últimos 3 ya los tienes, serian:
Código: Seleccionar todo
$sql_extra = 'AND t.topic_moved_id = 0';
$sql_sort = 'ORDER BY t.topic_last_post_time DESC';
$sql_limit = 10;
Código: Seleccionar todo
$fi = get_unread_topics($userdata['user_id'], $sql_extra, $sql_sort, $sql_limit);
Muéstranos el script y dinos que tal te fue.
PD: Debes borrar la consulta que hicimos con anterioridad.
-
- Mensajes: 48
- Registrado: 23 Nov 2010, 15:46
Re: consulta mysql
Bueno decirte que ya explique donde uso la consulta , es en una extension de chrome la cual llama al php que te mostré anteriormente para saber los post nuevos del usuario que se define mediante el nombre solamente en la extensión , todo esto funciona sin sessiones en el phpbb .
La función que me comentas ya la use y el problema que me da es que necesita session del usuario porque ademas del user_id del parámetro que necesita después usa otros valores del user->data dentro de ella , y por eso da errores si la llamo como tu dices, lo ideal y ese es mi problema con estas consultas es adaptar la consulta que hay dentro de la función a su uso sin session de ususario como hiciste en las anteriores
y obtener el array del get_unreadpost .
Si hacemos esto luego solo seria hacer una consulta para saber los post desde ultima visita sobre los post id del array dicho.
bueno por si sirve de algo muestro el codigo javascript que uso para llamar al php de la consulta en mi extension de chrome:
La función que me comentas ya la use y el problema que me da es que necesita session del usuario porque ademas del user_id del parámetro que necesita después usa otros valores del user->data dentro de ella , y por eso da errores si la llamo como tu dices, lo ideal y ese es mi problema con estas consultas es adaptar la consulta que hay dentro de la función a su uso sin session de ususario como hiciste en las anteriores
y obtener el array del get_unreadpost .
Si hacemos esto luego solo seria hacer una consulta para saber los post desde ultima visita sobre los post id del array dicho.
bueno por si sirve de algo muestro el codigo javascript que uso para llamar al php de la consulta en mi extension de chrome:
Código: Seleccionar todo
var NEWPOST={color:[12,180,37,255]};
var NOPOST={color:[255, 0, 0, 255]};
chrome.browserAction.setBadgeBackgroundColor(NOPOST);
seticon();
function setbadge(num){
if (parseInt(num)>0){
chrome.browserAction.setBadgeBackgroundColor(NEWPOST);
}
else{
chrome.browserAction.setBadgeBackgroundColor(NOPOST);
}
chrome.browserAction.setBadgeText({text:num});
}
function seticon(){
nowDate = new Date();
if((nowDate.getMonth()== 0 && nowDate.getDate()<= 7) || (nowDate.getMonth()== 11 && nowDate.getDate() > 23 )){
chrome.browserAction.setIcon({"path":"images/amssp_navidad.png"});
localStorage.icon="images/amssp_navidad.png"
}else{chrome.browserAction.setIcon({"path":"images/amssp.png"});
localStorage.icon="images/amssp.png"}
}
function playSound(soundUrl){
var sound = new Audio(soundUrl);
if(sound && JSON.parse(localStorage.PlaySounds)){
sound.play();
}
}
var req = new XMLHttpRequest();
function getlastpost(){
if (req != null) {
req.open(
"GET",
"http://www.amsspecialist.com/unread_count.php?id=" + localStorage.user,
true);
req.onreadystatechange = show;
req.send(null);
}else{
localStorage.numpost = 0;
setbadge(localStorage.numpost);
}
window.setTimeout(function(){getlastpost();},5000);
}
function show(){
if (req.readyState == 4 ) {
if (req.status == 200) {
localStorage.numpost=(isNaN(parseInt(req.responseText)) || req.responseText =='undefined' ? 0 : parseInt(req.responseText));
setbadge(localStorage.numpost);
//chrome.browserAction.setBadgeText({text:localStorage.numpost});
Notifishow(localStorage.numpost);
localStorage.lastnumpost=localStorage.numpost;
}
}
}
function Notifishow(num) {
var post = (num-localStorage.lastnumpost);
var notification = window.webkitNotifications.createNotification(
'images/amssp.png',
chrome.i18n.getMessage('new_post'),
chrome.i18n.getMessage('new_post_public').replace('#',post)
);
if ( num > localStorage.lastnumpost){
if(JSON.parse(localStorage.Notify)){
notification.ondisplay = playSound('sounds/Mouth.mp3');
//notification.onclick = playSound('sounds/Boop.ogg');
notification.show();
if(JSON.parse(localStorage.NotifyHidde)){
window.setTimeout(function(){notification.close();},15000);
}
}
}
}
getlastpost();
URL: http://amsspecialist.com
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No
Versión phpBB: phpBB3 (3.0.11-PL1)
MODs Instalados:
- SyntaxHighlighter 1.0.12
- Very Simple Guest Hide BBCode MOD 1.0.1
Plantilla(s) usada(s): Comboot Freee
Servidor: Gratuito
Actualización desde otra versión: No
Conversión desde otro sistema de foros: No