"i più visti!"

filipposky

Nuovo Utente
29 Mar 2010
11
0
0
Salve a tutti!
La mia credo sia una domanda semplice per voi.. !
Ho una tabella MOVIE e un campo VISTI nel mio database. Vorrei mettere sul mio sito un link "i Più visti" in modo che clikkandovi e con il controllo sul quel campo mi venga restituita una lista dei Movie più visti.
So mooolto poco di php!
Dovrei poi avere un altra funzione che mi lista invece quelli consigliati! Ma spero di adeguarmi a quello che saprete consigliarmi!!
Grazie
Se possibile, mi servirebbe l'intera query!:confused:

Filippo
 
Eccoti la query per estrarre i 10 più visti:

Codice:
SELECT * FROM movie ORDER BY visti DESC LIMIT 10

Ciao
 
ciao
non è che devi mettere la query nel link, ma da quello che ho capito tramite il link
vuoi avere un elenco diverso (giusto?).
un metodo potrebbe essere questo (anche se tiro un po' ad indovinare non sapendo come è strutturata la tabella ecc...)

fai i classici link

HTML:
<a href="elenco.php?scelta=0">tutti</a>
<a href="elenco.php?scelta=1">più visti</a>
<a href="elenco.php?scelta=2">consigliati</a>

poi la parte php
PHP:
<?php
//tralascio i controlli necessari sul $_GET
$ho_scelto=$_GET['scelta'];
//in funzione di scelta faccio la query
switch($ho_scelto){
	case "0"://ho scelto di vedereli tutti
		$query_str="SELECT * FROM movie ORDER BY titolo";
	break;
	case "1"://ho scelto di vedere i più visti (la query di max)
		$query_str="SELECT * FROM movie ORDER BY visti DESC LIMIT 10";
	break;
	case "1"://ho scelto di vedere i consigliati (se consiglio è una specie di voto)
		$query_str="SELECT * FROM movie ORDER BY consiglio";
	break;
}//fine switch
//connessione al db ecc......
 
Grandissimo grazie!
Anche se a dirti la verità non so proprio come inserirlo!
Provo a dirlo!
intanto la mia tabella è strutturata in questo modo :

Nome MOVIE, uno dei campi è VISTO, uno è CONSIGLIATO ecc.

Allora io collego i miei link a "elenco.php?scelta=x" .

Poi devo farmi un file elenco.php dove eseguo la connessione al DB e inserisco lo script che mi hai dato.

Nel file principale faccio l'inclusione del file elenco.php?:confused:

E Poi però dovrei formattare il tutto nel modo delle altre liste che ho..!
 
in che senso formattare per le altre liste??
Quante tabelle MOVIE hai nel DB?? Forse ti stai perdendo in un bicchiere d'acqua...

Quello che ti ha postato borgo italia è tutto quello che ti serve... credo...

HTML:
<a href="elenco.php?scelta=0">tutti</a>
<a href="elenco.php?scelta=1">più visti</a>
<a href="elenco.php?scelta=2">consigliati</a>
Cliccando su "Tutti" nel file elenco arriva come valore di $_GET['scelta'] lo 0...
quindi con:
PHP:
switch($_GET['scelta']){
    case "0"://ho scelto di vedereli tutti
        $query_str="SELECT * FROM movie ORDER BY titolo";
    break;
    case "1"://ho scelto di vedere i più visti (la query di max)
        $query_str="SELECT * FROM movie ORDER BY visti DESC LIMIT 10";
    break;
    case "1"://ho scelto di vedere i consigliati (se consiglio è una specie di voto)
        $query_str="SELECT * FROM movie ORDER BY consiglio";
    break;
}//fine switch

selezioni i record della tabella MOVIE che ti interessano...
dopo lo switch estrai i campi che ti servono:
PHP:
$result = mysql_query($query_str) or die(mysql_error());
while($row = mysql_fetch_object($result)) {
echo 'nome: '.$row->nome.'<br>';
}
dove ->nome è il nome del campo che contiene il titolo ad esempio...

non so se è questo che ti serviva...
 
ciao
puoi fare anche tutto in una pagina, o su due pagine diverse, se fai tutto in una pagina
dovresti separare i link dall'elenco tramite div+css (questi DOVRESTI conoscerli),
comunque se fai una pagina unica (es chiamata elenco.php) ti convine fare in questa maniera

PHP:
<div id="posizioneDestra"></div>
<a href="elenco.php?scelta=0">tutti</a>
<a href="elenco.php?scelta=1">più visti</a>
<a href="elenco.php?scelta=2">consigliati</a>
</div>
<div id="posizioneSinistra">
<?php
if(isset($_GET['scelta']){//verifico se è stato cliccato un link
	$ho_scelto=htmlspecialchars($_GET['scelta']);//leggo e lo ripulisco da entuali codici malevoli
}else{//se provengo da qualche altra pagina
	$ho_scelto="0";//comunque presento l'elenco
}//fine if-else get
//faccio la selezione come già ti ho indicato
switch($ho_scelto){ 
    case "0"://ho scelto di vedereli tutti 
        $query_str="SELECT * FROM movie ORDER BY titolo"; 
    break; 
    case "1"://ho scelto di vedere i più visti (la query di max) 
        $query_str="SELECT * FROM movie ORDER BY visti DESC LIMIT 10"; 
    break; 
    case "2"://ho scelto di vedere i consigliati (se consiglio è una specie di voto) 
        $query_str="SELECT * FROM movie ORDER BY consiglio"; 
    break; 
}//fine switch 
//e proseguo con tutto il resto
//qui i dati di connessione al db
//e faccio la query in funzione della stringa da switch
$query=mysql_query($query_str) or die ("errorere di connessione");
//prima di presentare i dati ti conviene cedere se esistono
$esistono=mysql_num_rows($query);
if($esistono==0){//se 0 non esistono
	echo "non ci sono video catalogati";
}else{
	//presenti i video con il classico while e _fetch_array............
}//fine if-else esistono
//ecc.... se ti serve
?>
</div>

mi sembra che dai commenti tu possa sviluppare il tutto


p.s.
verifica che non abbia fatto qualche errore di scrittura (capita)
p.s. al p.s.
non avevo visto il post di lakanka
 
Ragazzi siete fantastici, di sicuro Lakanka sto annegando in quel bicchiere d'acqua!! e non ne uscirò lo so!!:D

Allego un immagine del db.
Io ho uno script e una formattazione (css ecc) che mostra già i video che ho in archivio. però come da oggetto del thread vorrei mettere i PIU' VISTI E I CONSIGLIATI.

Cercherò con quel pò di lucidità che mi è rimasta di elaborare i vostri consigli..

Mi sfugge la connessione al DB, possibile che basti : include("dbconn.inc.php"); dove dentro c'è effettivamente la connessione?
 

Allegati

  • db.jpg
    db.jpg
    35,1 KB · Visite: 178
ciao
si basta l'include se nel file dbconn.inc.php hai dentro i dati che ti servono per connetterti pass user host.....
comunque è meglio che tu scriva

include_once "dbconn.inc.php";

o il require

require_once "dbconn.inc.php";

l'once serve per evitare i "includere" più volte lo stesso file
 
ok grazie fatto!

provo a ragionare un attimo :

ammettiamo che svolga tutto in una pagina. la mia pagina si chiama mov_front.php.
Avrei i link in questo modo:

<div >
<a href="mov_front.php?scelta=0" >Tutti</a>
<a href="mov_front.php?scelta=0" >Video più cliccati!</a>
<a href="mov_front.php?scelta=0" >Video consigliati</a>
</div>

sotto sempre nel tag <body> inserisco l'altro div


<div>
<?php
if(isset($_GET['scelta']){//verifico se è stato cliccato un link
$ho_scelto=htmlspecialchars($_GET['scelta']);//leggo e lo ripulisco da entuali codici malevoli
}else{//se provengo da qualche altra pagina
$ho_scelto="0";//comunque presento l'elenco
}//fine if-else get
//faccio la selezione come già ti ho indicato
switch($ho_scelto){
case "0"://ho scelto di vedereli tutti
$query_str="SELECT * FROM movie ORDER BY titolo";
break;
case "1"://ho scelto di vedere i più visti (la query di max)
$query_str="SELECT * FROM movie ORDER BY visti DESC LIMIT 10";
break;
case "2"://ho scelto di vedere i consigliati (se consiglio è una specie di voto)
$query_str="SELECT * FROM movie ORDER BY consiglio";
break;
}//fine switch
//e proseguo con tutto il resto
//qui i dati di connessione al db
//e faccio la query in funzione della stringa da switch
$query=mysql_query($query_str) or die ("errorere di connessione");
//prima di presentare i dati ti conviene cedere se esistono
$esistono=mysql_num_rows($query);
if($esistono==0){//se 0 non esistono
echo "non ci sono video catalogati";
}else{
//qui posso inserire lo script di Lakanka :

$result = mysql_query($query_str) or die(mysql_error());
while($row = mysql_fetch_object($result)) {
echo 'nome: '.$row->nome.'<br>';
}

}//fine if-else esistono
//ecc.... se ti serve
?>
</div>

Se inserisco l'ultimo div con tutto dentro mi scompare l'intera pagina, come mai?
 
Scusate ragazzi, il file di connessione che viene richiamato dall'inclusione ha al suo interno 3 connessioni a 3 db.
infatti ho notato che alcune cose vengono richiamate con
PHP:
$xxxx = dbselect($db,$query,1);

dovrei inserirlo quindi anche io nello script che mi avete dato? ma come??
Con $db viene richiamato un db che non ha al suo interno la tabella MOVIE e il CAMPO visto.

Il db appropirato sarebbe $db_mov
 
questo è la tabella dove dovrebbero vedersi, tutti i video ( e si vedono), i video più visti e i video consigliati.
E' tutto un pò spreciso, ma non sono stato io!0:)

PHP:
<div>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" name="general" id="general">
                  
<br /><br /> <div id="Accordion1" class="Accordion" tabindex="0">
                   
				  
<?php for($i=0; $i<count($ga_movie); $i++){ ?>
<div id="Accordion1" class="Accordion" tabindex="0">
                   
				  
<?php for($i=0; $i<count($ga_movie); $i++){ ?>
                    
<div class="AccordionPanel">
 <div class="AccordionPanelTab">
                      
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="68" ><span style="color: #003366">
							
<?php echo strftime("%d %b %y", strtotime($ga_movie[$i]['dat'])); ?></span></td>
                            
<td width="578"><strong><span class="primopiano">
                            
<?php echo $ga_movie[$i]['eve']; ?>
</span></strong>&nbsp;&nbsp;<span style="color:#333"><strong>
<?php echo $ga_movie[$i]['plc']; ?>&nbsp;</strong>&nbsp;
<?php echo $ga_movie[$i]['tit']; ?></span>
</td>
                            
<td width="60"><div align="center">
                            
<a href="#" onmouseout="MM_swapImgRestore('PlayMovie','','kdev/media/play.png',1)" onmouseover="MM_swapImage('PlayMovie','','kdev/media/play.png',1)" 												onclick="javascript:ViewMovie('<?php echo $ga_movie[$i]['id_mov']; ?>', '<?php echo $i; ?>');"><img src="kdev/media/play.png" width="16" height="16" alt="PlayMovie" name="PlayMovie" border="0" id="PlayMovie" style="border:none; text-decoration:none; vertical-align:text-bottom" /><span style="color:#FFFFFF; font-weight:bold; vertical-align:middle" >Play</span></a></div>

</td>
 </tr>
</table>
</div>
                      
<div class="AccordionPanelContent"> 
                     
<strong>Descrizione</strong>: <?php echo $ga_movie[$i]['des']; ?> 
<strong> - Visto</strong>:    <?php echo $ga_movie[$i]['hit']; ?> volte 
<strong>- Tempo</strong>:     <?php if ($ga_movie[$i]['sec'] > 0){ $mins = floor($ga_movie[$i]['sec']/60); $secs = $ga_movie[$i]['sec']%60; printf																																							                                                      ("%d:%02d", $mins, $secs); } ?>

- &nbsp;<a href="mailto:?subject=xxx.it - segnalazione&amp;body=Ciao, penso che questo argomento possa interessarti. L'URL &egrave;: 			                        http://www.xxx.it/kdev/pages/mov_front.php?<?php echo $ga_movie[$i]['id_mov']; ?>">Link to friend</a></div>

</div>
                    
<?php }?>
                  
</div>
 
ciao
nel tuo post hai messo intanto una query in più che non serve

$result = mysql_query($query_str) or die(mysql_error());
while($row = mysql_fetch_object($result)) {
echo 'nome: '.$row->nome.'<br>';
}
basta fare

while($row = mysql_fetch_object($query)) {
echo 'nome: '.$row->nome.'<br>';
}
oppure cambi il nome $query in $result alla prima

poi cosa intendi per sparisce?

poi lo script "non fatto da te" è completo o ti sei dimenticato qualcosa?
apri un form, ma dove lo chiudi?

non so quanti db ti servono (non ti confondi con le tabelle?)? ma se apri più db nella quary devi mettere il db che vuoi leggere, es.

$result = mysql_query($query_str, $quale_db_uso) or die(mysql_error());

Il db appropirato sarebbe $db_mov
$db_move non è il nome di un db

nel file dei dati di connessione dbconn.inc.php dovresti avere qualcosa del genere

PHP:
<?php
//---variabili di connessione----------------------------------------
$host = 'pinco_pallo';     //nome host
$username = 'user_name';      //user name
$password = 'password';  //password
$db = 'mio_db';            // nome data base
//---connessione----------------------------------------------------
$conn = @mysql_connect($host,$username,$password) or die ("errore di connessione".mysql_error());
$sel = @mysql_select_db($db) or die ("data base non esistente".mysql_error());
?>


p.s. dimenticavo: ma nell'ultimo script non vedo alcun uso di db (o sbaglio?)
 
1)OK Sbagliato e capito! Il file di connessione si connette a più db , non tabelle. Però di fatto ne funziona solo uno, gli altri sono stati lasciati nel server come carcasse nello spazio..

2) sparisce nel senso che non compare nulla nella pagina se la guardo nel browser. Forse ci sono tag non chiusi o roba del genere. Ma mi succede se metto quello script.

avvolte mi dice: errore di connessione. e comunque nella barra degli indirizzi mi mette anche nella home, senza clikkare nessun link :

www.xxxxx.com/mov_front.php?scelta=1

riposto lo script che inserisco e allego un file del db che è quello giusto :

PHP:
        <?php 						 
						  
$ho_scelto=$_GET['scelta'];
//faccio la selezione come già ti ho indicato 
switch($ho_scelto){  
    case "0"://ho scelto di vedereli tutti  
        $query_str="SELECT * FROM  `movie_vid` ORDER BY  `tit` DESC LIMIT  30";  
    break;  
    case "1"://ho scelto di vedere i più visti (la query di max)  
        $query_str="SELECT * FROM  `movie_vid` ORDER BY  `hit` DESC LIMIT  30";  
    break;  
    case "2"://ho scelto di vedere i consigliati (se consiglio è una specie di voto)  
        $query_str="SELECT * FROM  `movie_vid` ORDER BY  `hot` DESC LIMIT  30";  
    break;  
}//fine switch  
//e proseguo con tutto il resto 
//qui i dati di connessione al db 
//e faccio la query in funzione della stringa da switch 
$query=mysql_query($query_str) or die ("errore di connessione"); 
//prima di presentare i dati ti conviene cedere se esistono 
$esistono=mysql_num_rows($query); 
if($esistono==0){//se 0 non esistono 
    echo "non ci sono video catalogati"; 
}

else{ 

while($row = mysql_fetch_object($result))  
{echo 'nome: '.$row-> nome.'<br>';}  

    
}

//fine if-else esistono 
//ecc.... se ti serve 

?>
 

Allegati

  • db.jpg
    db.jpg
    48,4 KB · Visite: 142

Discussioni simili