• User

    Semplice sito php/mysql...è veramente semplice ?

    Buonasera a tutti
    dovrei realizzare un sito in teoria molto semplice ma essendo un purissimo neofita di php chiedo il vostro aiuto, casomai con esempi e tutorial mirati.
    L'idea è questa:

    ho una tabella mysql con questi dati:

    id - nome - cognome
    1 - Mauro - Bianchi
    2 - Gigi - Neri
    3 - Nicola - Rossi

    devo creare una singola pagina del tipo miosito . it / index . php ? id = 1 che mi possa richiamare in base all'id che metto nella URL i dati contenuti nella riga.
    Ad esempio al link miosito .it / index.php ? id = 1 mi apparirà una pagina:

    ""Ciao ! Benvenuto Mauro Bianchi !""

    mi potete aiutare ? come posso specificare nella URL il richiamo della riga MYSQL ?

    Grazie e perdonatemi se ho impiegato termini non appropriati...


  • Consiglio Direttivo

    Ciao marcopietro e benvenuto nel Forum GT. 😉

    Tranquillo che non c'è nulla di complicato.

    Passando il parametro id tramite GET dovrai recuperare tale valore associandolo ad una variabile, connetterti al Db, selezionare la riga il cui id è quello ottenuto tramite GET e quindi visualizzare il risultato dell'interrogazione del Db:
    [php]<?php
    $id=$_GET['id']; //associ il valore id alla variabile
    require_once("config.php"); //ti connetti al Db tramite il file di connessione
    $sql="SELECT nome, cognome FROM nome_tabella WHERE id='$id'"; //costruisci la stringa sql per selezionare i valori dei campi nome e cognome il cui id è uguale al valore della variabile
    $query=@mysql_query($sql) or die (mysql_error()); //esegui la query
    $array = mysql_fetch_row($query); //associ il risultato ad un array numerico dove 0 sarà il campo nome ed 1 il campo cognome
    echo "Ciao! Benvenuto ".$array[0]." ".$array[1]."!";
    ?>[/php]Spero ti sia d'aiuto. :ciauz:


  • User Attivo

    Esatto: nell'url specifichi un solo dato che poi viene passato al codice che, quindi, richiama con le funzioni specifiche di PHP i dati nel db.


  • User

    Grazie mille ! siete eccezionali !
    ora provo e vi faccio sapere come va !

    Ciao !


  • User

    Eccezionale ragazzi, ci sono riuscito !
    Ora vi chiedo una ultima cosa...da un semplice form html/php devo inserire i dati nella tabella mysql (così poi mi trovo facile a richiamarli con l'id). mi potete consigliare un modo per farlo e per rendere sequenziale l'id di ogni inserimento di dati che effettuo ?

    Ultimissima cosa: come posso visualizzare tutta la tabella con una pagina php e eventualmente modificare i dati inseriti ?

    Grazie !;)


  • User Attivo

    L'id dovrebbe generarsi da solo: tramite il pannello di phpmyadmin definiscila come chiave primaria e AI (auto incrementa). Senza inserirlo nella query si incrementa automaticamente e non potra` mai essere doppio!

    Per visualizzare tutti i dati in una pagina fai una query per i dati di quella tabella e poi con un ciclo while li stampi tutti.


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