Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 18 su 18
  1. #11
    ah per quanto riguarda il problema 1 ho provato mettendo solo 1 uguale ... cambiando di posto le due funzioni ... cambiando il tipo di confronto con un disuguale ... aggiungendo break oppure die oppure return oppure exit ma nulla da fare

  2. #12

    Risposta a PROBLEMA 1

    Allora.......

    Scusa se sono diretto, ma come pensi che quelle due stringhe possano essere uguali????

    Dieci mele non sono uguali a 7 fragole!!!
    Né per quantità, né tantomeno per tipologia di frutto!

    Quelle due stringhe sono completamente diverse e non puoi andare a controllare che siano uguali.
    Io credo proprio che tu sbagli il metodo di base, quindi, ti consiglio di capire bene a cosa ti serve quell'uguaglianza.
    Magari posta non tanto il codice, quanto quello che vuoi fare con quella porzione di script.

    ah per quanto riguarda il problema 1 ho provato mettendo solo 1 uguale ... cambiando di posto le due funzioni ... cambiando il tipo di confronto con un disuguale ... aggiungendo break oppure die oppure return oppure exit ma nulla da fare
    Se ti avesse risposto filippo.toso ti avrebbe suggerito (giustamente) di andarti a leggere il manuale ufficiale di PHP.

    • 1 segno di uguale (=): assegnazione
    • 2 segni di uguale (==): uguaglianza
    • 3 segni di uguale (===): uguaglianza e corrispondenza


    Peraltro..... $query e $controllo non sono funzioni, ma variabili.
    die, return, exit, break e tutto le altre funzioni che hai provato, hanno un significato ed un uso ben preciso: non ha senso tirarle con la fionda nel tuo script sperando che una delle tante risolva il tuo problema, anche perché rischi che una abbia un comportamento anomalo che sembra farti funzionare il tutto, ma è solo una illusione per un particolare caso.

    Per il problema 2, c'è tanto codice da leggerre ed ho poco tempo ora.... ci guardo dopo.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  3. #13
    ciao alcio,

    ti ringrazio ... ma il tempo stringe ed ho urgenza di completare questa rubrica

    ho un manuale completo di php e mysql e che piano piano lavoro per lavoro leggo. ma il tempo è sempre poco

    per il problema 1 ti riepilogo le mie intenzioni:

    insert rag_sociale into contatti;
    if rag_sociale già presente in contatti -> interrompi inserimento e stampa "contatto già presente" altrimenti prosegui inserimento del contatto.

    attendo tue

  4. #14
    insert rag_sociale into contatti; if rag_sociale già presente in contatti -> interrompi inserimento e stampa "contatto già presente" altrimenti prosegui inserimento del contatto.
    Allora sbagli proprio l'impostazione.
    Innanzi tutto, io strutturerei la tabella in modo che il campo ragione_sociale sia di tipo UNIQUE.
    Se vai ad inserire una stringa gia presente in quel campo, la query ti rstituirà l'errore 1164 (se non sbaglio), per cui puoi catcharlo ed andare a lasciare un messaggio di cortesia che avverte di un doppio inserimento.

    Se non vuoi modificare la tabella, PRIMA devi fare una query di select, fetchare i risultati e poi andare a controllare se la stringa passata dalla form è un doppione di uno dei risultati della query.
    Per questo riconoscimento puoi usare la funzione in_array().

    Nel codice che avevi postato te, componevi due stringhe di query (una di SELECT, l'altra di INSERT) e le confrontavi, senza prima mandarle in esecuizione con mysql_query(): per quanti sforzi avresti fatto, non avresti mai cavato un ragno da un buco!

    PROBLEMA 2
    Togli la virgola prima dello WHERE.
    Ad ogni modo, vedo che alcuni campi li hai lasciati vuoi, per cui devi anche controllare che il campo in cui vuoi inserire quelle stringhe preveda il NULL.
    Altra annotazione: non conosco la struttura del DB, ma se il campo CAP, numero di telefono e similari sono di tipo INT, non devi mettere gli apici per i valori corrispondenti nella stringa SQL.
    Usando gli apici, il valore passato viene ritenuto di tipo stringa, per cui non accettato dal campo INT anche se composto di soli caratteri numerici.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  5. #15
    scusami alcio ,

    non ho ben capito cosa fare o almeno ho capito ma nn so proprio da dove iniziare ... non è ke potresti indircarmi come impostare la cosa xkè cm hai visto sono molto confuso tutt'ora.


    Per quanto riguarda il 2 problema controllo e ti dico se funziona.

  6. #16
    Problema 1 - Soluzione 1
    Usi la seguente sintassi in fondo alla stringa che crea la tabella:

    codice:
    CREATE TABLE nome_tabella (
           id INT NOT NULL AUTO_INCREMENT,
           xxxx varchar(20) NOT NULL,
           yyyy varchar(50),
           PRIMARY KEY (id),
    	   UNIQUE (xxxx)
    )
    Una volta che hai creato la tabella in questo modo, se andrai ad inserire un doppione nel campo xxxx, la query ti restituirà errore 1164.
    Non fai altro che andare a recuperare l'eventuale errore con mysql_errno(): se uguale a 1164 stampi un opportuno messaggio di errore.

    Problema 1 - Soluzione 2
    Nella pagina che riceve la variabile vai a ripescare quella proveniente dalla form.

    Codice PHP:
    $variabile $_POST['variabile'];
    // poi imposti la query di SELECT per estrarre
    // i valori del campo in cui non vuoi duplicati 
    // tra i vari record

    $sql "SELECT rag_sociale FROM nome_tabella";
    $query mysql_query($sql);
    $array mysql_fetch_array($query);
    mysql_free_result($query);

    // ora vai a controllare che la stringa passata
    // dalla form non sia già presente nel campo
    // denominato rag_sociale
    if (in_array($variabile$array)) {
        echo 
    "
           
    $variabile è gia presente nel nostro DB
           
    Si prega di inserire un altro valore.
           
    <a href=\\"
    pagina_della_form.php\\">Indietro</a>
        "
    ;
        exit;
    } else {
    /*
         La stringa non è presente
         continui con il resto del tuo script
         --------------------------------
         qui metterai la query di UPDATE per inserire
         il nuovo contatto nella tua rubrica
    */


    Ho commmentato il codice per farti capire il ragionamento: spero ti sia chiaro.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #17
    ciao alcio,

    nn ho avuto molto tempo da dedicare a questa rubrica. mi ci sono rimesso da poco...

    ho cercato di seguire il tuo consiglio per evitare duplicati modificado il dabatase sql con la chiave unica... come al solito ho qualche problema nell'integrazione di quanto mi hai detto ...

    ti posto come ho modificato il database :
    codice:
    CREATE TABLE contatti (
       id INT (8) NOT NULL AUTO_INCREMENT,
      `rag_sociale` varchar(128) NOT NULL,
      `tipologia` varchar(128) NOT NULL,
      `nome` varchar(128) NOT NULL,
      `cognome` varchar(128) NOT NULL,
      `citta` varchar(128) NOT NULL,
      `indirizzo` varchar(128) NOT NULL,
      `cap` varchar(128) NOT NULL,
      `tel_fisso` varchar(128) NOT NULL,
      `tel_fax` varchar(128) NOT NULL,
      `tel_mob` varchar(128) NOT NULL,
      `email` varchar(128) NOT NULL,
      `sito` varchar(128) NOT NULL,
      `note` varchar(128) NOT NULL,
           PRIMARY KEY (id),
    	   UNIQUE  (rag_sociale)
              )
    e come ho modificato la pagina di inserimento
    codice:
    <?php
    if($_POST) {
    	inserisci_record();
    }
    else {
    	mostra_form();
    }
    
    function inserisci_record()
    {
    	// richiamo il file di configurazione
    	require 'config.php';
    
    	// richiamo lo script responsabile della connessione a MySQL
    	require 'connect.php';
    
    	// recupero i campi di tipo "stringa"
    	$rag_sociale      = trim($_POST['rag_sociale']);
            $tipologia        = trim($_POST['tipologia']);
    	$nome             = trim($_POST['nome']);
    	$cognome          = trim($_POST['cognome']);
    	$indirizzo        = trim($_POST['indirizzo']);
    	$citta            = trim($_POST['citta']);
    	$cap              = trim($_POST['cap']);
    	$tel_fisso        = trim($_POST['tel_fisso']);
    	$tel_fax          = trim($_POST['tel_fax']);
    	$tel_mob          = trim($_POST['tel_mob']);
    	$email            = trim($_POST['email']);
    	$sito             = trim($_POST['sito']);
            $note             = trim($_POST['note']);
    
    	// verifico se devo eliminare gli slash inseriti automaticamente da PHP
    	if(get_magic_quotes_gpc())
    	{
              
            $rag_sociale      = stripslashes($rag_sociale);
            $tipologia        = stripslashes($tipologia);
    	$nome             = stripslashes($nome);
    	$cognome          = stripslashes($cognome);
    	$indirizzo        = stripslashes($indirizzo);
    	$citta            = stripslashes($citta);
    	$cap              = stripslashes($cap);
    	$tel_fisso        = stripslashes($tel_fisso);
    	$tel_fax          = stripslashes($tel_fax);
    	$tel_mob          = stripslashes($tel_mob);
    	$email            = stripslashes($email);
    	$sito             = stripslashes($sito);
            $note             = stripslashes($note);
    
    	}
    
            $rag_sociale      = mysql_real_escape_string($rag_sociale);
            $tipologia        = mysql_real_escape_string($tipologia);
    	$nome             = mysql_real_escape_string($nome);
    	$cognome          = mysql_real_escape_string($cognome);
    	$indirizzo        = mysql_real_escape_string($indirizzo);
    	$citta            = mysql_real_escape_string($citta);
    	$cap              = mysql_real_escape_string($cap);
    	$tel_fisso        = mysql_real_escape_string($tel_fisso);
    	$tel_fax          = mysql_real_escape_string($tel_fax);
    	$tel_mob          = mysql_real_escape_string($tel_mob);
    	$email            = mysql_real_escape_string($email);
    	$sito             = mysql_real_escape_string($sito);
            $note             = mysql_real_escape_string($note);
    
    
    
    	// preparo la query di inserimento
    	$insert = mysql_query ("INSERT INTO contatti (rag_sociale,tipologia,nome,cognome,indirizzo,citta,cap,tel_fisso,tel_fax,tel_mob,email,sito,note
    			  VALUES ('$rag_sociale','$tipologia','$nome','$cognome','$indirizzo','$citta','$cap','$tel_fisso','$tel_fax','$tel_mob','$email','$sito','$note')");
    
            echo mysql_errno(). " $errore ";
    
    
    }
    
    function mostra_record()
    {
    
    	// recupero l'id autoincrement generato da MySQL per il nuovorecord inserito
    	$rag_sociale  = trim($_POST['rag_sociale']);
    
    	// chiudo la connessione a MySQL
    	mysql_close();
    
    	$messaggio = urlencode("Inserimento di $rag_sociale effettuato con successo !");
    	header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
    
            $errore = urlencode("ATTENZIONE : Il contatto $rag_sociale risulta gia' presente !");
    	header('location: '.$_SERVER['PHP_SELF'].'?errore='.$errore);
    }
    
    function mostra_form()
    {
      
      	// mostro un eventuale messaggio
    	if(isset($_GET['errore']))
    		echo '<table align=\"center\" border=\"0\"><tr><td colspan=\"2\" bgcolor=\"#FFBD2B\"><div align=\"center\"><font color =\"red\">
    '.htmlentities($_GET['errore']).'</div></td></tr></table>
    ';
    
    
    	// mostro un eventuale messaggio
    	if(isset($_GET['msg']))
    		echo '<table align="center" border="0"><tr><td colspan="2" bgcolor="#FFBD2B"><div align="center">'.htmlentities($_GET['msg']).'</div></td></tr></table>
    ';
    
            ?>
    	<style type="text/css">
    <!--
    .Stile1 {color: #1A7CAB}
    body {
    	background: #1A7CAB;
    }
    a:link {
    	color: #FFBD2B;
    }
    a:visited {
    	color: #FFBD2B;
    }
    a:hover {
    	color: #FFBD2B;
    }
    a:active {
    	color: #FFBD2B;
    }
    -->
    </style>
    	<div align="center">[img]images/nuovo_contatto.jpg[/img]</div>
    	<form name="form_registrazione" method="post" action="">
    <div align="center">
      <table width="474" border="0">
        <tr>
          <td colspan="2" bgcolor="#FFBD2B"></td>
        </tr>
        <tr>
          <td width="230"><div align="right" class="Stile2">Ragione Sociale :</div></td>
          <td width="228">
            <input name="rag_sociale" type="text" id="rag_sociale" value="" size="38">
          </td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Tipologia Contatto :</div></td>
          <td><input name="tipologia" type="text" id="tipologia" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Nome :</div></td>
          <td><input name="nome" type="text" id="nome" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Cognome :</div></td>
          <td><input name="cognome" type="text" id="cognome" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Indirizzo :</div></td>
          <td><input name="indirizzo" type="text" id="indirizzo" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Citta :</div></td>
          <td><input name="citta" type="text" id="citta" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Cap :</div></td>
          <td><input name="cap" type="text" id="cap" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Telefono Fisso :</div></td>
          <td><input name="tel_fisso" type="text" id="tel_fisso" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Telefono Fax :</div></td>
          <td><input name="tel_fax" type="text" id="tel_fax" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Telefono Mobile :</div></td>
          <td><input name="tel_mob" type="text" id="tel_mob" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">EMail :</div></td>
          <td><input name="email" type="text" id="email" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Sito Internet :</div></td>
          <td><input name="sito" type="text" id="sito" value="" size="38"></td>
        </tr>
        <tr>
          <td><div align="right" class="Stile2">Note / Appunti :</div></td>
          <td><label>
            <textarea name="note" id="note" cols="29" rows="3"></textarea>
          </label></td>
        </tr>
        <tr>
          <td colspan="2" bgcolor="#FFBD2B"></td>
        </tr>
        <tr>
          <td><div align="center">
                  <input type="submit" name="Aggiungi Contatto" id="Aggiungi Contatto" value="Aggiungi Contatto">
               </div></td>
          <td><div align="center">
            <input type="reset" name="Resetta Form" id="Resetta Form" value="Resetta Form">
          </div></td>
        </tr>
      </table>
    </div>
     </form>
    	<?php
    }
    ?>
    mi restituisce errore 1064 che credo sia collegato a qualche problema col db ...

    please help !!!!!


  8. #18
    Prima di incapsulare il tuo script dentro delle funzioni, cerca di capire se lo script in sé funziona.
    Peraltro, le funzioni sono utilissime se hai delle porzioni di codice da riproporre nei tuoi script, così come le hai impostate te, mi pare di poter dire che siano inutili.

    Ad ogni modo.........

    Sostituisci la query con questo codice:
    Codice PHP:
    // preparo la query di inserimento
    $insert mysql_query ("
    INSERT INTO contatti (rag_sociale,tipologia,nome,cognome,indirizzo,citta,cap,tel_fisso,tel_fax,tel_mob,email,sito,note)
    VALUES ('
    $rag_sociale','$tipologia','$nome','$cognome','$indirizzo','$citta','$cap','$tel_fisso','$tel_fax','$tel_mob','$email','$sito','$note')

    "
    ) OR DIE ("Errore Numero: ".mysql_errno()." - Descrizione: ".mysql_error()); 
    Secondo me l'errore che ti restituisce è solo di sintassi (non avevi chiuso la parentesi tonda prima di VALUES).
    Fatto sta che ti basta scrivere "1064 mysql" nella stringa di ricerca di google per trovare l'errore!

    Vedi se funge.
    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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 © 2026 vBulletin Solutions, Inc. All rights reserved.