Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    problemi inserimento record nel db

    ciao a tutti ^^

    ho creato una form in cui inserire i nuovi dati e la pagina php che si occupa dell'inserimento vero e proprio del record nel db.

    il problema sta nel fatto che vengono salvate correttamente solo alcune tuple complete, altre non vengono registrate nel db.

    i valori della form vengono recuperati senza problemi, ho fatto delle echo di controllo sui dati..

    ho provato la query d'inserimento in phpMyAdmin e non da problemi (ho provato sia con dati che riesce a scrivere, sia con quelli che non riesce attraverso lo script).

    mi chiedevo se riuscite a trovare il possibile errore per cui il mio script non riesce a scrivere tutti i dati come dovrebbe..(premetto che le query di selezione generano i dati corretti ho già controllato )

    codice:
    <?php
    session_start();
    
    //Includo la connessione al server e la selezione della base di dati
    include "connect.php";
    
    //Assegno alle variabili il valore passato dalla pagina dove risiede la FORM
    $Titolo = $_POST['titolo'];
    $Testo = $_POST['testo'];
    $Categoria = $_POST['categoria'];
    $Cat = $_POST['cat'];
    $Umore = $_POST['umore'];
    
    //stampa campi recuperati per controllo
    echo "$Titolo 
    $Testo
    $Categoria
    $Cat
    $Umore
    ";
    
    if(($Categoria == "Nuovo") && (!empty($Cat))){
    	$MySql = "INSERT INTO categorie SET nome='".$Cat."';";
    	mysql_query($MySql, $connect);
    	$Categoria = $Cat;
    }
    
    $MySql = "SELECT Id_cat FROM categorie WHERE nome='".$Categoria."';"; 
    $query = mysql_query ($MySql, $connect);
    $cod = mysql_fetch_array ($query);
     
     
     if(!isset($_SESSION["user"])){
    				echo "Non puoi scrivere a nome dell'admin!! 
    Riprova";
    				include "login.php";
    			}
     else{	 
    //Query d'inserimento della registrazione								  
    $MySql_2 = "INSERT INTO entry SET titolo='".$Titolo."', testo='".$Testo."', umore='".$Umore."', 
    			data = CURDATE(), ora = CURTIME(), cod_cat = '".$cod[0]."' ;";								  								 
    $Result = mysql_query($MySql_2, $connect);
    
    		
    		//header("Location: vedi_post.php");
    		
    		mysql_close ($connect); 
    		}		
    ?>

    grazie in anticipo a chi volesse rispondere

  2. #2
    verifica se per caso nei record che non riesce a scrivere non ci sia da qualche parte nei valori degli apostrofi od altri caratteri di controllo.

    aggiungi la segnalazione di errore alle query.

    mysql_query ($MySql, $connect) or die(mysql_error()) ;

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    hai ragione!
    c'è un apostrofo...
    mi ricordo che c'erano delle funzioni apposta, non ricordo i nomi ma erano tipo la str_replace(), se non la stess,a ora cerco! era per cambiare i caratteri con i rispettivi ascii..

    gentilmente potresti indicarmi quali caratteri è meglio verificare? apostrofi, virgolette.. &commerciali? e cos'altro?

    grazie

    potrebbe essere qualcosa del tipo
    $carattere = ord("'");
    $Testo = str_replace("'", $carattere, $Testo);

    la cosa sembra funzionare ma magari c'è qualcosa di più semplice e immediato al posto di fare tanti str_replace(str char str) per ogni carattere di escape :master:

  4. #4

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    grazie, leggo e provo, ero già in quel sito ma non sapevo cosa cercare

    funziona

    GRAZIE

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.