-YoShi- Inviato 25 Aprile 2007 Segnala Condividi Inviato 25 Aprile 2007 Mi sto facendo un sito con i dati delle corsettine che registro col nike+ più quelli con le mie uscite in MTB. Usando php+mysql sono riuscito a fare il tutto, faccio le query sql e pubblico i dati con un while che mi crea la tabella. e fin qui tutto facile. Ora viene la parte che mi è ostica: - Vorrei usare le intestazioni della tabella come ordinatori in pratica ora per es. ho: data_corsa - km_percorsi - vel_max - media - pedalata - km_totali la query che ho creato pubblica i dati ordinati per data. Quello che vorrei fare è aggiungere 2 immagini (una freccia su e una freccia giù) di fianco alle intestazioni, in modo da poter ordinare per ordine crescente o decrescente i dati (per esempio per vedere quale è stata la velocità max su tutte le uscite). è possibile farlo? Mi piacerebbe approfondire d più su php.. non è che mi consigliereste qualche buon libro? In ITA se possibile.. WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 26 Aprile 2007 Segnala Condividi Inviato 26 Aprile 2007 sì è possibile farlo devi associare a ogni click su una freccia la chiamata a un php in cui esegui una select utilizzando la clausola order by più appropriata Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
ghebro Inviato 26 Aprile 2007 Segnala Condividi Inviato 26 Aprile 2007 esatto! per comodità puoi fare in modo che ogni link richiami la stessa pagina originale, con una variabile in GET che intercetti all'inizio della pagina ed utilizzi per discriminare l'ORDER BY della tua QUERY. StefanoMolinari.com Galleria Fotografica di Viaggi e Vacanze Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 26 Aprile 2007 Autore Segnala Condividi Inviato 26 Aprile 2007 è quello che ho fatto.. ma non funziona.. In pratica ora è così, al caricarsi della pagina, $query_mtb prende il valore SELECT ecc.. Io ho provato a usare sia il onclick="<?php $query = Nuova_query" ?> che racchiudendo Durata in un link <a href="codice php con nuovo ordine"> Ho provato a creare una funzione "ordina_per_data", ma non so dove piazzarla per chiamarla e per far rimpiazzare il valore $query_mtb iniziale.. <?php include '../connessioni/conn_check.php'; $query_mtb = "SELECT * FROM mtb ORDER BY data_start ASC"; function ordina_x_durata() { $query_mtb = "SELECT * FROM mtb ORDER BY durata ASC"; } ?> <table width="920" border="0" cellspacing="2"> <tr valign="top"> <td width="59" bgcolor="#CCCCCC"><strong class="Stile2">Durata</strong></td> </tr> </table> WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 27 Aprile 2007 Segnala Condividi Inviato 27 Aprile 2007 scusa ma non basta che tu definisca la nuova query, devi anche farla eseguire e visualizzarne il risultato quindi hai bisogno dello stesso codice php (COMPLETO) che usi per la query di default per la tua prima soluzione, con il tuo onclick hai solo definito un nuovo valore per la variabile $query ma poi non ne fai niente altro: chi usa quel valore? nessuno. chiaro che non succede niente idem per la soluzione ordina per durata: ok hai definito la query ma poi dove sono le istruzioni php per eseguirla e soprattutto dov'è il codice che ne visualizza il risultato? Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
kilik Inviato 27 Aprile 2007 Segnala Condividi Inviato 27 Aprile 2007 eh gia, hai solo fatto una quesry, manca il fetch ed il result e l'echo News e tutorials su Meletta || Seguimi su Twitter o su Facebook Inserisci il tuo annuncio su Melavendo ora anche su App Store! all the best and fuck the rest Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 27 Aprile 2007 Autore Segnala Condividi Inviato 27 Aprile 2007 no beh ho non ho messo tutto il codice.. questo dovrebbe essere tutto <table border="0" cellspacing="2"> <tr valign="top"> <td bgcolor="#CCCCCC"><strong class="Stile2">Data Start</strong></td> <? // in questa riga voglio poter mettere gli ordinatori che cambiano la query ?> <td bgcolor="#CCCCCC" class="Stile2"><strong>km_percorsi</strong></td> <td bgcolor="#CCCCCC"><strong class="Stile2">Giro</strong></td> <td bgcolor="#CCCCCC"><strong class="Stile2">media</strong></td> <td bgcolor="#CCCCCC"><strong class="Stile2">vel_max</strong></td> </tr> </table> <span class="Stile2"> <?php include '../connessioni/conn_check.php'; $query_mtb = "SELECT * FROM mtb ORDER BY data_start ASC"; $result_mtb = mysql_query($query_mtb, $db); echo "<table border=0 cellspacing=2><tr>"; while ($row_mtb = mysql_fetch_array($result_mtb)) { // ALTERNA COLORE RIGHE if($i%2==1)$color="#ffffff"; // primo colore else $color="#DFEFFF"; //secondo colore echo "<tr bgcolor=$color><td width=77 class=Stile2>", $row_mtb[data_start], "</td>"; $i++; echo "<tr><td class=Stile2>", $row_mtb[data_start], "</td>"; echo "<td class=Stile2>", $row_mtb[km_percorsi], "</td>"; echo "<td class=Stile2>", $row_mtb[Giro], "</td>"; echo "<td class=Stile2>", $row_mtb[media], "</td>"; echo "<td class=Stile2>", $row_mtb[vel_max], "</td>"; echo "</tr>"; }; echo "</table>"; ?> </span> WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 28 Aprile 2007 Segnala Condividi Inviato 28 Aprile 2007 allora: se fossi in te non userei un codice php incluso nel file ma un php a parte che viene richiamato dalla pressione della freccia: così come lo vuoi fare tu ti stai solo complicando inutilmente la vita. seconda cosa: io definirei la query spezzata in due variabili, la prima che contiene solo il generico select * from mtb la seconda che contiene il criterio di ordinamento. questa seconda parte cambia a seconda della freccia su cui si fa click e ha un valore di default nel caso non ci sia nessuna scelta (primo accesso alla pagina). la query finale si ottiene concatenando le due. da lì in avanti il codice è sempre esattamente lo stesso. ogni singola freccia in realtà è un pulsante submit di una form html, a cui è associato un valore diverso per la query: in questo modo con un solo click l'utente ottiene l'effetto ordinamento. Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
kilik Inviato 28 Aprile 2007 Segnala Condividi Inviato 28 Aprile 2007 io userei il fetch_assoc anzichè il fetch_array e con l'extract dopo News e tutorials su Meletta || Seguimi su Twitter o su Facebook Inserisci il tuo annuncio su Melavendo ora anche su App Store! all the best and fuck the rest Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 28 Aprile 2007 Segnala Condividi Inviato 28 Aprile 2007 questione di gusti, kilik io personalmente preferisco il fetch_object Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 30 Aprile 2007 Autore Segnala Condividi Inviato 30 Aprile 2007 allora: se fossi in te non userei un codice php incluso nel file ma un php a parte che viene richiamato dalla pressione della freccia: così come lo vuoi fare tu ti stai solo complicando inutilmente la vita. Cioè usare degli include_once per richiamare il file oppure creare delle funzioni nel file php e richiamarle ogni volta? seconda cosa: io definirei la query spezzata in due variabili, la prima che contiene solo il generico select * from mtb la seconda che contiene il criterio di ordinamento. questa seconda parte cambia a seconda della freccia su cui si fa click e ha un valore di default nel caso non ci sia nessuna scelta (primo accesso alla pagina). la query finale si ottiene concatenando le due. da lì in avanti il codice è sempre esattamente lo stesso. Cioè definire un array che unisca le variabili a seconda di come voglio ordinare i dati? oppure si può fare in un altra maniera? ogni singola freccia in realtà è un pulsante submit di una form html, a cui è associato un valore diverso per la query: in questo modo con un solo click l'utente ottiene l'effetto ordinamento. ho capito.. ma dove deve puntare l'action del form? a quale file? io userei il fetch_assoc anzichè il fetch_array e con l'extract dopo cioè? cosa cambia rispetto al solo fetch array? e che differenza c'è con il fetch object? WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 1 Maggio 2007 Segnala Condividi Inviato 1 Maggio 2007 Allora: per richiamare e far eseguire un file php non serve un include in un file html. Puoi anche fare il contrario ( di solito anzi si fa così): un file completamente scritto in php che contiene anche la codifica html. Il file riceve i dati dall'html tramite GET o POST (come si fa quando si elaborano i dati inviati tramite una form). In particolare, se si usa il metodo GET, è possibile richiamare il php passando uno o più parametri direttamente tramite la URL del file stesso. Per esempio, se il file che elabora e mostra la query si chiama mostraDati.php e tu vuoi mostrare i dati ordinati per data, tu puoi usare un normale link html che punta a un indirizzo del tipo "mostraDati.php?sortBy=data" Ovviamente all'interno del tuo php devi gestire in modo opportuno una variabile sortBy come se fosse un campo input di una form html. Il codice del file mostraDati.php deve contenere una riga di questo tipo prima di qualsiasi elaborazione della query: $criterioOrdine = $_GET['sortBy']; Secondo punto: perchè usare un array quando per concatenare due stringhe il php prevede l'operatore di concatenazione "." (punto)? In questo caso la tua query potrebbe essere definita in un modo analogo a questo: $query = "select * from mtb"; if ($criterioOrdine != "") { $query .= " order by $criterioOrdine"); } $query .= ";" Terzo punto: fetch_array distribuisce i risultati di ogni riga della query in un array ma tu per isolare un dato specifico devi quindi ricordarti la posizione in ordine numerico della colonna nel database per poter accedere al dato corretto. fetch_object invece "traduce" ogni riga del risultato in un oggetto in cui i singoli campi hanno lo stesso nome delle colonne che hai usato nel database. per accedere ai singoli campi tu non devi usare un indice numerico ma puoi usare il nome stesso che hai dato alle colonne della tabella (fetch_assoc ha un comportamento analogo). il vantaggio di questo approccio è che intanto il codice è molto più leggibile e poi ti svincoli completamente da ogni modifica nella struttura della tabella (es. aggiunta o eliminazione di colonne). se usi un array numerico, ogni volta che cambi la struttura della tabella devi toccare anche il codice php per tener conto della nuova distribuzione degli indici numerici, se invece usi fetch_object o fetch_assoc non devi fare niente in quanto il codice si basa sul nome delle colonne e non sulla loro posizione numerica. Con questo sistema, per richiamare il valore associato alle singole colonne il codice diventa il seguente: $risultato = mysql_query($query); echo "<table>\n"; echo "<tr><td>Data della corsa</td>\n"; echo "<td>Lunghezza</td></tr>\n"; while ($singoloDato = mysql_fetch_object($risultato)) { echo "<tr><td>"; echo $singoloDato->dataCorsa; echo "</td>\n"; echo "<td>"; echo $singoloDato->km_percorsi; echo "</td></tr>\n"; } echo "</table>\n"; il ciclo while ti consente di scorrere tutte le righe ritornate dalla query e quindi di visualizzare tutti i dati trovati nel database. chiaro? Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 1 Maggio 2007 Autore Segnala Condividi Inviato 1 Maggio 2007 Chiarissimo.. Grazie Il fatto è che più vado avanti e più mi rendo conto d nn saper nulla.. Nn è che sapresti consigliarmi un libro o degli howto per approfondire? Che mi dici di Ajax? se usassi quello eviterei il reload della pagina, potrebbe essere utile no? WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 2 Maggio 2007 Segnala Condividi Inviato 2 Maggio 2007 un passo alla volta e soprattutto mai più lungo della gamba prima sistema il php e poi eventualmente pensa a ajax come ottimizzazione. per quanto riguarda php, puoi usare i tutorial di html.it che sono ottimi e spiegati molto bene Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 3 Maggio 2007 Autore Segnala Condividi Inviato 3 Maggio 2007 si li stavo seguendo, ma non sono così avanzati.. per esempio se voglio usare due tabelle collegate li non c'è niente che spieghi.. Ajax lo posso integrare anche dopo quindi? cioè una volta che ho tutto pronto oppure devo rifare da capo? WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 4 Maggio 2007 Segnala Condividi Inviato 4 Maggio 2007 allora: se vuoi avere una buona idea di come usare mysql e/o php, usa la rispettiva documentazione online che è ottima: www.mysql.com e www.php.net ajax si può integrare in qualsiasi momento, non devi rifare tutto da capo: anzi, se lo scrivi bene puoi riutilizzare alla grande il tuo codice php. anche per quello ti suggerisco di non seguire l'approccio di includere php nell'html ma di fare il contrario Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 8 Maggio 2007 Autore Segnala Condividi Inviato 8 Maggio 2007 allora: se vuoi avere una buona idea di come usare mysql e/o php, usa la rispettiva documentazione online che è ottima: www.mysql.com e www.php.netajax si può integrare in qualsiasi momento, non devi rifare tutto da capo: anzi, se lo scrivi bene puoi riutilizzare alla grande il tuo codice php. anche per quello ti suggerisco di non seguire l'approccio di includere php nell'html ma di fare il contrario Grazie per i consigli e scusa per la risposta così tarda.. mi ero perso in manuali, guide e ero finito in loop in un ciclo foreach.. In che senso includere il codice html nel php? facendo delle chiamate echo? del tipo echo "<table><tr><td></td></tr></table>"; ma in questo modo non mi si appesantisce la pagina(nel download e disegno?) meglio l'echo o il printf? se voglio portare il valore di una variabile da una pagina all'altra esiste un modo per farlo più semplice del input e $_POST? Adesso se voglio portare un valore da una pagina a quella seguente mi creo un input box hidden e raccolgo il valore con $_GET[nome_box]. è una cosa un po scomoda xò. c'è qualche trucchetto per fare in modo che $variabile = "Quattro"; sia vero e definita anche nella pagina dopo in modo che possa con echo $variabile; avere Quattro a video? Grazie come sempre WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 9 Maggio 2007 Segnala Condividi Inviato 9 Maggio 2007 ma in questo modo non mi si appesantisce la pagina(nel download e disegno?) nel download sicuramente no perché php emette solo i tag html, come avverrebbe con una pagina html ordinaria. meglio l'echo o il printf? echo: printf si usa per la stampa formattata (tipicamente verso file) se voglio portare il valore di una variabile da una pagina all'altra esiste un modo per farlo più semplice del input e $_POST? puoi farlo usando le variabili di sessione Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 9 Maggio 2007 Autore Segnala Condividi Inviato 9 Maggio 2007 Grazie sei stato preziosissimo! un ultima cosa (ti sfrutto per l'ultima volta, giuro ): esiste un sistema per evitare che quando viene recuperato il testo di un record dal db che ha l'apostrofo venga tagliato dal php? Xchè ieri sera stavo impazzendo e credevo fosse un problema di codice, poi dopo circa 2 ore che ci perdevo la testa ho scoperto che il record (note) del database era una frase con l'apostrofo. Per l'esattezza: il contachilometri non l'avevo ancora trarato. arrivava alla L e poi si bloccava tutto.. WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 9 Maggio 2007 Segnala Condividi Inviato 9 Maggio 2007 usa il carattere di escape \' per l'apostrofo Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 10 Maggio 2007 Autore Segnala Condividi Inviato 10 Maggio 2007 in che senso? nel database o un if e strstr? WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
grigio60 Inviato 11 Maggio 2007 Segnala Condividi Inviato 11 Maggio 2007 nel senso che se devi inserire nel database la stringa 'Qui c'è l'apostrofo' devi digitarla in questo modo: 'Qui c\'è l\'apostrofo' (ossia metti uno \ prima del carattere apostrofo) Serve aiuto? Posso darti una mano in Webmasters - Aiuto Software - Da Windows a Mac Mappa Utenti ItaliaMac [[miao]] Link al commento Condividi su altri siti Altre opzioni di condivisione...
MACTHEBEST Inviato 11 Maggio 2007 Segnala Condividi Inviato 11 Maggio 2007 Giusto, il carattere di Netscape perchè se no PHP lo interpreta come errore notice, perchè pensa che la stringa sia finita lì echo "<a href=\"#\">bla</a>"; iDock 1.2 Il gestionale completo per i temi del Dock...freeware Velox Fortis Letalis Owner of Battlefield 1942, 2, 2: Special Forces, 2142, Bad Company Link al commento Condividi su altri siti Altre opzioni di condivisione...
-YoShi- Inviato 11 Maggio 2007 Autore Segnala Condividi Inviato 11 Maggio 2007 a ok.. xò è un po una menata doverselo ricordare tutte le volte.. adesso mi invento qualcosa.. WorkInProgress... Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.