Leggere e visualizzare dati da mysql

  • Creatore Discussione Creatore Discussione gabryk
  • Data di inizio Data di inizio

gabryk

Nuovo Utente
8 Set 2010
5
0
0
Ciao a tutti, devo fare un piccolo lavoretto in php ma non lo conosco molto bene, lo capisco abbastanza e a tentativi sono riuscito a fare qualcosa partendo da un esempio.
Ho un db mysql con una tabella che si chiama jos_chronoforms_Proponi in cui ho 2 campi che mi interessano GIOCO1 e GIOCO2 e RECORDTIME. Sono tutti campi varchar(255), i primi contengono solo testo mentre l'ultimo contiene la data di inserimento del record nel formato 2010-09-07 - 17:30:26.
Vorrei predisporre una pagina php con un datepicker, quando si sceglie una data la pagina mi deve visualizzare per i 2 campi il gioco con più occorrenze e con recordtime >= la data selezionata col datepicker e <= alla data odierna.
Qualcuno può aiutarmi? Finora ho questo codice che mostra i record senza fare nessuna verifica:

Codice:
      <?php

      // Connects to your Database

      mysql_connect("mysql.netsons.com", "", "") or die(mysql_error()) ;

      mysql_select_db("giochic1_main") or die(mysql_error()) ;

      //Retrieves data from MySQL

      $data = mysql_query("SELECT * FROM jos_chronoforms_Proponi") or die(mysql_error());

      //Puts it into an array

      while($info = mysql_fetch_array( $data ))

      {

       

      //Outputs the image and other data

      Echo "<b>Gioco1:</b> ".$info['gioco1'] . "<br>" ;

      Echo "<b>Gioco2:</b> ".$info['gioco2'] .  "<br>";

      }

      ?>



Grazie! :k:
 
Ultima modifica di un moderatore:
Purtroppo quello non dipende da me, sto lavorando sui dati creati da un modulo joomla, comunque quello è l'aspetto meno importante, per il resto invece (tralasciando la condizione della data)?
 
ciao
è un poco una rottura lavorare con le date "umane", però qualcosa si può fare.
basta confrontarle come stringhe, con l'accortezza che sia nello stesso formato esatto e nella forma anno mese giorno ore minuti e tutte con i medesimi separatori e che i valori siano sempre dello stesso numero di caretteri (come giusto hai scritto il mese di settembre deve essere 09).
puoi fare mettendo la condizione where nella query select, es.
....WHERE recordtime >='$data_picker' AND recordtime <= '$data_attuale'
mi sembra che ci sia anche la possibilità di usare la clausola betwen (tra), ma non mi ricordo la sintassi precisa
 
Grazie per la risposta, c'è qualche possibilità che tu mi scriva il codice? Come dicevo non conosco php. cmq a parte il discorso della data mi interessa capire come posso leggere e visualizzare i dati che ho detto sulla pagina a partire dal codice che ho postato.
 
ciao
a parte le date, il codice che hai postato visualizza i valori dei campi gioco1 e gioco2, quello che non capisco come vuoi selezionare tali valori.
cioè cosa contengono i campi e come è strutturata la babella?
 
Beh ma la tabella non importa, i campi che interessano sono gioco1 e gioco2 e la data e sono semplici campi di testo.
Ora nella pagina php si visualizzano tutti i valori inseriti con un minimo di formattazione, ma a me non interessa che sia così, mi basta che venga visualizzato solo 1 valore per il campo gioco1 e 1 valore per il campo gioco2. Questi valori devono essere scelti con una query del tipo "prendi il valore gioco1 che appare più volte nella tabella e che sia successivo alla data scelta e precedente ad oggi".

Es. in gioco1 ho i record "Scarabeo, Risiko, Domino, Scarabeo, Scarabeo, Scopone"
Voglio che la pagina php mi dica Gioco1: Scarabeo, stesso discorso per gioco2.
E se si può fare il controllo sulle date come ho detto sarebbe il massimo.
Spero di essere stato più chiaro, scusa.
 
ciao
scusa, ma come è strutturata la tabella è importante perche da quello si riesce a fare dei filtri nella select.
se ad es la tabella è cos' strutturata (e basta) (nota: ho messo dei punti per allineare)

id..gioco1...... gioco2......data
1..scarabeo...scopone....2010-09-11
2..scacchi.....dama........2010-09-12
3..scarabeo...tresette.....2010-09-16
4..canasta.....scarabeo..2010-09-20
...ecc...

è un po' difficile fare dei filtri, o tramite dei post inserisci il gioco che vuoi
es.1
$gioco_scelto=$_POST['scelta'];//in scelta hai impostato scarabeo
..ecc...
$query="SELECT * FROM mia_tabella WHERE gioco1='$gioco_scelto'";
questa query ti estrae i record n. 1 e 3
es.2
$gioco_scelto=$_POST['scelta'];//in scelta hai impostato scarabeo
..ecc...
$query="SELECT * FROM mia_tabella WHERE gioco1='$gioco_scelto' OR gioco2='$gioco_scelto'";
questa query ti estrae i record 1, 3 e 4
se al posto di OR metti AND non ti restituisce alcun record
es.3, con le date
$data_attuale=date("Y-m-d");// es sia l'attuale = 2010-09-13
$data_pik=$_POST['data'_p'];//es sia la data = 2010-09-11
$query="SELECT* FROM mia_tabella WHERE data>='$data_pik' AND data<='$data_attuale'";
..ecc..
questa query ti restituisce i record 1 e 2

spero di essermi spiegato, altrimenti sono qui
 
Forse sono io che non riesco a spiegarmi, ci riprovo:

lo script dovrebbe scorrere tutti i record in gioco1 che rientrano nelle date scelte ed estrapolare il nome del gioco che appare più volte.

es
id..gioco1...... gioco2......data
1..scarabeo...scopone....2010-09-11
2..scacchi.....dama........2010-09-12
3..scarabeo...tresette.....2010-09-16
4..canasta.....scarabeo..2010-09-20

Mettiamo che oggi sia il 20/09, quando scelgo la data di inizio dal datepicker scelgo 11/09, mi aspetto che il risultato di gioco1 sia Scarabeo mentre quello di gioco2 uno a caso tra i 3 a parimerito (escluso scarabeo). Quest'ultima parte l'ho aggiunta ora perchè non ho pensato al caso in cui ci sia parità.
Quello che voglio è una specie di sistema di votazione, io ho già la parte con cui gli utenti inseriscono i dati, mi manca quella che li legge dal database e ci fa un minimo di calcolo per capire qual'è il gioco più votato.
 

Discussioni simili