MySQL e PHP: script particolare per vBulletin!

Mad_Griffith

Nuovo Utente
8 Dic 2005
26
0
0
Salve ragazzi, avrei un problemino con PHP e MySQL... non so quale sia il codice da inserire in un file .php che mi permetta di estrarre dal database MySQL gli ultimi post del mio forum (anch'esso vBulletin). Mi serve per richiamare in un template la suddetta pagina .php (anche questo non so farlo).

Su vBulletin.com non sanno aiutarmi e su vBulletin.org non c'è un hack che corrisponda a quello che mi servirebbe... c'è qualcuno così gentile da darmi una mano? :)

Grazie in anticipo ;)
 
Ciao, intanto grazie mille per il link! :o

Una cosa però. All'inizio del thread si legge "Near the top of your php page, but after the <?php code include the following":

di quale "php page" sta parlando?

p.s. io ne dovrei creare più d'uno di questi richiami all'rss! come faccio? qual'è la variabile che devo modificare nel codice presente nel link che mi hai postato?

Grazie!
 
Ultima modifica:
Riposto perchè ho capito di cosa si tratta, solo che non è quello che chiedo.

In quel thread è spiegato come portare da SQL a una pagina esterna i 10 thread. A me però serve richiamare la pagina esterna in un template, ma la variabile, messa in un template, non funge...:dipser:
 
Ho trovato un'altra soluzione in giro ma purtroppo non funziona per una riga... se potete dargli uno sguardo, mi fareste un favore! Ecco quello che dice la fantomatica soluzione:

mettere in un file ultimitopic.php questo codice, modificando i vari dati SQL:

Codice:
<?php
require("http://www.unprogged.com/forums/includes/config.php");
$servername = $config['MasterServer']['xxxxxx'];
$dbusername = $config['MasterServer']['xxxxx'];
$dbpassword = $config['MasterServer']['xxxxx'];
$dbname = $config['Database'][xxxxx'];
[B]$db = mysql_connect($servername,$dbusername,$dbpassword)or die("Can't open connection to MySQL");[/B] 
mysql_select_db($dbname) or die("Can't select database");
$query = mysql_query("SELECT * FROM thread WHERE visible=1 AND forumid =29 ORDER BY lastpost DESC LIMIT 10");
$last = "document.write(\"<marquee onmouseover=this.stop() onmouseout=this.start() dir='rtl' direction='right' scrollAmount='3' scrolldelay='20'>";
while($thread = mysql_fetch_array($query)){
$last .= "<a href='showthread.php?goto=lastpost&t=$thread[threadid]' title='Last post by $thread[lastposter]' target='_blank'><font color='navy'>$thread[title]</font></a>&nbsp;&nbsp;&nbsp;&nbsp;<font color='#448CCB'>¤¤</font>&nbsp;&nbsp;&nbsp;&nbsp;";
}
$last .= "</marquee>\");";
mysql_close($db);
echo $last;
?>

Richiamare il file ultimitopic.php nel template con un iframe.

Fatto ciò, quando vado a verificare mi viene restituito questo errore all'interno dell'iframe:

Warning: mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in /web/htdocs/www.unprogged.com/home/usciterecenti.php on line 7
Can't open connection to MySQL

La linea 7 è quella che ho messo in grassetto nel codice.

Aiutatemi plz...!
 
Ciao, grazie, ho scaricato il file, ma non ci sono istruzioni su come usarlo?

Cioè, vedo che ci sono le istruzioni inserite, però non so dove andare a mettere lì dentro i miei dati SQL, dove impostare di quale forum dovranno esser mostrati i thread... in che parte del codice posso modificare queste cose?

Grazie ancora!
 
Non hai da configure nulla.
Potresti aver da modificare due cose:
alla linea 40
PHP:
var $location = '/';
e quì dovresti modificare la posizione del tuo forum (se hai il forum nella directory: /forum/, metti /forum/).

e alla linea 346:
PHP:
include_once './includes/config.php';
che, come c'è scritto potrebbe essere da modificare il percorso, (tranne che se metti il file nella stessa directory del forum (la root del forum).

Ripeto: c'è tutto scritto... in Italiano per giunta.
 
Ultima modifica:
Ciao, grazie per le risposte.:o

Però ho dei piccoli problemi:

1) Ho sistemato quello che mi hai scritto, ma non so a che riga devo cercare per settare i dati dell'SQL. Infatti ora come ora mi viene mostrato quest'errore all'interno dell'iframe il cui "src" è il file .php che mi hai fatto scaricare:

Si sono verificati 3 errori:

* Non è stato inserito un server valido per la connessione al databse MySQL.
* Non è stato inserito un username valido.
* Non è stato inserito il del database.

2) Devo includere il file con un iframe, giusto? C'è qualche altro modo eventualmente? Se sì, quali e come si procederebbe?

3) Devo creare tre sezioni da cui trarre gli ultimi post. Uno che tragga dal forum delle recensioni (f=29), un altro dalle news (f=34) e un altro dagli annunci (f=18). Posso arguire che devo creare tanti file quante sono le stanze da cui voglio "trarre" i topic... ma come faccio? cosa modifico?

Grazie molte per il tuo supporto! :)
 
Mi spiace, non avevo capito di cosa tu avessi bisogno.
Gli ultimi (X) messaggi vengono selezionati da tutti i forum!

La possibilità di scegliere il forum dal quale selezionare i messaggi non è presente nell'applicazione.
Comunque, a breve questa funzione verrà implementata.
 
Ultima modifica:
capisco... quindi io per ora non ho modo di far nulla :(

avevo un codice da parte, però era composto in modo tale che funzionasse con MyBB. Me l'ha fatto un amico, puoi dargli uno sguardo veloce? Credo ci siano poche cose da cambiare... a sapere cosa...:o

Codice:
<?php
require("./global.php");
$fid = "37"; // L'id del forum da cui trarre i post

$query = $db->query("SELECT * FROM ".TABLE_PREFIX."threads WHERE fid='$fid' ORDER BY `tid` DESC LIMIT 0,10");
while ($item = $db->fetch_array($query)) {
if (strlen($item['subject']) > 33) { $subject = substr($item['subject'], 0, 32)."..."; } else { $subject = $item['subject']; }
$tid = $item['tid'];
$subject = stripslashes($subject);

//$lastpostdate = mydate($settings['dateformat'], $item['dateline']);
//$time = $lastpostdate."";

$data = $item["dateline"];
$data = mydate("d/m", $data);

echo "<style type=\"text/css\">
<!--
.style3 {
	color: #CCCCCC;
	font-size: 9px;
	font-family: Verdana;
	font-weight: bold;
}

.style1 {
	color: #FFFFFF;
	font-size: 9px;
    font-family: Verdana;
	font-weight: bold;
}
-->
</style>
<body STYLE=\"background-color:transparent\"><table width=\"100%\"  border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
  <tr>
    <td><div align=\"left\">
        <!--<li style=\"color:#999999\" type=\"square\">--><span class=\"style1\">$data</span> <a href=\"http://www.unprogged.com/showthread.php?tid=$tid\" target=\"_parent\" class=\"style3\">$subject</a></li>
        </li>
      </div></td>
  </tr>
</table></body>";
}
?>
 
Grazie mille! Però le domande che ho posto ieri si ripropongono...

1) Ho sistemato quello che mi hai scritto, ma non so a che riga devo cercare per settare i dati dell'SQL e non so come modificare. Infatti ora come ora mi viene mostrato quest'errore all'interno dell'iframe il cui "src" è il file .php che mi hai fatto scaricare:

Si sono verificati 3 errori:

* Non è stato inserito un server valido per la connessione al databse MySQL.
* Non è stato inserito un username valido.
* Non è stato inserito il del database.

2) Devo includere il file con un iframe, giusto? C'è qualche altro modo eventualmente? Se sì, quali e come si procederebbe?

La terza domanda è cambiata...

3) Ho modificato la var forumid così... però ho buttato più o meno a caso:

Codice:
var $forumid = '29';

può andare?

Mi spiace di rompere così tanto, capisco che c'è scritto tutto sulle note ma di php non so nulla! Non so neanche la punteggiatura... :(
 
Guarda, se tu segui quello che c'è scritto, le cose funzionano, evidentemente fai di testa tua e/o salti qualche passaggio.

Comunque io ho parecchio da fare, non posso mica compilarti lo script per filo e per segno!
 
capisco, scusami... il fatto è che non riesco a comprendere quello che c'è scritto perchè non ho esperienze se non molto marginali con questo codice.

Per esempio, non riesco a capire a cosa ti riferisci qua, non mi ci ritrovo!

Codice:
	 * Se impostato dalla funzione set_ForumID([forumid]) seleziona
	 * gli ultimi messaggi solo del forum [forumid].

ma che è la funzione set_forumid? Dove sta? L'ho cercata nel file ma non c'è...

Fermo restando che non finirò mai di ringraziarti per il tempo che fin'ora hai impiegato per lavorarci sopra e rispondermi fino ad adesso.

Quindi un grosso GRAZIE! :byebye:
 

Discussioni simili