Visualizzazione risultati 1 fino 8 di 8

Discussione: problema di sintassi

  1. #1
    Guest

    Unhappy problema di sintassi

    salve a tutti, sono appena arrivato, sto imparando php ma ho già un problema...


    quando provo ad andare sulla pagina delle news(mtgforum.altervista.org/news/news.php),
    mi dice che nn ho selezionato il database...

    quando provo a inviarle...mi da questo:


    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'titolo=, testo=' at line 2...

    Ora, non so dov' è il problema, perciò posto i codici:

    db.inc.php:
    Codice:
       <?php
    
    
      $dbcnx = @mysql_connect('localhost','xxxxxxxxx','xxxxxxx');
      if (!$dbcnx) {
        exit('<p>Unable to connect to the ' .
            'database server at this time.</p>');
      }
      
    $connect=mysql_select_db('my_mtgforum', '$dbcnx);
    if (!$connect) {
        exit('<p>Unable to locate the ' .
            'database at this time.</p>');
      }
    
    ?>

    news.php:
    Codice:
    <?php
    include ('db.inc.php') ;
    
    $novita=@mysql_query('select id, titolo from news');
    if(!$news){ echo('<p>impossibile trovare il database delle news!' . 'errore:' . mysql_error() . '</p>');}
    
    
    while($novita=mysql_fetch_array($news)) {
    $id=$novita['id'];
    $titolo=htmlspecialchars($news['titolo']);
    echo '<a href="vedinews.php?id=$id">$titolo</a>';
    }
    ?>

    invianews.php:

    Codice:
    <?php
    include ('db.inc.php');
    $titolo=$_POST['titolo'];
    $testo=$_POST['testo'];
    
    $sql='insert into news 
    titolo=' . $titolo . ',
    testo=' . $testo . ' ;';
    
    
    if (!mysql_query($sql)) {
    echo('<p>errore nell aggiunta della news:' . mysql_error() . '</p>');
    }else{
    echo('<p>nuova news aggiunta!!</p>');
    }
    
    $nid=mysql_insert_id();
    
    ?>
    questi sono solo i codici php, ma penso che l' errore non sia da altre parti...


    spero che mi aiuterete...
    ciao
    Ultima modifica di mtgforum : 16-11-2007 alle ore 23.01.58 Motivo: ops! dimenticato di togliere dati!!!

  2. #2
    Ospite Guest

    Predefinito

    Hai attivato il database mySQL da pannello AlterVista >> Risorse & Upgrades?
    Per lo script in uso, è necessario.
    Ciao!

    P.S: Togli la password dallo script editando il tuo messaggio al più presto!

  3. #3
    Guest

    Predefinito

    si, l' ho installato...

  4. #4
    Ospite Guest

    Predefinito

    Ho dato soltanto un'occhiatina veloce al codice.

    Codice PHP:
    $sql='insert into news
    titolo='
    . $titolo . ',
    testo='
    . $testo . ' ;';
    dovrebbe essere:

    Codice PHP:
    $sql="INSERT INTO news (titolo,testo) VALUES ('".$titolo ."','".$testo."');";
    Ciao!

    P.S: Oltre a tradurre i caratteri speciali in entità html con htmlspecialchars(), io utilizzerei anche mysql_escape_string() o addslashes() per l'escape e per evitare problemi con le virgolette.
    Ciao!

  5. #5
    Guest

    Predefinito

    ora ho fatto, mi rimane l' errore che dice "No database selected"

  6. #6
    Ospite Guest

    Predefinito

    Ah non avevo notato la tua segnalazione per quell'errore.
    Bhè, quando ti connetti al database, assegni una variabile alla connessione.
    Le soluzioni sono due:

    o trasformi db.inc.php in:
    Codice PHP:
    <?php


    mysql_connect
    ('localhost','xxxxxxxxx','xxxxxxx');


    mysql_select_db('my_mtgforum');

    ?>
    Oppure ad ogni query passi come secondo argomento la variabile di connessione:

    Codice PHP:
    mysql_query("SELECT ...",$variabile_di_connessione);
    Se non hai connessioni da effettuare a diversi database, ti consiglio di usare la prima soluzione.

  7. #7
    Guest

    Predefinito

    Ho provato a a fare con il primo eseempio, ma mi dice che non è stato selezionato il database ancora......

  8. #8
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    L'errore è dato dal fatto che assegni il risultato della query alla variabile $novita, ma nell'if utilizzi la variabile $news. Devi usare la stessa variabile.
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

Regole di scrittura

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