Visualizzazione risultati 1 fino 9 di 9

Discussione: problema con form [era: aiutatemi a capire]

  1. #1
    Guest

    Predefinito problema con form [era: aiutatemi a capire]

    sto cercando d'imparare il php .. ho trovato per casa un libro edito dalla jackson qualche annetto fa con gli esempi pratici !
    purtroppo non riesco a capire xke alcuni esercizi ( tutti quelli che interaggiscono con un form in html ) non funzionano ... vi faccio un esempio queste sono 3 pagine che dovrebbero creare le tabelle dentro un db ...
    form in html
    Codice HTML:
    <HTML>
    <HEAD>
    <META NAME="GENERATOR" Content="AlterVista - Editor HTML">
    <TITLE>creazione tabella</TITLE>
    </HEAD>
    <BODY>
    <h1>fase1 nome tabella!</h1>
    <form method="post" action:"test.php">
    <p><strong>nome tabella:</strong><br>
    <input type="text" name="nome_tabella" size=30></p>
    <p><strong>numero campi</strong><br>
    <input type="text" name="num_campi" size=5></strong></p>
    <p><input type="submit" name="invio" value="passa alla fase2"></p>
    </BODY>
    </HTML>
    pagina 1 in php
    Codice PHP:
    <?php
    if ((!$nome_tabella) || (!$num_campi)) {
    header("location: http://stest.altervista.org/test19/test.html");
    exit;
    }
    $blocco_modulo = "
    <form method=\"post\" action=\"test2.php\">
    <input type\"hidden\" name=\"nome_tabella\" value=\"
    $nome_tabella\">
    <table cellspacing=\"5\" cellpadding=\"5\">
    <tr>
    <th>nome campo</th><th>tipo</th><th>lunghezza</th></tr>
    "
    ;
    for(
    $i = 0; $i < $num_campi; $i++ ) {
    $blocco_modulo .= "
    <tr>
    <td align=center><imput type=\"text\" name=\"nome_campo[]\" size=\"30\"></td>
    <td align=center>
    <select name=\"tipo_campo[]\">
    <option value=\"char\">char</option>
    <option value=\"date\">date</option>
    <option value=\"float\">float</option>
    <option value=\"int\">int</option>
    <option value=\"text\">text</option>
    <option value=\"varchar\">varchar</option>
    </select>
    </td>
    <td align=center><input type=\"text\" name=\"lunghezza_campo[]\" size=\"5\"></td>
    <tr>
    "
    ;
    }
    $blocco_modulo .= "
    <tr>
    <td align=\"center\" colspan=\"3\"><input type=\"submit\"
    value=\"crea tabella\"</td>
    </tr>
    </table>
    </form>
    "
    ;
    ?>
    <h1>definizione dei campi di <?php echo "$nome_tabella"; ?></h1>
    <?php echo "$blocco_modulo"; ?>
    pagina 2 in php
    Codice PHP:
    <?php
    $db_name
    = "my_stest";
    $connessione = @mysql_connect("localhost", "stest")
    or die(
    "impossibile connettersi");
    $db = @mysql_select_db($db_nome, $connessione)
    or die(
    "impossible selezionare db");
    $sql = "CREATE TABLE $nome_tabella (";
    for (
    $i = 0; $i < count($nome_campo); $i++) {
    $sql .= "$nome_campo[$i] $tipo_campo[$i]";
    if (
    $lunghezza_campo[$i] != "") {
    $sql .= " ($lunghezza_campo[$i]).";
    } else {
    $sql .= ",";
    }
    }
    $sql = substr($sql, 0, -1);
    $sql .=")";
    $risultato = @mysql_query($sql, $connessione)
    or die(
    "impossibile fare la query");
    if (
    $risultato) {
    $msg = "<p>ta tabella $nome e stata creata! </p>"; ?>
    <?php
    echo "$db_name"; ?>
    <?php
    echo "$msg"; ?>
    e come se il form html non passasse i dati alla pagina in php e questa non riuscisse a processarli .. la domanda e se e cosi xke ? e cosa manca (calcolando che sono alle prime armi ) ? e in quale pagina se c'e l'errore sta ?
    grazie !!
    Ultima modifica di stest : 13-06-2013 alle ore 17.35.42 Motivo: mancava una domanda !!

  2. #2
    Guest

    Predefinito

    C'è un errore

    Codice PHP:
    <form method="post" action:"test.php">
    deve essere

    Codice PHP:
    <form method="post" action="test.php">
    dopo action devi mettere il segno = e non :

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    • Sostituisci
      Codice HTML:
      <form method="post" action:"test.php">
      con:
      Codice HTML:
      <form method="post" action="test.php">
    • I dati passati dal form, vanno prelevati con $_POST['name_input']
    • Occhio ai parametri di connessione al database


    Non ho letto bene i sorgenti. Ho solo sbirciato alcune righe. Comunque, invece di seguire un libro, ti consiglio leggere tutorial sul web, perché alcune cose che utilizzi sono ormai obsolete!

    Ciao!

    EDIT: anticipato, ma lascio per alcune cose in più :P
    Ultima modifica di alemoppo : 13-06-2013 alle ore 17.42.22

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da simpleticket Visualizza messaggio
    C'è un errore

    Codice PHP:
    <form method="post" action:"test.php">
    deve essere

    Codice PHP:
    <form method="post" action="test.php">
    dopo action devi mettere il segno = e non :
    grazie corretto , sono riuscito ad andare un po ora ho un problema che non riesce a eseguerire il comando x creare dentro al database la tabella ... cosa c'e di sbagliato ancora ??

  5. #5
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    Stampa la query e vedi come è fatta, quindi capirai cosa non va. (ad esempio, con "echo $sql;").

    Ciao!

  6. #6
    Guest

    Predefinito

    Non ho letto bene i sorgenti. Ho solo sbirciato alcune righe. Comunque, invece di seguire un libro, ti consiglio leggere tutorial sul web, perché alcune cose che utilizzi sono ormai obsolete!

    Ciao!

    EDIT: anticipato, ma lascio per alcune cose in più :P
    grazie mille del aiuto .. qua e la ho corretto ora mi rimane di capire come ho detto sopra xke non crea dentro al db la tabella

    alemoppo ci ho provato ( quelle di html.it ) .. ma le trovo un tantinello scomode , devo splittare in 2 lo schermo poi devo stare perennemente incollato allo schermo .. magari se le pubblicassero in pdf le prenderei in considerazione !! ... cmq da quello che ho visto quelle guide partono da un livello un po piu alto del mio questo libro e terra terra ( ecco xke lo avevo scelto ) ed è ricco di esercizi pratici !!

  7. #7
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Stampa la query e vedi come è fatta, quindi capirai cosa non va. (ad esempio, con "echo $sql;").

    Ciao!
    in che senso ?? ... ho provato e infilare alla fine dopo aver chiuso il tag php
    Codice PHP:
    <?php echo"$sql"; ?>
    ma l'operazione x quanto ho imparato sin ora e morta c'e il die
    Codice PHP:
    $risultato = @mysql_query($sql, $connessione)
    or die(
    "impossibile fare la query");

  8. #8
    Guest

    Predefinito

    sono andato un pelino avanti ... ho aggiunto alla stringa della morte
    Codice PHP:
    , mysql_error()
    preso da php.net ... salta fuori che l'errore xke non riesce ad eseguire la query e nel comando x creare il tipo di casella ( varchar , text e char ) ho provato sia in maiuscolo che in minuscolo ma non cambia l'errore o nella lunghezza del campo che non riesce a interpretare ... l'errore ora è questo
    impossibile fare la queryYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'artista_n VARCHAR,artista_c VARCHAR,etic_discogr VARCHAR,note TE


    Update
    ho appena fatto come mi hai consigliato tu alemoppo , il risultato e questo La query che si tenta di eseguire è: CREATE TABLE )impossibile fare la query , quindi o è cambiato il comando ( ma dal sito di mysql non mi pare ) o altervista non lo supporta o c'e qualche altro errore in giro !! ... uff ora vado a prendermi wp e vedo come fa lui a creare una tabella dentro un db !! :D

    scusami , mi ero dimanticato che ero su un forum , erano anni che non ne frequentavo uno (((
    Ultima modifica di stest : 13-06-2013 alle ore 23.47.37 Motivo: aggiornato il post !

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,686

    Predefinito

    È sicuramente sbagliata la sintassi della query. Metti l'echo prima del die, no?

    Codice PHP:
    //prepari la query in $sql

    echo 'La query che si tenta di eseguire è: '.$sql;
    $risultato = @mysql_query($sql, $connessione)
    or die(
    "impossibile fare la query");
    p.s: cerca di non far post consecutivi: usa il tasto "Edita" per modificare i messaggi. Inoltre, non usare abbreviazioni del tipo sms (xke..).

    Ciao!
    Ultima modifica di alemoppo : 13-06-2013 alle ore 20.33.39

Regole di scrittura

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