• User Attivo

    Sono niubbi anche in php...prime query!

    Ciao!
    Sto imparando il php...
    E sto battagliando con la connessione ad un database mysql.
    Il problema è che voglio implementare tutte le operazioni CRUD...
    mi sono fermato all'inserimento nella base di dati...
    (non sfottetemi, vi prego!:fumato:)!

    ho un piccolo problema nella "insert":
    Questo è il codice:

    
        $query = "insert into rubrica (Id, Nome, Cognome, Telefono) values('$nome', '$cognome', '$numTel')";
    
    
    

    e mi dà un errore di sintassi...qualcuno sà spiegarmi qual'è?
    (ripeto senza infierire...:))

    altro problemino:
    nella tabella, l'Id è auto_increment...come cavolo si fà a far effettuare l'inserimento in automatico?

    Ovviamente tutti i dati vengono passati da una form tramite metodo POST e vengono assegnati a delle variabili nella pagina in questione...

    Vi ringrazio anticipatamente...


  • User

    $query = "insert into rubrica (Nome, Cognome, Telefono) values('$nome', '$cognome', '$numTel')";
    ...prova così
    autoincrement si inserisce da solo appena si crea una nuova riga


  • User

    io ti consiglio una lettura di questi brevi tutorial scritti dal sottoscritto
    http://www.albertobottarini.com/phpschool/le-sinergie-tra-php-e-mysql-come-e-quando-usare-un-database/


  • User Attivo

    Ora sto leggendo l'articolo...

    Cmq, mi da sempre errore...

    Parse error: parse error in c:\programmi\easyphp1-8\www\php\mysql\inseriscicontatto.php on line 16

    dove in linea 16 c'è la query prima postata...

    cmq, vi posto tutteddue le pagine:

    Questa è la pagina "aggiungiContatto.php"

    
    <html>
      <head>
       <title>Connessione base di dati</title>
      </head>
    
      <body>
      <?
        require "connessione.php";
        mysql_close($conn);
    ?>
    
    
      <h3>Inserisci un contatto:</h3>
    
      <div>
         <form action="inserisciContatto.php" method="post">
          <p>Nome: <input type="text" name="nome"></p>
          <p>Cognome: <input type="text" name="cognome"></p>
          <p>Numero di telefono: <input type="text" name="numTel"></p>
    
          <p>
          <input type="submit" name="Invia" value="Invia i dati">
          <input type="reset" name="Reset" value="Reset">
          </p>
    
      </div>
    
    
        <p>Torna alla <a href="index.php">home</a>.</p>
    
     </body>
    </html>
    
    

    Questa è la pagina "inserisciContatto.php"
    (non esiste ancora la convalida sui dati inseriti...)

    
    <html>
      <head>
       <title>Connessione base di dati</title>
      </head>
    
      <body>
      <?
        require "connessione.php";
    
        $maxId = mysql_query("select max(Id) from rubrica");
        $nome = $HTTP_POST_VARS["nome"];
        $cognome = $HTTP_POST_VARS["cognome"];
        $numTel = $HTTP_POST_VARS["numTel"]
    
    
        $query = "insert into rubrica (Nome, Cognome, Telefono) values('$nome', '$cognome', '$numTel')";
    
        mysql_query($query)
         or die("Si è verificato un errore: " . mysql_error());
    
         mysql_close($conn);
    
      ?>
        <div>
         <p>L' Id massimo prensente nella base di dati è: <? echo $maxId ?> </p>
        </div>
    
      <div>
      <h2>Contatto inserito!</h2>
      <h3>I dati da te inseriti sono:</h3>
      <p>Nome: <? echo $nome ?></p>
      <p>Cognome: <? echo $cognome ?></p>
      <p>Numero di telefono: <? echo $numTel ?></p>
      </div>
    
    
      <p>Torna alla <a href="index.php">home</a>.</p>
    
     </body>
    </html>
    
    
    

    Mentre leggo l'articolo, se mi date n'occhiata al codice...grazie!

    Veramente gentili...


  • User

    trovato l'errore:
    $numTel = $HTTP_POST_VARS["numTel"]
    manca il punto e virgola alla fine 🙂

    a volte ti segna un errore su una riga ma devi capire che anche il php è stupido quindi leggi le righe precedenti e leggi pure le righe dei file che includi 😉


  • User Attivo

    Dieci minuti di vergogna...
    😢

    Infatti funziona...

    Giusto che ci siamo:

    Potete darmi alcune dritte sulla convalida dei dati?


  • User

    in che senso convalida? vuoi che i dati inseriti siano controllati?


  • User Attivo

    Ora vi spiego i miei dubbi da neofita nel campo:

    Premessa il tutto è dovuto al fatto che ho imparato a programmare in java per la connessione con una base di dati postgres e jsp, quindi mi trovo un po spiazzato ancora...

    Cmq, dicevo:
    ero abituato a fare la convalida dai dati inseriti in una form tramite una classe java scritta appositamente...
    Ora non so come fare la convalida dei suddetti in php...

    tenendo conto dei file già postati dove devo mettere quella "catasta" di if che immagino di mettere?

    Poi, più in là vi scasserò gli zebedei per quanto riguarda l'ottimizzazione del codice e la programmazione ad oggetti...sempre se siete disposti a darmi retta (o se avete tanta, ma tanta pazienza!)


  • User

    mi sa proprio che ti tocca fare gli if XD


  • User Attivo

    @Wantley said:

    mi sa proprio che ti tocca fare gli if XD

    Scusa la mia enorme ignoranza...ma che cavolo sono?


  • User

    😢
    in pratica tu devi controllare che l'utente nn scrivi delle cag**e giusto?
    quindi ad esempio se l'utente mette come nome ">_35656!'2)9394" devi dirgli: "ma cosa stai scrivendo?"

    quindi farai:

    if(!ctype_alpha($_REQUEST['nomeUtente']))
    {
    echo 'errore';
    }
    else if(...)
    {
    ...
    }

    quindi in ogni if controllerai se i dati inseriti sono giusti o sbaglaiti


  • User Attivo

    infatti è quello che vorrei fare...

    ma le convalide, dove vanno messe, in che file? nel file dove inserisco i dati o in quello successivo?

    😢😢😢😢😢😢


  • User

    devi emtterlo nel file successivo (se nn sbaglio quello aggiungiContatto.php) li metti tutti gli if e se almeno 1 ti segna che i dati sn sbagliati gli carichi una pagina di errore altrimenti gli carichi una pagina del tipo: "complimenti!! sai come ti chiami" XD


  • User Attivo

    Occhei...
    Infatti ora farò una bella pagina d'errore in cui stamperò gli eventuali errori...

    Ma non è più semplice reindirizzarlo alla pagina degli inserimenti?

    Cmq grazie per il tempo che mi stai concedendo...
    Menzionerò tutti coloro i quali mi aiuteranno in questa tremenda battaglia (:D) sui ringraziamenti nella mia tesi!


  • User

    tesi? che scuola fai?
    per i reindirizzamenti puoi usare
    header("Location: /url/pagina.php");
    ma di solito i professori sconsigliano l'uso di header() sia xke nn è standard sia xke la puoi usare solo a inizio pagina


  • User Attivo

    Dovrei, molto teoricamente, prendere una laurea di tre anni in informatica...e devo fare un progetto(quello finale,di cui dovrò scrivere la relazione, o tesi) in php (Argomento non studiato durante il corso di laurea...)
    Devo modificare in cms (Joomla) e non sapendo un BEEP di php mi sto istruendo...

    Cmq, ho visto molte volte

    header("Location: /url/pagina.php");

    e mi devo istruire pure in materia....


  • User

    ah... io faccio le superiori XD

    un consiglio nn usare header()

    piuttosto fai una pagina errore.php
    e la chiami in facendo include(errore.php);
    nn reindirizza la pagina ma hai lo stesso risultato nel tuo caso


  • User Attivo

    infatti...sono più orientato a fare così...
    Ora ci lavorerò su...e ti farò sapere...
    Preparati ad altre scocciature!


  • User Attivo

    ho fatto una specie di convalida dei dati...
    e per ora funziona.
    Ora sto battagliando con le sessioni:

    Domanda:
    Se devo far passare dei dati da una pagina all'altra tramite sessione, devo per forza mettere, prima dell' head della pagina session_start(); ???

    Poi ho messo un controllo nella index:

    <?
    if(isset($_SESSION))
    session_destroy();

    ?>

    è una fesseria o funziona?

    Per ora grazie...


  • User

    x le sessioni devo ancora vedermele...
    cmq x registrare una variabile fai session_register("nomeVar"); (se nn sbaglio)
    poi con $_SESSION["nomeVaribile"] leggi la varibile in ogni pagina del sito

    x quanto riguarda il tuo codice io lo metterei nella pagina di logout e nn userei quella condizione... cosa te ne fai li?