• User

    problema inserimento record in mysql

    Salve a tutti, sto cercando di imparare l'utilizzo di php associato a mysql. Seguendo qualche guida on-line ho creato il database e i file php necessari al collegamento e all'inserimento dei record nel database. Il problema è che non fungono, posto quindi il codice in cerca di aiuto.

    • file config.inc.php
      [php]<?
      // parametri del database
      $db_host = "localhost";
      $db_user = "root";
      $db_password = "";
      $db_name = "prova";
      ?>
      [/php]- file top_foot.inc.php
      [php]<? function top() { ?>
      <html>
      <head>

    </head>
    <body bgcolor=ffffff text=000000>
    <font face=verdana,tahoma,arial size=-1>
    <h1>PROVA</h1><br>
    <? }

    function foot() { ?>
    </font>
    </body>
    </html>
    <? } ?>[/php]- file insert.php

    [php]<?
    include ("config.inc.php");
    include ("top_foot.inc.php");

    //intestazione
    top();
    ?>

    <form method="post" action="save.php">
    Titolo:<br />
    <input type="text" size="40" name="titolo" />
    <br /><br />
    Data:<br />

    <select name="giorno">
    <?
    for ($i=1; $i<=31; $i++)
    echo "<option value="$i">$i</option>";
    ?>
    </select>

    <select name="mese">
    <option value="1">Gennaio</option>
    <option value="2">Febbraio</option>
    <option value="3">Marzo</option>
    <option value="4">Aprile</option>
    <option value="5">Maggio</option>
    <option value="6">Giugno</option>
    <option value="7">Luglio</option>
    <option value="8">Agosto</option>
    <option value="9">Settembre</option>
    <option value="10">Ottobre</option>
    <option value="11">Novembre</option>
    <option value="12">Dicembre</option>
    </select>

    <select name="anno">
    <option value="2001">2001</option>
    <option value="2002">2002</option>
    <option value="2003">2003</option>
    <option value="2004">2004</option>
    <option value="2005">2005</option>
    <option value="2003">2006</option>
    <option value="2004">2007</option>
    </select>
    <br /><br />

    Autore:<br />
    <input type="text" size="40" name="autore" />
    <br /><br />
    E-mail:<br />
    <input type="text" size="40" name="mail" />
    <br /><br />
    Testo:<br />
    <textarea cols="60" rows="40" name="testo"></textarea><br />
    <br />

    <br /><br />
    <input type="submit" value="Invia2" />
    </form>
    <?
    // chiusura pagina
    foot();
    ?>[/php]- file save.php
    [php]<?
    include("top_foot.inc.php");
    include("config.inc.php");
    top();

    $titolo=$_REQUEST['titolo'];
    $autore=$_REQUEST['autore'];
    $mail=$_REQUEST['mail'];
    $testo=$_REQUEST['testo'];
    $pass=$_REQUEST['pass'];
    $giorno=$_REQUEST['giorno'];
    $mese=$_REQUEST['mese'];
    $anno=$_REQUEST['anno'];

    else if (trim($titolo) == "" OR trim($testo) == ""):
    echo "I campi Titolo e Testo devono essere riempiti!";

    else :
    $titolo = addslashes(stripslashes($titolo));
    $autore = addslashes(stripslashes($autore));
    $mail = addslashes(stripslashes($mail));
    $testo = addslashes(stripslashes($testo));

    $titolo = str_replace("<", "<", $titolo);
    $titolo = str_replace(">", ">", $titolo);
    $autore = str_replace("<", "<", $autore);
    $autore = str_replace(">", ">", $autore);
    $testo = str_replace("<", "<", $testo);
    $testo = str_replace(">", ">", $testo);
    $testo = nl2br($testo);

    $data = mktime("0", "0", "0", $mese, $giorno, $anno);

    $db = mysql_connect($db_host, $db_user, $db_password);
    if ($db == FALSE)
    die ("Errore nella connessione. Verificare i parametri nel file config.inc.php");

    mysql_select_db($db_name, $db)
    or die ("Errore nella selezione del database. Verificare i parametri nel file config.inc.php");

    $query = "INSERT INTO news (titolo, testo, data, autore, mail) VALUES ('$titolo', '$testo', '$data', '$autore', '$mail')";

    if (mysql_query($query, $db))
    echo "L'articolo è stato inserito correttamente";
    else
    echo "Errore durante l'inserimento";

    mysql_close($db);
    endif; // chiude la verifica della presenza dei dati
    foot();
    ?>[/php]l'errore che viene fuori è questo

    Parse error: parse error in c:\users\liberlux\documents\easyphp1-8\www\prova 2\save.php on line 18ringrazio anticipatamente chi vorrà aiutarmi


  • User

    Che linguaggio usi?

    Questo pezzo:

    
    else if (trim($titolo) == "" OR trim($testo) == ""):
    
    

    dovrebbe essere:

     if (trim($titolo) == "" OR trim($testo) == "")
    
    

    i : in fondo agli if non ci vanno, se devi fare una parte intera nell'if devi usare un blocco tra aperta e chiusa graffa...


  • User

    Si hai ragione, grazie mille per la disponibilità. Grandissimo!!!:wink3:


  • User Attivo

    Ciao,
    approfitto del post per lasciare lascio un appunto sulla sintassi alternativa (poco conosciuta ed utilizzata) che php consente per le strutture di controllo if, while, for, foreach e switch.

    Sostanzialmente php permette di sostituire alla parentesi graffa aperta i : (due punti) e a quella chiusa endif; endwhile; endfor; endforeach; o endswitch; (a seconda dei casi)

    Alcuni esempi:
    [PHP]
    for ($i=0; $i<10; $i++):
    //operazioni da eseguire
    endfor;
    [/PHP]

    [PHP]
    switch ($condizione):
    case 0:
    //operazioni da eseguire
    break;
    case 1:
    //operazioni da eseguire
    break;
    case 2:
    //operazioni da eseguire
    break;
    default:
    //operazioni da eseguire
    endswitch;
    [/PHP]

    [PHP]
    if ($condizione):
    //operazioni da eseguire
    else:
    //operazioni da eseguire
    endif;
    [/PHP]

    [PHP]
    if ($condizione):
    //operazioni da eseguire
    elseif ($condizione2):
    //operazioni da eseguire
    else:
    //operazioni da eseguire
    endif;
    [/PHP]
    Nota*: utilizzando la sintassi alternativa elseif deve esse scritto tutto attaccato, mentre utilizzando le graffe è possibile scrivere else if*.

    Alessandro