• User

    difficoltà collegamento php mysql

    salve
    ho creato lo sript php per collegare al DB per l'inserimento tramite form html
    sto avedo difficolta' perché lo scritp non mi funziona.

    <?php
    $con=mysql_connect("localhost","user","password",my_seprova);
    if (mysqli_connect_errno()){
    echo "failed to connect to MYSQL: " .mysqli_connect_error();
    }
    $titolo=mysqli_real_escape_string($con,$_POST['titolo']);
    $corpo_testo=mysqli_real_escape_string($con,$_POST['corpo_testo']);
    $sql="INSERT INTO novità (titolo,corpo_testo)
    VALUES ('$titolo','corpo_testo',)";$con=mysql_connect("localhost","user","password",my_seprova);
    if (mysqli_connect_errno()){
    echo "failed to connect to MYSQL: " .mysqli_connect_error();
    }
    $titolo=mysqli_real_escape_string($con,$_POST['titolo']);
    $corpo_testo=mysqli_real_escape_string($con,$_POST['corpo_testo']);
    $sql="INSERT INTO novità (titolo,corpo_testo)
    VALUES ('$titolo','corpo_testo',)";
    if (!mysqli_query ($conn,$sql)){
    die ('Error: ' .mysql_error ($conn));
    }
    echo "1 record added";
    mysqli_close ($con);
    ?>
    if (!mysqli_query ($conn,$sql)){
    die ('Error: ' .mysql_error ($conn));
    }
    echo "1 record added";
    mysqli_close ($con);
    ?>


  • Moderatore

    Ciao,
    che errore ricevi?


  • User

    c'e' scritto errore
    oppure mi esce errore line 3


  • Moderatore

    Ad occhio mi sembra che usi un comando errato per connetterti.
    Infatti per la connessione usi mysql_connect, ma per usarlo usi le versioni mysqli_

    P.S.: ovviamente sto dando per scontato che tu abbia messo la giusta configurazione per connettersi al database (nome utente, nome database, host, ecc.).


  • User

    Cosa devo correggere?


  • User Attivo

    Se lo script che hai incollato è identico a quello che stai cercando di far girare di errori ce ne sono diversi ed il principale è quello indicato da Shad.
    Poi:

    • la connessione è ripetuta 2 volte (line 2 e linea 9)
    • nella connessione il 4° argomento non si capisce cosa sia. Se è il nome del database non può essere usato con mysql_connect ma solo con mysqli_connect e comunque andrebbe tra virgolette;
    • nella linea 22 c'è un tag PHP di chiusura seguito da altro codice PHP senza però esserci quello di apertura.
      Superficialità e approssimazione (anche postando richieste di aiuto) vanno poco d'accordo con l'informatica.

  • User

    non ho capito cosa devo correggere non arriva a linea 22 lo script

    da questo errore adesso:
    error

    script:
    <?php
    $con=mysqli_connect("localhost","user","password","my_seprova");
    if (mysqli_connect_errno()){
    echo "failed to connect to MYSQL: " .mysqli_connect_error();
    }
    $titolo= mysqli_real_escape_string($con,$_POST['titolo']);
    $corpo_testo=mysqli_real_escape_string($con,$_POST['corpo_testo']);
    $sql="INSERT INTO novità (titolo,corpo_testo)VALUES ('$titolo','corpo_testo',)";
    if (!mysqli_query ($conn,$sql)){
    die ('Error: ' .mysql_error ($conn));
    }
    echo "1 record added";
    mysqli_close ($con);
    ?>


  • User Attivo

    Basta controllare meglio quello che si scrive.
    riga 8:
    VALUES ('$titolo','corpo_testo',)
    manca il segno del dollaro nella seconda variabile;

    riga 9 e 10:
    se la connessione la assegni a $con, dopo non puoi richiamarla con $conn perchè sarà una variabile inesistente;

    riga 10:
    nuovamente, se utilizzi mysqli_ non puoi poi utilizzare mysql_

    Superficialità e approssimazione.
    Questi sono tutti errori che si risolverebbero con più attenzione nella lettura del codice.

    AGGIUNTA:
    nella riga 8 c'è una virgola finale di troppo.


  • User

    fatte le correzioni mi esce sempre errore.
    <?php
    $con=mysqli_connect("localhost","seprova","password","my_seprova");
    if (mysqli_connect_errno()) {
    echo "failed to connect to MYSQL: " .mysqli_connect_error();
    }
    $titolo= mysqli_real_escape_string($con,$_POST['titolo']);
    $corpo_testo=mysqli_real_escape_string($con,$_POST['corpo_testo']);
    $sqli="INSERT INTO novità ($titolo,$corpo_testo)
    VALUES ('$titolo','$corpo_testo')";
    if (!mysqli_query ($con,$sqli)){
    die ('Error: ' .mysql_error ($con));
    }
    echo "1 record added";
    mysqli_close ($con);
    ?>


  • Moderatore

    Posso sapere quale errore?
    Sicuro che la tabella si chiami "novità" e non "novita"? Non ricordo se MySql permette nomi di tabelle con accentate. Se il nome fosse accentato ti consiglierei di cambiarlo lo stesso. Giusto per essere sicuri di non avere problemi di codifica.


  • User

    esce solo la scritta errore senza specificare
    ades provo a cabiare novità con novità vedimo cosa succede


  • User

    problema risolto avevi ragione.
    il problema era il nome della tabella novità (cambiato con novita) adesso funziona


  • User

    ho creato lo script per far visualizzare le news solo che non mi funziona lo script.non riesco a capire da cosa puo' dipendere
    <body>
    <?php
    $username="seprova";
    $password="";
    $database="my_seprova";
    mysql_connect(localhost,$username,$password);
    @mysql_select_db($database)or die ("Impossibile selezionare il DB");
    $query="SELECT*FROM novita");
    $risultati=mysql_query($query);
    $num=mysql_numrows($risultati);
    mysqul_close ();
    echo"<b><center>Benvenuti nelle NEWS </center></b><br><br>;
    $i=0; while ($i<$num){
    $nome_campo_tabella=mysql_result($risultati,$i,"titolo");
    $nome_campo_tabella=mysql_result($risultati,$i,"corpo_testo");
    $echo <b>$titolo $corpo_testo </b></br><br>";
    $i++;
    }
    ?>
    </body>
    </html>


  • Moderatore

    mysqul_close --> mysql_close

    Ed in generale il solito problema di mysql_ mentre tu nel precedente script usavi mysqli_

    Ricordati di postare sempre l'errore che ricevi.


  • User

    ho corretto l'errore di battitura ma e sempre uguale. nella pagine che devono uscire le news mi esce questo

    Benvenuti nelle NEWS

    ; $i=0; while ($i<$num){ $nome_campo_tabella=mysql_result($risultati,$i,"titolo"); $nome_campo_tabella=mysql_result($risultati,$i,"corpo_testo"); $echo **$titolo $corpo_testo **

    "; $i++; } ?>


  • Moderatore

    Aggiungi le virgolette alla fine.[

    echo](http://www.giorgiotave.it/wikigt/os/Echo)"<b><center>Benvenuti nelle NEWS </center></b><br><br>;
    echo"<b><center>Benvenuti nelle NEWS </center></b><br><br>";


  • User

    fatto ma sempre lo stesso errore esce

    Benvenuti nelle NEWS

    "; $i=0; while ($i<$num){ $nome_campo_tabella=mysql_result($risultati,$i,"titolo"); $nome_campo_tabella=mysql_result($risultati,$i,"corpo_testo"); $echo **$titolo $corpo_testo **

    ; $i++; } ?>


  • User

    dove sta l'errore che non va?
    il file è salvato in php no in html(prima avevo salvato il file i html e mi dava l'errore sopra citato)
    adesso mi da errore linea 24
    cioe'
    $echo"<b>$titolo $corpo_testo</b><br><br>";

    aggioramento ho trovato l'errore
    era il simbolo di vriabile echo
    adesso non mi da piu' l'errore pero' non mi visualizza le news.
    nella pagina esce solo il titolo benvenuto nelle news

    news= problema risolto nome campo dovevo mettere il titolo e il corpo_testo adesso sembra che funziona tutto


  • User

    adesso funziona solo che il titolo e il corpo del testo mi esce tutto in un rigo.
    voevo il titolo sopra
    e il corpo del testo sotto.sto provando ma non va


  • Moderatore

    $echo <b>$titolo $corpo_testo </b></br><br>";

    diventa

    $echo <b>$titolo</b></br><br>$corpo_testo";

    Ciao