Visualizzazione risultati 1 fino 7 di 7

Discussione: Inserire riassunti database MySQL

  1. #1
    Guest

    Angry Inserire riassunti database MySQL

    Ciao a tutti, sto lavorando ad un progetto principalmente per la mia scuola ma accessibile a tutti, e mi serve il vostro aiuto
    Devo creare una pagina che dia l'opportunità di inserire dati, in questo caso dei riassunti, e questi devono andare a riempire il database per poi, tramite un altra pagina essere ricercati tramite un form e stampati in una pagina.
    Il problema e che essendo agli inizi con MySQL non so bene come iniziare (e per adesso neanche come continuare ).
    Di seguito troverete il codice config.php per la connessione al database:
    Codice PHP:
    <?php
    class MysqlClass
    {
    private
    $hostname = "NOMEHOSG";
    private
    $usurname = "USURNAME";
    private
    $password = "PASSWORD";
    //controllo connessioni attive
    private $attiva = false;
    //funzioni connessione mysql
    public function connetti()
    {
    if(!
    $this->attiva) {
    $connessione = mysql_connect($this->hostname, $this->usurname, $this->password) or die(mysql_error()); }
    else { return
    true;}
    }
    }
    ?>
    Questo invece è il codice per la pubblicazione del riassunto:
    Codice PHP:
    <?php
    if(isset($_POST['submit'])&&($_POST['submit']=="Scrivi")){

    if(isset(
    $_POST['autore'])){
    $autore = addslashes(filter_var($_POST['autore'], FILTER_SANITIZE_STRING));
    }
    if(isset(
    $_POST['titolo'])){
    $titolo = addslashes(filter_var($_POST['titolo'], FILTER_SANITIZE_STRING));
    }
    if(isset(
    $_POST['testo'])){
    $testo = addslashes(filter_var($_POST['testo'], FILTER_SANITIZE_STRING));
    }

    // inclusione del file della classe
    include "http://mathis.altervista.org/config.php";
    // istanza della classe
    $data = new MysqlClass();
    // chiamata alla funzione di connessione
    $data->connetti();

    $t = "Riassunto"; # nome della tabella
    $v = array ($titolo,$testo,$autore,); # valori da inserire
    $r = "titolo_riassunto,riassunto,autore_riassunto"; # campi da popolare

    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);
    echo
    "Articolo inserito con successo.";
    // disconnessione
    $data->disconnetti();
    }else{
    // form per l'inserimento
    ?>
    <h1>Inserimento post:</h1>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    Titolo:<br>
    <input name="titolo" type="text"><br />
    Testo:<br>
    <textarea name="testo" cols="30" rows="10"></textarea><br />
    Autore:<br>
    <input name="autore" type="text"><br />
    <input name="submit" type="submit" value="Scrivi">
    </form>
    <?
    }
    ?>
    I campi del database sono così distribuiti:
    CAMPO / TIPO / NULL
    autore_riassunto / varchar(30) / No
    titolo_riassunto / varchar(255) / No
    riassunto / text / No

    Ora vi chiedo:
    1. Cosa sbaglio nel codice? Mi da un errore nella MysqlClass
    2. Qualcuno può aiutarmi sui codici php e database, e su come fare per ricercare i dati e farli stampare in una pagina?

    Spero nel vostro aiuto ma grazie comunque

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Il codice lo hai fatto te ho preso da internet? sei all'inizi con mysql, è con la programmazione ad oggetto ( utilizzo delle classi )?

    Che errori di da? hai attivato sul tuo panello di controllo il supporto a php5 ( per usare le classi )?

    Nel secondo file chiami due funzioni inserisci() e disconnetti() che non esistono nella tua classe, ti consiglio di studiarti meglio la cosa, se mai prima prova a farlo senza l'utilizzo delle classi.

    Sevenjeak
    Software developer and much more

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Se devi cominciare con mysql, salta le funzioni mysql_ (che sono ormai deprecate) e passa direttamente a PDO.

    http://net.tutsplus.com/tutorials/ph...tabase-access/

    Inoltre:

    Codice PHP:
    // inclusione del file della classe
    include "http://mathis.altervista.org/config.php";
    Includere file in questo modo effettua una nuova chiamata al server. Questo vuol dire che a) è lento b) funziona solo se ti è permesso aprire url, ma cosa più importante c) non ti restituisce il codice php, ma l'output della sua esecuzione.

    Devi includere file nel tuo spazio web, non pagine del tuo sito web. E se è roba importante, è meglio usare require.
    Codice PHP:
    require 'config.php';
    Ultima modifica di dreadnaut : 31-08-2012 alle ore 20.25.15

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Il codice lo hai fatto te ho preso da internet? sei all'inizi con mysql, è con la programmazione ad oggetto ( utilizzo delle classi )?

    Che errori di da? hai attivato sul tuo panello di controllo il supporto a php5 ( per usare le classi )?

    Nel secondo file chiami due funzioni inserisci() e disconnetti() che non esistono nella tua classe, ti consiglio di studiarti meglio la cosa, se mai prima prova a farlo senza l'utilizzo delle classi.
    Il codice l'ho tirato fuori da una guida on-line, comunque come attivo php5?
    Comunque adesso mi studio meglio la cosa..

    PS: Per il resto e corretto? E poi, in che modo posso fare una ricerca sul database per farmi spuntare i vari possibili riassunti?
    Per esempio creo un form che dice di inserire la MATERIA, come posso andare a prendere le informazioni dal database e spuntare tutti i riassunti che combaciano in una pagina tipo: TITOLO RIASSUNTO 1 / TITOLO RIASSUNTO 2. Poi clicchi e ti escono tutte le informazioni più il riassunto?

    PPS: Grazie anche a Dreadnaut

  5. #5
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Sia se usi la libreria pdo che le classi puoi cambiare versione del php dal tuo panello di controlla andando su, AlterSito > Gestione file per poi cliccare sull'immagine dell'ingranaggio, sopra la lista dei file, li, oltre a cambiare versione al php puoi cambiare altre impostazioni.

    Oltre a quello detto qui sopra credo che il codice vada bene.

    Sevenjeak
    Software developer and much more

  6. #6
    Guest

    Predefinito

    Ho cambiato versione di php passando alla 5.3.
    Comunque l'errore persiste anche se ora cambia il tipo: "Fatal error: Call to undefined method MysqlClass::inserisci() in /membri/mathis/Inviaciriassunto.php on line 26"
    PS: Qualcuno potrebbe darmi una mano magari spiegandomi come sistemarlo al meglio?

    edit:

    O magari sapete in che modo posso fare per sostituire il form (solo la parte RIASSUNTO) e dare la possibilità di inserire un allegato esterno?
    Tipo:
    TITOLO:
    MATERIA:
    AUTORE:
    ALLEGA RIASSUNTO

    Non so se avete capito... comunque per adesso mi accontento anche del form.. Grazie per l'aiuto.
    Ultima modifica di dreadnaut : 01-09-2012 alle ore 14.14.14 Motivo: consecutivi

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Non so dove tu abbia preso il codice di quella classe, ma ne mancano dei grossi pezzi. Ad esempio, nel resto del codice fai riferimento a metodi inserisci() e disconnetti() che non esistono. Non si tratta quindi di sistemarlo, ma di scriverlo.

    Se vuoi degli esempi di accesso al database, il mio link sopra copre PDO, e qua c'è un esempio via fnuzioni mysql_*.

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •