• User

    Ciao a tutti!
    scusate ma sono stanchissimo, scrivo codici da non so quanto ed ora mi sono impantanato. Sto modificando una galleria jQuery (licenza open GL) tramutandola da semplice galleria in HTML (con riferimenti "statici" alle immagini" a galleria in PHP con riferimenti "dinamici" alle immagini comandate tramite POST da una pagina precedente.
    Problema:
    funziona quasi tutto eccetto per il fatto che non mi "scrive" (echo) i link che dovrebbe recuperare dal DB MySql. C'è di sicuro un errore di sintassi, ma non riesco ad individuarlo... è tutta la notte che ci provo... chi si offre di aiutarmi? Posto tutto il codice qui (è un po' lunghetto) o preferite un messaggio privato?

    Grazie in anticipo a tutti

    Ciao

    P.


  • User Attivo

    Posta il codice, però racchiudilo nel tag PHP altrimenti ci si capisce poco.


  • User

    Grazie mille!! Ecco il codice

    <?php include '../_php/connect.php'; ?>
    <?php
    $unita == $_POST['unita'];
    
    
    $foto = mysql_query("SELECT * FROM Appartamenti WHERE unita='$unita'");
        while($row = mysql_fetch_array($foto))
        {
            $planimetria = $row['planimetria'];
            $foto1 = $row['foto1'];
            $foto2 = $row['foto2'];
            $foto3 = $row['foto3'];
            $foto4 = $row['foto4'];
            $foto5 = $row['foto5'];
            $foto6 = $row['foto6'];
        }
    
    
    //Header vari
    
    
    <script type='text/javascript'>
        
        jQuery(function($){
            
            $.supersized({
            
                // Functionality
                slideshow               :   1,            // Slideshow on/off
                autoplay                :    0,            // Slideshow starts playing automatically
                start_slide             :   1,            // Start slide (0 is random)
                stop_loop                :    0,            // Pauses slideshow on last slide
                random                    :     0,            // Randomize slide order (Ignores start slide)
                slide_interval          :   3000,        // Length between transitions
                transition              :   6,             // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
                transition_speed        :    1000,        // Speed of transition
                new_window                :    1,            // Image links open in new window/tab
                pause_hover             :   0,            // Pause slideshow on hover
                keyboard_nav            :   1,            // Keyboard navigation on/off
                performance                :    1,            // 0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit)
                image_protect            :    1,            // Disables image dragging and right click with Javascript
                                                           
                // Size & Position                           
                min_width                :   0,            // Min width allowed (in pixels)
                min_height                :   0,            // Min height allowed (in pixels)
                vertical_center         :   1,            // Vertically center background
                horizontal_center       :   1,            // Horizontally center background
                fit_always                :    0,            // Image will never exceed browser width or height (Ignores min. dimensions)
                fit_portrait             :   1,            // Portrait images will not exceed browser height
                fit_landscape            :   0,            // Landscape images will not exceed browser width
                                                           
                // Components                            
                slide_links                :    'blank',    // Individual links for each slide (Options: false, 'num', 'name', 'blank')
                thumb_links                :    1,            // Individual thumb links for each slide
                thumbnail_navigation    :   0,            // Thumbnail navigation
                slides                     :      [            // Slideshow Images
                
                                                    {image : '".$planimetria."', title : 'Image Credit: Maria Kazvan', thumb : '#', url : '#'},
                                                    {image : '".$foto1."', title : 'Image Credit: Maria Kazvan', thumb : '#', url : '#'},  
                                                    {image : '".$foto2."', title : 'Image Credit: Maria Kazvan', thumb : '#', url : '#'},
                                                    {image : '".$foto3."', title : 'Image Credit: Colin Wojno', thumb : '#', url : '#'},
                                                    {image : '".$foto4."', title : 'Image Credit: Colin Wojno', thumb : '#', url : '#'},
                                                    {image : '".$foto5."', title : 'Image Credit: Colin Wojno', thumb : '#', url : '#'},
                                                    {image : '".$foto6."', title : 'Image Credit: Brooke Shaden', thumb : '#', url : '#'}
                                            ],
                                            
                // Theme Options               
                progress_bar            :    1,            // Timer for each slide                            
                mouse_scrub                :    0
                
            });
        }); 
    </script> 
    </head>";
    ?>
        
        <style type="text/css">
            ul#demo-block{ margin:0 15px 15px 15px; }
                ul#demo-block li{ margin:0 0 10px 0; padding:10px; display:inline; float:left; clear:both; color:#aaa; background:url('img/bg-black.png'); font:11px Helvetica, Arial, sans-serif; }
                ul#demo-block li a{ color:#eee; font-weight:bold; }
        </style>
    
    
    <body>
    
    
        <!--Demo styles (you can delete this block)-->
        
        <ul id="demo-block">
            <li><h1>APPARTAMENTO <?php echo $_POST['unita'] ?></h1></li>
        </ul>
        
        <!--End of styles-->
    
    
        <!--Thumbnail Navigation-->
        <div id="prevthumb"></div>
        <div id="nextthumb"></div>
        
        <!--Arrow Navigation-->
        <a id="prevslide" class="load-item"></a>
        <a id="nextslide" class="load-item"></a>
        
        <div id="thumb-tray" class="load-item">
            <div id="thumb-back"></div>
            <div id="thumb-forward"></div>
        </div>
        
        <!--Time Bar-->
        <div id="progress-back" class="load-item">
            <div id="progress-bar"></div>
        </div>
        
        <!--Control Bar-->
        <div id="controls-wrapper" class="load-item">
            <div id="controls">
                
                <a id="play-button"><img id="pauseplay" src="img/pause.png"/></a>
            
                <!--Slide counter-->
                <div id="slidecounter">
                    <span class="slidenumber"></span> / <span class="totalslides"></span>
                </div>
                
                <!--Slide captions displayed here-->
                <div id="slidecaption"></div>
                
                <!--Thumb Tray button-->
                <a id="tray-button"><img id="tray-arrow" src="img/button-tray-up.png"/></a>
                
                <!--Navigation-->
                <ul id="slide-list"></ul>
                
            </div>
        </div>
    
    
    </body>
    </html>
    
    

  • User Attivo

    $unita == $_POST["unita"];

    è errato... == si usa per confrontare due valori. Per assegnarlo, ci vuole un uguale solo:

    $unita = $_POST["unita"];

    La tua query così com'è il codice adesso è: SELECT * FROM Appartamenti WHERE unita='' quindi non dovrebbe estrarre nulla.


  • User

    Grazie Francesco, ho corretto la svista, effettivamente non me n'ero accorto, ma di fatto la galleria continua a non funzionare... Il valore passato dal POST lo riconosce (stranamente lo riconosceva anche prima della tua correzione) Ma non riconosce i vari valori $foto1 ecc...

    Può essere sbagliato il modo in cui li inserisco nel codice? Può essere possibile che il codice non sia compatibile con l'inserimento di una stringa PHP? Seguono i link della pagina in questione e di come dovrebbe essere:

    pomba25.it/_galleria/slideshow/galleria.php
    pomba25.it/_galleria/slideshow/demo.html


  • User Attivo

    Effettivamente non me ne ero accorto, perché il $_POST["unita"] mi aveva dato un pugno nell'occhio. 😄

    Queste righe:

    {image : '".$planimetria."', title : 'Image Credit: Maria Kazvan', thumb : '#', url : '#'},
    

    devono diventare

    {image : '<? echo $planimetria; ?>', title : 'Image Credit: Maria Kazvan', thumb : '#', url : '#'},
    

    e così via per tutte le altre.


  • User

    Non credo sia quello il problema, se controlli il codice tutta quella porzione di HTML rientra già dentro un <?php [...] echo [...] ?>

    Forse non va bene strutturare così il file però... non capisco... rileggendo il codice mi sembra tutto corretto, o si tratta di una banale svista oppure ho proprio sbagliato a impostare il documento


  • User Attivo

    Vabbè, stavo cercando di andare ad occhio senza copiare il codice nell'IDE, ma arrivato a quest'ora dopo 10 ore di lavoro inizio a perdere colpi...

    Allora, l'echo che mi dici non c'è. Infatti per me il codice corretto è questo:

    
    <html>
        <head>
    <script type="text/javascript">var NREUMQ=NREUMQ||[];NREUMQ.push(["mark","firstbyte",new Date().getTime()]);</script>
    <?php include '../_php/connect.php'; ?>
            <?php
            $unita = $_POST['unita'];
            $foto = mysql_query("SELECT * FROM Appartamenti WHERE unita='$unita'");
            $row = mysql_fetch_array($foto);
            $planimetria = $row['planimetria'];
            $foto1 = $row['foto1'];
            $foto2 = $row['foto2'];
            $foto3 = $row['foto3'];
            $foto4 = $row['foto4'];
            $foto5 = $row['foto5'];
            $foto6 = $row['foto6'];
    
    
    //Header vari
            ?>
    
    
            <script type = 'text/javascript'>
                jQuery(function($) {
                    $.supersized({
                        // Functionality
                        slideshow: 1, // Slideshow on/off
                        autoplay: 0, // Slideshow starts playing automatically
                        start_slide: 1, // Start slide (0 is random)
                        stop_loop: 0, // Pauses slideshow on last slide
                        random: 0, // Randomize slide order (Ignores start slide)
                        slide_interval: 3000, // Length between transitions
                        transition: 6, // 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left
                        transition_speed: 1000, // Speed of transition
                        new_window: 1, // Image links open in new window/tab
                        pause_hover: 0, // Pause slideshow on hover
                        keyboard_nav: 1, // Keyboard navigation on/off
                        performance: 1, // 0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed // (Only works for Firefox/IE, not Webkit)
                        image_protect: 1, // Disables image dragging and right click with Javascript
                        // Size & Position                           
                        min_width: 0, // Min width allowed (in pixels)
                        min_height: 0, // Min height allowed (in pixels)
                        vertical_center: 1, // Vertically center background
                        horizontal_center: 1, // Horizontally center background
                        fit_always: 0, // Image will never exceed browser width or height (Ignores min. dimensions)
                        fit_portrait: 1, // Portrait images will not exceed browser height
                        fit_landscape: 0, // Landscape images will not exceed browser width
                        // Components                            
                        slide_links: 'blank', // Individual links for each slide (Options: false, 'num', 'name', 'blank')
                        thumb_links: 1, // Individual thumb links for each slide
                        thumbnail_navigation: 0, // Thumbnail navigation
                        slides: [// Slideshow Images
    
    
                            {image: '<? echo $planimetria; ?>', title: 'Image Credit: Maria Kazvan', thumb: '#', url: '#'},
                            {image: '<? echo $foto1; ?>', title: 'Image Credit: Maria Kazvan', thumb: '#', url: '#'},
                            {image: '<? echo $foto2; ?>', title: 'Image Credit: Maria Kazvan', thumb: '#', url: '#'},
                            {image: '<? echo $foto3; ?>', title: 'Image Credit: Colin Wojno', thumb: '#', url: '#'},
                            {image: '<? echo $foto4; ?>', title: 'Image Credit: Colin Wojno', thumb: '#', url: '#'},
                            {image: '<? echo $foto5; ?>', title: 'Image Credit: Colin Wojno', thumb: '#', url: '#'},
                            {image: '<? echo $foto6; ?>', title: 'Image Credit: Brooke Shaden', thumb: '#', url: '#'}
                        ],
                        // Theme Options               
                        progress_bar: 1, // Timer for each slide                            
                        mouse_scrub: 0
    
    
                    });
                });
            </script> 
        </head>
        <style type="text/css">
            ul#demo-block{ margin:0 15px 15px 15px; }
            ul#demo-block li{ margin:0 0 10px 0; padding:10px; display:inline; float:left; clear:both; color:#aaa; background:url('img/bg-black.png'); font:11px Helvetica, Arial, sans-serif; }
            ul#demo-block li a{ color:#eee; font-weight:bold; }
        </style>
        <body>
            <!--Demo styles (you can delete this block)-->
            <ul id="demo-block">
                <li><h1>APPARTAMENTO <?php echo $_POST['unita'] ?></h1></li>
            </ul>
            <!--End of styles-->
            <!--Thumbnail Navigation-->
            <div id="prevthumb"></div>
            <div id="nextthumb"></div>
            <!--Arrow Navigation-->
            <a id="prevslide" class="load-item"></a>
            <a id="nextslide" class="load-item"></a>
            <div id="thumb-tray" class="load-item">
                <div id="thumb-back"></div>
                <div id="thumb-forward"></div>
            </div>
            <!--Time Bar-->
            <div id="progress-back" class="load-item">
                <div id="progress-bar"></div>
            </div>
            <!--Control Bar-->
            <div id="controls-wrapper" class="load-item">
                <div id="controls">
                    <a id="play-button"><img id="pauseplay" src="img/pause.png"/></a>
                    <!--Slide counter-->
                    <div id="slidecounter">
                        <span class="slidenumber"></span> / <span class="totalslides"></span>
                    </div>
                    <!--Slide captions displayed here-->
                    <div id="slidecaption"></div>
                    <!--Thumb Tray button-->
                    <a id="tray-button"><img id="tray-arrow" src="img/button-tray-up.png"/></a>
                    <!--Navigation-->
                    <ul id="slide-list"></ul>
                </div>
            </div>
    <script type="text/javascript">if(!NREUMQ.f){NREUMQ.f=function(){NREUMQ.push(["load",new Date().getTime()]);var e=document.createElement("script");e.type="text/javascript";e.src=(("http:"===document.location.protocol)?"http:":"https:")+"//"+"d1ros97qkrwjf5.cloudfront.net/42/eum/rum.js";document.body.appendChild(e);if(NREUMQ.a)NREUMQ.a();};NREUMQ.a=window.onload;window.onload=NREUMQ.f;};NREUMQ.push(["nrfj","beacon-1.newrelic.com","1b473294f5","550561","M1QBYUMCDUAEWkRfWgoeNkdYTAVcF0xdGUMGQgZaHxMLQw==",0,49,new Date().getTime(),"","","","",""]);</script>
    </body>
    </html>
    
    

    1 - Visualizzi UN SOLO appartamento quindi praticamente il while che estrae il contenuto della query è inutile. Inoltre così facendo memorizzeresti solo l'ultimo estratto, non tutti;
    2 - Ora stampi sul serio le variabili estratte con echo()
    3 - Hai dei tag HTML, HEAD e BODY che si chiudono a dovere

    Assicurati però che foto1, foto2, ecc., contengano il PERCORSO dell'immagine. Perché così facendo stai supponendo che quelle immagini siano nella root. Se sono sotto immagini/appartamenti/, devi modificare anche il modo di stampare le immagini nel javascript, aggiungendo il percorso prima.

    EDIT: metti un if(!$foto) echo mysql_error() così se la query va in errore sai perché. Verifica anche il valore di mysql_num_rows($foto), per assicurarti che estragga almeno un record da quella query.


  • User Attivo

    Ignora categoricamente gli SCRIPT contenenti le parole NREUMQ che ci sono nell'header e nel footer del codice che ti ho postato. Per qualche motivo, il Forum GT aggiunge i parametri di monitoraggio di New Relic nei codici HTML che posti nel tag CODE, quando usi la risposta rapida. Eliminali dal codice che ho postato.


  • User

    Grazie mille, avevo intuito e li avevo già tolti... Sfortunatamente il risultato non cambia... Continua a non trovare le immagini, ho provato a inserire un'immagine fissa, come nella demo, ed il resto da MySql... ma vede solo la prima immagine, sia nella mia versione che nella tua. Indi per cui funzionare funziona tutto, fatto salvo che non riesco a fare in modo che le immagini vengano passate da una variabile condizionata da un POST.
    Il numero dell'appartamento però lo vede sempre, quindi il problema non è nel post (e tanto meno nella pagina precedente)... HELP!!! Non ne vengo a capo!


  • User

    Scusate se posto nuovamente io, ma le ho veramente provate tutte, il codice è corretto, ma non stampa i link. Mi viene un dubbio, potrebbe essere che uno dei file .js abbia un filtro di controllo e mi blocchi lo script? Mi sembra strano perché dovrebbero lavorare su due livelli diversi, uno lato server uno lato client, ma forse se intervenisse prima lo script js FORSE è possibile che mi blocchi la pagina html? (Mi sto incasinando la testa, non capisco neanche più quello che scrivo, spero che qualcuno sia in grado di interpretare).

    Ancora scusate ciao a tutti!!!!

    PS: di seguito per comodità il link ai tre file js

    pomba25.it/_galleria/js/jquery.easing.min.js
    pomba25.it/_galleria/js/supersized.3.2.7.js
    pomba25.it/_galleria/js/supersized.3.2.7.min.js


  • User Attivo

    Scusa, ma qual è il form che passa il parametro "unità"? Linkare la gallery non ti serve a nulla, dobbiamo passargli il parametro unità per far lavorare quello script.


  • User

    Prima di tutto grazie per l'assidua assistenza, sei molto gentile. Ad ogni modo ti incollo anche la porzione di codice che dovrebbe passare il parametro "unita". Esiste la probabilità che il parametro non venga passato correttamente, però mi stupisce il fatto che il titolo della foto restituisce correttamente il parametro unità. (il parametro che mi interessa è l'unità abitativa, tuttavia il parametro impostato è "unita" volutamente senza accento, lo chiarisco giusto per escludere la possibilità che si tratti di un banale errore di sintassi o battitura). Di seguito il link alla pagina "madre" così da poter controllare tu stesso il funzionamento e/o eventuali anomalie.

    Ancora grazie, CIAO!

    pomba25.it/_prove/appartamenti-bis.php

      echo "<form action='../_galleria/galleria.php' method='post' name='appartamenti'>";  echo "<!-- TIPOLOGIA A -->";
    		$tipo = mysql_query("SELECT * FROM Appartamenti WHERE id='$A'");
    		while($row = mysql_fetch_array($tipo))
      		{
      echo "<input type='submit' class='sx-a' name='unita' value='".$row['unita']."'/>";
      echo "<p class='corto-a'><br/>".$row['mq']."</p>
    		<p class='lungo1-a'><br/>".$row['terrazzo']."</p>
    		<p class='lungo2-a'><br/>".$row['canone']."</p>
    		<p class='dx-a'><br/>".$row['disponibile']."</p>";
            }
    		
      echo '<!-- TIPOLOGIA B -->';
    		$tipo = mysql_query("SELECT * FROM Appartamenti WHERE id='$B'");
    		while($row = mysql_fetch_array($tipo))
      		{
      echo "<input type='submit' class='sx-b' name='unita' value='".$row['unita']."'/>";
      echo "<p class='corto-b'><br/>".$row['mq']."</p>
    		<p class='lungo1-b'><br/>".$row['terrazzo']."</p>
    		<p class='lungo2-b'><br/>".$row['canone']."</p>
    		<p class='dx-b'><br/>".$row['disponibile']."</p>";
            }
    		
      echo' <!-- TIPOLOGIA C -->';
    		$tipo = mysql_query("SELECT * FROM Appartamenti WHERE id='$C'");
    		while($row = mysql_fetch_array($tipo))
      		{
      echo "<input type='submit' class='sx-c' name='unita' value='".$row['unita']."'/>";
      echo "<p class='corto-c'><br/>".$row['mq']."</p>
    		<p class='lungo1-c'><br/>".$row['terrazzo']."</p>
    		<p class='lungo2-c'><br/>".$row['canone']."</p>
    		<p class='dx-c'><br/>".$row['disponibile']."</p>";
            }
     
      echo '<!-- TIPOLOGIA D -->';
    		$tipo = mysql_query("SELECT * FROM Appartamenti WHERE id='$D'");
    		while($row = mysql_fetch_array($tipo))
      		{
      echo "<input type='submit' class='sx-d' name='unita' value='".$row['unita']."'/>";
      echo "<p class='corto-d'><br/>".$row['mq']."</p>
    		<p class='lungo1-d'><br/>".$row['terrazzo']."</p>
    		<p class='lungo2-d'><br/>".$row['canone']."</p>
    		<p class='dx-d'><br/>".$row['disponibile']."</p>";
            }
    
    
      echo '<!-- TIPOLOGIA E -->';
    		$tipo = mysql_query("SELECT * FROM Appartamenti WHERE id='$E'");
    		while($row = mysql_fetch_array($tipo))
      		{
      echo "<input type='submit' class='sx-e' name='unita' value='".$row['unita']."'/>";
      echo "<p class='corto-e'><br/>".$row['mq']."</p>
    		<p class='lungo1-e'><br/>".$row['terrazzo']."</p>
    		<p class='lungo2-e'><br/>".$row['canone']."</p>
    		<p class='dx-e'><br/>".$row['disponibile']."</p>";
            }
    		
      echo '<!-- TIPOLOGIA F -->';
    		$tipo = mysql_query("SELECT * FROM Appartamenti WHERE id='$F'"); 
    		while($row = mysql_fetch_array($tipo))
      		{
      echo "<input type='submit' class='sx-f' name='unita' value='".$row['unita']."'/>";
      echo "<p class='corto-f'><br/>".$row['mq']."</p>
    		<p class='lungo1-f'><br/>".$row['terrazzo']."</p>
    		<p class='lungo2-f'><br/>".$row['canone']."</p>
    		<p class='dx-f'><br/>".$row['disponibile']."</p>";
            }
    
    
      echo "</div>
            <div id='appartamento'>"; // GENERALE PIANTINE
    		$pianta_piano = mysql_query("SELECT * FROM Appartamenti WHERE tipologia='$TIPO'");
    		while($row_piano = mysql_fetch_array($pianta_piano))
      		{
            echo "<a href='appartamento.php' class='".$row_app['class']."'><img src='".$row_piano['pianta']."' alt='".$row_piano['unita']."' /></a>";
    		}
    		
    		$pianta_app = mysql_query("SELECT * FROM Appartamenti WHERE piano='$PIANO'");
    		while($row_app = mysql_fetch_array($pianta_app))
      		{
      echo "<input type='image' name='unita' value='".$row_app['unita']."' class='".$row_app['class']."' src='".$row_app['pianta']."'/>";
    		}
    

  • User Attivo

    Ciao,

    ho verificato con un debugger HTTP, dalla pagina che hai linkato il parametro unita viene passato correttamente.
    Quindi l'errore è da ricercarsi nella pagina ricettiva.
    Per favore, applica i controlli che ti ho indicato:

    • sulla variabile $foto, quello in cui memorizzi il buffer della query, va controllata come segue
      [php]
      if (!$foto) {
      echo mysql_error();
      exit();
      }
      if (mysql_num_rows($foto) == 0) {
      echo "Non ci sono record per questa unità.";
      exit();
      }
      [/php]
    • subito dopo l'estrazione della variabile $row, stampa con
      [php]
      print_r($row);
      [/php]
      e posta l'output.

  • User

    Fatto... errore restituito "Cant connect to local MySQL Server through socket '/var/lib/mysql/mysql.sock'(2).

    Le mie conoscenze autodidattiche di PHP sono limitate, capisco a stento l'errore, ma non comprendo assolutamente le ragioni, visto che uso un MySql remoto e non locale. Ma soprattutto il parametro unita viene restituito correttamente, quindi la connessione al DB funziona???

    :?:?:?:?:?:?:?

    Riesci ad uscirne??

    GRAZIEEEEE


  • User

    Fatto... errore restituito "Cant connect to local MySQL Server through socket '/var/lib/mysql/mysql.sock'(2).

    Le mie conoscenze autodidattiche di PHP sono limitate, capisco a stento l'errore, ma non comprendo assolutamente le ragioni, visto che uso un MySql remoto e non locale. Ma soprattutto il parametro unita viene restituito correttamente, quindi la connessione al DB funziona???

    :?:?:?:?:?:?:?

    Riesci ad uscirne??

    GRAZIEEEEE


  • User Attivo

    La connessione al DB non funziona... nella pagina che estrae il record la fai la connessione? I dati host, user, password e nome db sono corretti?


  • User

    Ho risolto!!!! Grazie Francesco!!! Nei vari copia, incolla e sostituisci mi aveva aggiunto caratteri inutili alla stringa "include" che includeva il codice di connessione al DB.

    Grazie mille!!!

    Ciao