Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Creare Tabella Se..

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15

    Creare Tabella Se..

    Salve!
    Sto cercando di imparare il PHP insieme all' SQL.

    Son riuscito, per ora, a creare questo: http://jollytest.altervista.org/

    Penso non avrete problemi a capire cosa faccia: cliccando sul pulsante si viene mandati a un file .php che contiene questo codice:
    Codice PHP:
    <?php

        $database 
    mysql_connect ("localhost","jollytest","*****");
        
    mysql_select_db ("my_jollytest"$database);
        
        
    $SQL_create_table "CREATE TABLE Persons  (
             FirstName varchar(15),
             LastName varchar(15),
             Age int
         )"
    ;
     
         
    mysql_query ($SQL_create_table$database);

        
    // header( "Location: [url]http://jollytest.altervista.org/[/url]" );
     
    ?>
    Questo non fa altro che creare una Tabella Persons!

    Le domande ora sono 3:

    1) E' normale che, una volta cliccato sul pulsante e arrivati alla pagina "create_table.php" e andando nella sua Sorgente, il codice PHP non compaia assolutamente? ( Cioè, so che il PHP viene eseguito dal Server e poi la pagina viene data all'utente così come è stata "calcolata" da quel codice, ma pensavo che fosse comunque visibile. )

    2) Vorrei sapere se c'è un modo per dire di creare la tabella solo se questa non esiste già. Cercando ho trovato che potrei mettere "Create table if not exists", però quello che vorrei io è scrivere: ( lo scrivo in "algoritmo"

    codice:
    Se (tabella 'Persons' non esiste) {
    "mysql_query ($SQL_create_table, $database);"
    scrivi "Tabella creata";
    }
    
    Senno scrivi "tabella già esistente"
    3) Eh calma, in effetti per la terza mi serve sapere prima la 2^ :P E siccome voglio andare con calma meglio non saltare passaggi >_>


    Grazie!

  2. #2
    1.
    Il codice PHP viene eseguito lato server, per cui al browser dell'utente (il client) arriva solo ed esclusivamente il codice HTML generato dalla pagina PHP, in base alle procedure che vengono programmate.
    Risposta: si, è normale!

    2.
    codice:
    CREATE TABLE IF NOT EXISTS Persons  ( 
             FirstName varchar(15), 
             LastName varchar(15), 
             Age int
    Ora, permettimi di dire una cosa..... e lo dico per te: non offenderti!
    La risposta alla domanda 1, è scritta in tutti i manuali e tutorial che trovi online per imparare il linguaggio.
    Penso che prima di fare delle prove, dovresti studiare un minimo i costrutti di base e le modalità di lavoro; imparare le differenza tra linguaggio lato client e lato server; studiare le basi, insomma.
    Se prima non ti fai una base un minimo solida, rischi di postare delle domande ed ottenere delle risposte che non capirai.

    Ad ogni modo, benvenuto nel forum e in bocca al lupo!
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15
    Grazie della risposta =D

    Non mi offendo, stai tranquillissimo! Soltanto che a leggere tutte la Teoria e non provare nessuna pratica non riesco a memorizzare bene >_> Difatti la prima domanda era fatta per accertarmi di quello che avevo detto / pensato / capito =D

    Per la seconda parte:
    La funzione "IF NOT EXISTS" lo avevo già trovato, ma non è esattamente quello che cercavo >_>
    In poche parole parole funzione $SQL_Create_Table veniva creata, ma la query data da "mysql_query ($SQL_create_table, $database);" volevo che venisse fatta solamente se la tabella Persons non era già esistente.

  4. #4
    Originariamente inviato da Jollyk
    Per la seconda parte:
    La funzione "IF NOT EXISTS" lo avevo già trovato, ma non è esattamente quello che cercavo >_>
    In poche parole parole funzione $SQL_Create_Table veniva creata, ma la query data da "mysql_query ($SQL_create_table, $database);" volevo che venisse fatta solamente se la tabella Persons non era già esistente.
    E che differenza ci sarebbe con quello che ti ha giustamente suggerito alcio74? Per verificare l'esistenza di una tabella dovresti comunque effettuare una query e, successivamente, se tale query da risultato negativo eseguire una seconda query per creare la tabella interessata.
    La soluzione di alcio74 ti permette di integrare questo comportamente in un'unica query.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Originariamente inviato da Jollyk
    Soltanto che a leggere tutte la Teoria e non provare nessuna pratica non riesco a memorizzare bene
    Capisco cosa intendi, però la pratica si deve fare piano piano.
    Se non sai guidare la macchina è pericoloso entrare in autostrada se non sai gestire freno, frizione e acceleratore.
    Non so se mi sono spiegato!

    Originariamente inviato da Jollyk
    La funzione "IF NOT EXISTS" lo avevo già trovato, ma non è esattamente quello che cercavo
    In poche parole parole funzione $SQL_Create_Table veniva creata, ma la query data da "mysql_query ($SQL_create_table, $database);" volevo che venisse fatta solamente se la tabella Persons non era già esistente.
    Torno a quanto scritto sopra... perché la sensazione che mi dai scrivendo è che hai le idee parecchio confuse!
    Quando si programma una qualsiasi applicazione in un qualsiasi linguaggio, la prima cosa da fare è ragionare al contrario.
    Cosa dovrà fare la mia applicazione?
    Come arrivo a fargli fare quello che deve fare?
    Da dove comincio?

    Lo scopo finale delle tue prove, quale sarebbe?
    Creare al volo una particolare tabella?
    OK.
    Crei un pulsante, alla pressione del quale parte una query.
    Se l'operazione da fare è creare una tabella solo se questa non esiste, quello che devi pensare è:
    1. il pulsante mi rimanda ad uno script.
    2. lo script prevede due sole opzioni, viene eseguito/non viene eseguito.
    3a. messaggio di cortesia se lo script viene eseguito
    3b. messaggio di cortesia se lo script NON viene eseguito.

    Nei manuali si parla di funzioni PHP, e di quelle PHP/MySQL.
    Si anche di come intercettare i risultati di operazioni al DB.
    Per esempio puoi usare il DIE per fermare uno script e decidere di inviare un messaggio di errore.

    Codice PHP:
    $sql "CREATE TABLE nome_tabella
    ...................
    "
    ;
    $query mysql_query($sql) OR DIE("Impossibile eseguire la query.");
    echo 
    "Query Eseguita!"
    In tre righe si fa quello che te necessiti.
    Noterai un po' di cose.
    La prima è che non ho messo IF NOT EXISTS nella stringa sql: se ci fosse, la query verrebbe eseguita lo stesso e non otterresti mai l'errore.
    Ho inserito il DIE con un messaggio per farmi restituire un messaggio di errore. Potrei addirittura concatenarci stringhe di testo con mysql_errno() e mysql_error().
    Con questo metodo ottengo la valutazione dell'evento generato dallo script senza neanche usare un IF/ELSE.
    Il valutare le condizioni restituite da uno script è alla base della programmazione.

    Con questo ribadisco il fatto che È NECESSARIO avere delle basi da cui partire, prima di iniziare a programmare!!!
    Puoi fare in tanti modi.
    Io ti consiglio caldamente di leggere approfonditamente due guide gratuite che trovi in questo stesso sito:
    # Guida PHP MySQL Pratica
    # Guida PHP Base
    Ci troverai anche degli esempi di codice che potrai copiare/incollare/modificare per farei tuoi esperimenti e fissare così sempre più nozioni.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15
    @Satifal:
    Perché la mia idea era:
    Se tabella non esiste, creala e scrivi "Tabella Creata"
    Senno scrivi "Tabella Già Esistente"

    E tramite il IF NOT EXISTS non avevo idea di come far scrivere il "Tabella Già Esistente".


    @alcio74:
    Capisco che mi stai dando una mano, e per questo ti ringrazio, solo che come metodo di studio o apprendimento, come vuoi chiamarlo, mi trovo bene così, e per quanto riguarda quello che ho già studiato direi che sia andata bene.. Ecco ovviamente non mi metterò a lavorare su Dati riservati o cose del genere, nel senso, non penso posso creare incidenti, è più come se stessi giocando a Gran Turismo che andare in autostrada con la macchina vera >_>

    Comunque, tornando al "problema", quello che hai usato te di codice è esattamente quello che chiedevo, perché il mio "problema" arrivava su come creare il messaggio laddove lo Script non venisse eseguito.
    La confusione che io ho in testa ( e ora che parliamo di PHP e quant'altro ne ho parecchia ), in questo caso era data dal fatto che mi chiedevo se quello che ha detto Satifal ( "Per verificare l'esistenza di una tabella dovresti comunque effettuare una query e, successivamente, se tale query da risultato negativo eseguire una seconda query per creare la tabella interessata." ) si potesse fare in un sola query o tramite un IF.



    Comunque, non sto apprezzando i vostri consigli, non mi reputo un genio e neanche uno sopra la media, è solo che come già detto, tramite la pratica penso di riuscire ad afferrare i concetti prima, rispetto che studiarli e poi attuarli tutti assieme. Ti ringrazio per la soluzione al mio problema e se mi ricapiterà di fermarmi di nuovo spero qualcun altro potrà rispondere bene come te =D

    Grazie anche a Satifal!

  7. #7
    scusate...per la precisione, vorrei solo aggiungere che il codice suggerito - per altro correttissimo a scopo didattico - non fa esattamente quello che ti proponevi...

    Originariamente inviato da alcio74
    Codice PHP:
    $sql "CREATE TABLE nome_tabella
    ...................
    "
    ;
    $query mysql_query($sql) OR DIE("Impossibile eseguire la query.");
    echo 
    "Query Eseguita!"
    Infatti la query potrebbe fallire per motivi diversi, tra i quali l'esistenza della tabella è solo uno dei tanti.....

    quindi un approccio più corretto sarebbe:
    Codice PHP:
    $sql "CREATE TABLE nome_tabella
    ...................
    "
    ;
    $query mysql_query($sql);
    if (!
    query

       if (
    mysql_errorno()==1050//codice dell'errore "Table already exists"
       
    {
          echo 
    'la tabella esiste già'
       }
       else
       {
          echo 
    'errore nel craere la tabella:'.mysql_error(); 
       }
    }
    else
    {
       echo 
    "Tabella creata con successo!";

    ...sebbene anche questo non sia ancora a prova di errore perché manca il riferimento al link identifier del db...


  8. #8
    Originariamente inviato da philbert
    Infatti la query potrebbe fallire per motivi diversi, tra i quali l'esistenza della tabella è solo uno dei tanti.....
    È ovvio che il mio codice è stato messo più per dimostrare come generare un determinato flusso di informazioni che per altro.
    Gli avevo suggerito proprio di andarsi a vedere le varie funzioni PHP/MySQL tra cui mysql_error() e mysql_errno().
    Andare a fare il catching di uno solo dei possibili N errori MySQL credo sia restrittivo.
    Tanto per continuare ad essere precisi, poi, mysql_errorno() non esiste!!

    Originariamente inviato da Jollyk
    Capisco che mi stai dando una mano, e per questo ti ringrazio, solo che come metodo di studio o apprendimento, come vuoi chiamarlo, mi trovo bene così, e per quanto riguarda quello che ho già studiato direi che sia andata bene.. Ecco ovviamente non mi metterò a lavorare su Dati riservati o cose del genere, nel senso, non penso posso creare incidenti, è più come se stessi giocando a Gran Turismo che andare in autostrada con la macchina vera
    Da quello che scrivi, penso che hai recepito male il mio consiglio: non ti sto criticando, ma cercando di far capire che rischi di ingarbugliarti le idee.
    Il discorso non è quali danni potrai fare nel creare uno script fallato o meno.
    Se stai impiegando parte del tuo tempo libero nello studio del PHP, allora fallo con la mira di studiare per creare una applicazione completa e solida!
    Perché limitarsi in partenza???
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2010
    Messaggi
    15
    Tranquillo non l'ho presa come critica! Anzi scusami se ti ho dato questa impressione o se ti ho fatto arrabbiare ( uso questa parola per non usarne piu scurrili xD )

    E poi penso che le critiche facciano comunque bene nella vita!


    Comunque, se posso ( senza andare troppo OT ), voglio arrivare a riuscire a creare un modulo di registrazione Account e di Login, e una volta loggato la visione di una semplice pagine, che non potrebbe essere vista se non loggati. Però prima devo capire come creare Tabelle, come usare i Dati al suo interno, richiamarli e tutto il resto ( che ancora non so :P ).

    Comunque grazie mille, davvero!

  10. #10
    consiglio questa guida
    mi è stata molto utile per comprendere il sistema di login
    http://www.youtube.com/watch?v=ec0ZRaml02k


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.