• User

    Ok ho attribuito il AI e chiave primaria a "ID".
    Come posso realizzare il form per inserire i dati ? mi basta un esempio semplice, poi ripeto tutto a manetta !
    La soluzione per la visualizzazione dei dati è perfetta, per modificarli ci sono dei pacchetti o script comodi ? (tipo visualizzazione stile excel dei dati mysql e possibilità di modifica ?)

    Grazie ancora !


  • User Attivo

    Per inserirli devi fare un form in HTML e quindi una azione in PHP che esegue i comandi di INSERT dei dati nel db (e tutti i relativi controlli). Penso che sarebbe il caso che cerchi una guida da 0 che ti dica passo passo come inserire i dati, modificarli e quindi visualizzarli: cerca su HTML .it


  • Consiglio Direttivo

    O magari dare un occhiata quì sul Forum. 😉


  • ModSenior

    Ciao marcopietro,
    fai attenzione comunque a fare dei controlli preventivi su tutti gli input. La porzione di codice postata da Samyorn va bene a scopo didattico, è sprovvista però di controlli e vulnerabile a SQL INJECTION qualora la direttiva magic_quotes è impostata su OFF.
    Oltre che verificare esista nella tabella un dato relativo all'id inserito.
    Sono punti che ovviamente vanno approfonditi uno ad uno, anche per non fare troppa confusione, ma da non dimenticare se gli script verranno utilizzati in produzione.


  • User

    Ciao !
    ho creato una pagina php per l'inserimento di dati nel db che viene richiamata dal form specifico ma mi compare questo errore:

    **Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') VALUES ('id','Mario Rossi','Azienda Dolce','Via roma 213, milano','05673' at line 1
    **

    <?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }
    
    mysql_select_db("prova", $con);
    
    $sql="INSERT INTO prova (id, nome, azienda, via, telefono, cellulare, emai, sito, displaylogo, logo, tipomiele, tipologia, caratteristiche, altitudine, lotto, quantita, data, tipoproduzione, displayfoto, foto1, displayfoto2, foto2, displayvideo, video, displayvideo2, video2, displayfoto3, foto3, valori, schedamiele, anno1, miele1, premio1, anno2, miele2, premio2, anno3, miele3, premio3, anno4, miele4, premio4, anno5, miele5, premio5, latitudine, longitudine,)
    VALUES
    ('$_POST[id]','$_POST[nome]','$_POST[azienda]','$_POST[via]','$_POST[telefono]','$_POST[cellulare]','$_POST[emai]','$_POST[sito]','$_POST[displaylogo]','$_POST[logo]','$_POST[tipomiele]','$_POST[tipologia]','$_POST[caratteristiche]','$_POST[altitudine]','$_POST[lotto]','$_POST[quantita]','$_POST[data]','$_POST[tipoproduzione]','$_POST[displayfoto]','$_POST[foto1]','$_POST[displayfoto2]','$_POST[foto2]','$_POST[displayvideo]','$_POST[video2]','$_POST[displayfoto3]','$_POST[foto3]','$_POST[valori]','$_POST[schedamiele]','$_POST[anno1]','$_POST[miele1]','$_POST[premio1]','$_POST[anno2]','$_POST[miele2]','$_POST[premio2]','$_POST[anno3]','$_POST[miele3]','$_POST[premio3]','$_POST[anno4]','$_POST[miele4]','$_POST[premio4]','$_POST[anno5]','$_POST[miele5]','$_POST[premio5]','$_POST[latitudine]','$_POST[longitudine]')";
    
    if (!mysql_query($sql,$con))
      {
      die('Errore: ' . mysql_error());
      }
    echo "1 apicoltore inserito";
    
    mysql_close($con)
    ?>
    
    
    
    

    **NON RIESCO A TROVARE L'ERRORE !!
    mi riuscite ad aiutare ?
    **


  • User Attivo

    I dati numero (ovvero INT) di MySQL non vanno inseriti con gli apici tipo 'id' (che tra l'altro se metti AI non serve neanche).


  • User

    Ciao !
    grazie della risposta, ma se anche tolgo id mi da lo stesso errore...quello che vorrei almeno capire è se questo errore è nel php o ha una radice + profonda...
    Tutto funzionava benissimo finchè erano pochi campi poi quando ho inserito tutti gli altri è comparso l'errore.
    Su phpmyadmin i campi sono specificati come TEXT fatta eccezione per id che è INT e AI.


  • ModSenior

    C'è una virgola di troppo:
    [php]longitudine,)[/php]


  • User

    Perfetto, tutto risolto.
    Non avevo inserito alcuni campi ! :mmm:

    Grazie !

    Ciao ciao.


  • User

    Ciao a tutti. Sono un neofita di PHP, ho un dubbio. Avrei necessità di creare una funzione del tipo

    [PHP]if($_POST['unita'] == '1A' or '1B' or '1C' or '1D' or '1E' or '1F')[/PHP]

    Sono quasi certo sia sbagliata, ma non trovo niente in rete su quale sia il modo corretto per realizzare una cosa del genere.
    Nel caso ve lo chiedeste, il discorso è semplice si tratta di appartamenti di un palazzo "1" è il piano "A-B ecc.." è la tipologia, sono tanti piani e tanti tipi, siccome il sito è già quasi tutto pronto, e mi manca solamente da creare la struttura di questa pagina, non vorrei stravolgere tutto il lavoro.

    Spero qualcuno possa aiutartmi

    di seguito il link alle pagine "work in progress"

    pomba25.it/_prove/appartamenti-bis.php


  • ModSenior

    Ciao Rapide,
    puoi fare cosi ad esempio:
    [php]
    if(in_array($_POST['unita'], array('1A', '1B', '1C', '1D', '1E', '1F')))
    [/php]


  • User

    Grazieeeeee... Ho risolto col tuo consiglio, funziona... Questo forum continua ad essere l'unico che mi aiuta veramente!


  • 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.