• User Attivo

    Aiutone mini-script php/MySQL

    Ciao a tutti!
    Prendendo spunto da questa discussione http://www.giorgiotave.it/forum/web-marketing/39856-sviluppo-sito-webcam-2.html
    di cui vi quoto una parte vorrei chiedervi aiuto tecnico su come realizzare questo script di cui parla il gentile centix:

    grazi delle risposte.
    Se veramente hai molto traffico per il punto e. potresti fare accordi con un produttore di webcam (tipo quello di cortina che copre la maggior parte di tutte le webcam installate)

    il punto 5. é piú facile a farsi che a spiegare .
    In pratica ti fai un bel database e in ogni riga ci metti le info di ciascuna webcam (id, anchor text, url img, contatore, testo h1, testo pagine, fonte, regione, categoria, ...)
    Da un pagina php (o altro linguaggio server) ad esempio webcam-dettaglio.php che richiami con un parametro ?id=5 ti colleghi al database e scarichi tutte le informazioni relativa alla webcam alla riga 5 del DB. Informazioni con cui costruisci la pagina che viene effettivamente visualizzata dal browser e che apparirá essatamente come é adesso il tuo sito.

    Se nulla cambia agli occhi del browser rispetto ad adesso tu cosa ci guadagni? Tantissimo perché per la gestione devi mettere mano solo a DB. Ad esempio se cambia la urldi una webcam, cambi l´url nel DB e il gioco é fatto.
    Vuoi aggiungere una nuova webcam? Aggiungi una riga al tuo DB e automaticamente il tuo sito avrá una pagina in piú con la nuova webcam.

    Lo puoi notare nel mi sito perché non ho possibilitá di fare l'url rewrite.
    ad esempio
    il dettaglio della webcam del tonale é webcamera2.asp?idcam=93
    quello di Campiglio é webcamera2.asp?idcam=86
    Come vedi il file é lo stesso cambia solo l'id finale che serve a dire quale webcam deve essere richiamata (e come vedi h1, title, description e cosí via sono diversi)
    Anche l'indice webcam

    é creato dinamicamente con le webcam piú viste per ciascuna categoria

    Ma per questo ti conviene andare nella sezione php del forum GT

    Oppure se proprio non vuoi imparare php e mysql allora piú che un cms vero e proprio ti servirebbe un programma di gallery tipo questi
    http://spgm.sourceforge.net/ il primo che ho trovato con goolge
    http://coppermine-gallery.net/ il piú conosciuto e usato

    qualcuno mi sa aiutare??

    Grazie mille!!


  • Super User

    Ciao rdo,
    per prima cosa dovresti creare un file di testo chiamato webcam.txt .
    Poi inserisci al suo interno nella prima riga i campi da utilizzare separati dal segno "|".
    esempio:

    id|url img|testo h1| ecc....

    Poi in ogni riga inserisci le informazioni delle webcam separandole con ils egno "|",nell'ordine definito nella prima riga.

    es:
    1|http://urlimg.com|webcam di test

    Nella pagina che visualizza le suddette info metti questo codice php:
    [php]
    <?php
    $db=file("webcam.txt");
    array_shift($db);
    foreach($db as $webcam){
    $webcam=explode("|",$webcam);
    // qui devi inserire i nomi dei campi e il numero progressivo di questi //partendo da 0

    $id=$webcam[0];

    // eccetera...

    if($_GET[id]==$id){
    // istruzioni
    // es: echo $urlimg stamperà a video il contenuto di $urlimg ,quindi "http://urlimg.com" dove l'id è //quello richiesto tramite GET.
    }
    }
    ?>[/php]
    Poi richiama ogni webcam in questo modo:

    webcam.php?id=1

    Ciao!


  • User Attivo

    perfetto probid 😉 proprio quello che gli serve ... per iniziare. Infatti anziché un DB myssql usi un file excel che appunto é ottimo per iniziare e dato che rdo ha meno di 200 righe/webcam é gestibile cosí. Magari anziché fare il file txt, si tiene l´elenco in un file excel che é piú facile riguardo la gestion e poi "esporta" in CSV con estensione .txt usando il separatore da te suggerito (la barretta verticale).
    io aggigungerei un ***exit *** nel If cosí da non continuare a scorrere tutte le righe dopo che la webcam con l´id desiderato viene trovata (cosa che succede con il codice cosí come adesso, se non sbaglio)

    Ci sono peró delle considerazioni SEO da fare, e in particolare che tu per vedere la webcam di Bormio desideri ancora aceddervi con /bormio.htm e non con /webcam.php?id=1
    Risolvere questo problema é relativamente semplice se il tuo provider ti permette di fare url rewriting. E allora ti devi leggere anche qualcosa riguardo .htaccess, url rewrite, mod rewrite, url dinamici e posizionamento.

    La soluzione proposta é ottima per iniziare, poi non potrai fare a meno di un DB anziché del file di testo, sopratutto per la possibilitá di gestione della lista direttamente online. Ma allora la sostituzione del DB con il txt sará molto semplice e rapida senza dovere riscrivere tutto ma solo cambiando poche righe di codice.


  • User Attivo

    @probid said:

    Ciao rdo,
    per prima cosa dovresti creare un file di testo chiamato webcam.txt .
    Poi inserisci al suo interno nella prima riga i campi da utilizzare separati dal segno "|".
    esempio:

    id|url img|testo h1| ecc....

    Poi in ogni riga inserisci le informazioni delle webcam separandole con ils egno "|",nell'ordine definito nella prima riga.

    es:
    1|http://urlimg.com|webcam di test

    Grazie mille probid per l'aiuto... ho ancora alcuni fubbi però... dimmi se faccio bene:

    1 - creo un file .txt con all'interno i campi che voglio che ogni pagina abbia al suo interno.
    es. id = numero che identifica la pagina, h1 = titolo, url img = url dell'immagine...

    2 - nello stesso file nella riga successiva scrivo quello che voglio venga "stampato" sulla pagina.
    es. per la webcam n. 1 scrivo: 1 | Webcam Sestriere | http://img.jpg

    3 - nella pagina vera e propria .php dove voglio per esempio esca l'h1 metto echo $h1

    faccio giusto :-D?

    Scusate ma come vedete sono proprio agli inizi del php anche se devo dire mi intriga molto!

    GRAZIE 2000!


  • Super User

    @rdo said:

    Grazie mille probid per l'aiuto... ho ancora alcuni fubbi però... dimmi se faccio bene:

    1 - creo un file .txt con all'interno i campi che voglio che ogni pagina abbia al suo interno.
    es. id = numero che identifica la pagina, h1 = titolo, url img = url dell'immagine...

    2 - nello stesso file nella riga successiva scrivo quello che voglio venga "stampato" sulla pagina.
    es. per la webcam n. 1 scrivo: 1 | Webcam Sestriere | http://img.jpg

    3 - nella pagina vera e propria .php dove voglio per esempio esca l'h1 metto echo $h1

    faccio giusto :-D?

    Scusate ma come vedete sono proprio agli inizi del php anche se devo dire mi intriga molto!

    GRAZIE 2000!

    Perfetto :D;)


  • User Attivo

    mmm dubbio!
    Devo anche creare una pagina webcam.php che in pratica è il "layout" generale dove ci metto il menu, footer, grafica varia... giusto? Poi chiamando webcam.php/id si sostituiscono i campi con quello che c'è salvato nel "database" .csv.
    Chissà se starò capendo giusto 🙂


  • User Attivo

    esatto, unno dei vantaggi grossi é proprio quello hai un solo file php per tutte le webcam. quindi se decidi di cambiare il logo, o il layout o chissá cos´altro lo fai sull´unico file webcam.php e non per ogni pagnie htm di ciascuna webcam
    webcam.php e dove andrai a mettere
    echo $h1
    echo $title nel tag title
    echo $img nell´image tag
    ... e cosí via


  • User Attivo

    Probid e centrix, se passate dalla mie parti avvisatemi che vi devo una cena!!!
    Grazie mille funziona da dio

    http://www.webcam.sciclub.it/webcam.php?id=1 (non guardate l'impaginazione, va sistemata :-D!)

    grazie ancora!


  • Super User

    :):)
    Ciao e alla prossima! 😉


  • User Attivo

    Eheh... pensavate vi lasciavo subito in pace è!
    Altro problema! Come forzo manualmente le misure di un immagine?

    <?php echo $urlim?>" width="320" height="240"> non mi fa niente...

    SCUSATE SCUSATE E SCUSATE!


  • User Attivo

    piú della cena potresti sparare un bel BL 😉 hai tre opzioni:
    kitesurf-italia. com
    mg-montagna. com
    mgsnowboard. com
    Tutti e tre con la sezione webcam, meglio se linki quello del kite 🙂

    Mi raccomando vatti a studiare l´url rewrite che cosi com´é, sopratutto a causa del ?id non ti indicizza o ti inidicizza male. Meglio un ?cam=1 ma ripeto quasi d´obbligo l´url rewrite.

    added:
    abbiamo postato con un secondo di differenza 😄 ... io vedo che il width e l'heigt ti funzionano benissimo.
    Ah, magari ti interessano anche le gdlib. per capire lo script che probid usa php.net. Ad esempio
    array_shift


  • Super User

    Ciao rdo,ho spostato il tuo ultimo messaggio sul mod rewrite qui:
    http://www.giorgiotave.it/forum/mod-rewrite-e-tecniche-di-url-redirect/41345-url-riscritto-non-funziona.html
    Ciao!


  • User Attivo

    Grazie mille ;-)!


  • User Attivo

    Se io un giorno volessi trasferire il database che adesso è un normalissimo .txt l'operazione sarà semplice? Perchè non vorrei scrivermi tutti i campi e poi, una volta sviluppato il sito doverlo rifare...
    Se volessi aggiungere anche altri campi come vedete in http://www.webcam.sciclub.it/webcam-montagna.php?id=1 tipo "descrizione" non diventa un pò un casino tenere tutto su .txt? Non converrebbe passare direttamente a mysql?

    Gracias!


  • Super User

    Certo che si potrebbe fare e non sarebbe per niente difficile...;)
    Ciao!


  • User Attivo

    @probid said:

    Certo che si potrebbe fare e non sarebbe per niente difficile...;)
    Ciao!

    Mi puoi indicare qualche guida per realizzare questo "upgrade"?
    Potrei anche cercare io su mr. google ma non saprei con che termini!

    Grazie mille, davvero!


  • Super User

    Try this:

    [php]
    <?php

    // configurazione

    $server="";
    $username="";
    $password="";
    $database="";

    // fine config

    mysql_connect($server,$username,$password);
    mysql_select_db($database);

    $db=file("webcam.txt");
    $q="CREATE TABLE webcam(";
    $tbl=explode("|",$db[0]);
    foreach($tbl as $campo){
    $q=$q.$campo." VARCHAR(255) NOT NULL,";
    }
    $q=$q."TYPE=MyISAM".")";
    mysql_query($q) or exit("Errore nella query");
    $db=file("webcam.txt");
    array_shift($db);
    foreach($db as $riga){
    mysql_query("INSERT INTO webcam( ". implode(",",$tbl).")"." VALUES (". str_replace("|","','",$riga)."'); ") or exit("Errore nella query");
    }
    ?>[/php]

    Ciao!


  • User Attivo

    Il tuo script mi da Errore nella query, ma stavo pensando che non è indispensabile importare il contentuto di webcam.txt perchè tanto ho inserito solamente UNA webcam di prova, quindi se è più facile e non ti rubo tempo a te potrei anche creare il tutto manualmente da myadmin... (sempre che abbia capito bene la sintassi del tuo script :-D)

    Dimmi tu secondo te com'è meglio...

    A presto!


  • Super User

    Bhè,se ricevi un errore fai pure da phpmyadmin che facciamo prima :D.
    Crea una tabella chiamata webcam e inserisci i seguenti campi:
    id INT 3 not null auto_increment
    h1 VARCHAR 255 not null
    h2 VARCHAR 255 not null
    imgurl VARCHAR 255 not null
    imgalt VARCHAR 255 not null
    title VARCHAR 255 not null

    Poi lo script per mostrare le webcam modificalo così:
    [php]
    <?php

    // configurazione

    $server="";
    $username="";
    $password="";
    $database="";

    // fine config

    mysql_connect($server,$username,$password);
    mysql_select_db($database);

    $webcam=mysql_fetch_assoc(mysql_query("SELECT * FROM webcam id='$_GET[id]'"));

    $id=$webcam[id];
    $h1=$webcam[h1];
    $h2=$webcam[h2];
    $urlim=$webcam[imgurl];
    $altim=$webcam[imgalt];
    $title=$webcam[title];

    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Webcam </title>
    <link href="wb.sc.it.css" rel="stylesheet" type="text/css">
    </head>

    <body>
    <h1 class="h1">
    <?php echo $h1?>
    </h1>
    <p class="h1">
    <?php echo $h2?>
    </p>
    <table width="755" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#DFDFE1">
    <tr>
    <td bgcolor="#000033"><img src="http://www.giorgiotave.it/forum/images/supner.jpg" width="757" height="60"></td>
    </tr>
    <tr>
    <td><div align="center">
    <table width="755" border="0" cellpadding="0" cellspacing="0" class="regionetd">
    <tr>
    <td width="202"><div align="center"><script type="text/javascript"><!--
    google_ad_client = "pub-0471560296296297";
    google_alternate_color = "333333";
    google_ad_width = 120;
    google_ad_height = 240;
    google_ad_format = "120x240_as";
    google_ad_type = "text_image";
    google_ad_channel ="";
    google_color_border = "333333";
    google_color_bg = "333333";
    google_color_link = "FFFFFF";
    google_color_url = "CCCCCC";
    google_color_text = "CCCCCC";
    //--></script>
    <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script></div></td>
    <td width="350"><div align="center"><img src="<?php echo $urlim?>"></div></td>
    <td width="202"><div align="center"><a href="http://www.webcam.sciclub.it/" class="framedx">Guarda le altre <strong>148 webcam</strong> sparse in tutta italia.</a></div></td>
    </tr>
    <tr>
    <td colspan="3"><script type="text/javascript"><!--
    google_ad_client = "pub-0471560296296297";
    google_ad_width = 728;
    google_ad_height = 90;
    google_ad_format = "728x90_as";
    google_ad_type = "text_image";
    google_ad_channel ="";
    google_color_border = "333333";
    google_color_bg = "333333";
    google_color_link = "68BA34";
    google_color_url = "666666";
    google_color_text = "CCCCCC";
    //--></script>
    <script type="text/javascript"
    src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
    </script></td>
    </tr>
    </table>
    </div></td>
    </tr>
    <tr>
    <td class="testo"><div align="center" class="regionetd">Webcam by www.valtline.it </div></td>
    </tr>
    <tr>
    <td bgcolor="#000033" class="testo"><img src="http://www.giorgiotave.it/forum/images/infner.jpg" width="757" height="60"></td>
    </tr>
    </table>
    <table width="755" height="130" border="0" align="center" cellpadding="0" cellspacing="0">
    <tr>
    <td><img src="http://www.giorgiotave.it/forum/images/sup.jpg" width="760" height="20"></td>
    </tr>
    <tr>
    <td height="23" class="tabluad"><div align="center"><a href="http://www.webcam.sciclub.it/ad.htm" target="_blank" class="back2">Offerte Speciali </a></div></td>
    </tr>
    <tr>
    <td height="23" class="tabluad"><div align="center"><a href="http://www.sciclub.it" target="_blank" class="back2">Sci Club </a></div></td>
    </tr>
    <tr>
    <td height="23" valign="middle" class="tabluad"><div align="center"><a href="php/mail/form.php" target="_blank" class="back2"> Segnalaci una webcam</a></div></td>
    </tr>
    <tr>
    <td height="23" class="tabluad"><div align="center">
    <div align="center"><a href="http://www.webcam.sciclub.it/" class="back2">» guarda le altre webcam «</a></div>
    </div></td>
    </tr>
    <tr>
    <td><img src="http://www.giorgiotave.it/forum/images/inf.jpg" width="760" height="20"></td>
    </tr>
    </table>
    <p class="copy">© 2005 <a href="http://www.webcam.sciclub.it" class="copy">www.webcam.sciclub.it</a>. - Tutti i diritti riservati - <a href="http://www.valtline.it/" class="copy">credits</a> - <a href="mailto:[email protected]" class="copy">email</a></p></body>
    </html>[/php]Ciao!


  • User

    Ciao!
    Ho provato a creare i campi ma mi da errore:

    #1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

    Cosa significa??
    Grazie!