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

    verificare se valore (array) esiste in database

    Salve ho questo codice:

    Codice PHP:
    $id_tipo = array(); 
    $q "SELECT * FROM products_options WHERE products_options_name = '".$_POST['TipoVariante1']."'"
    $s mysql_query($q) or die (mysql_error()); 
    while (
    $row mysql_fetch_array($s)){     
    $id_tipo[] = $row['products_options_id']; 
    }  
    $q "SELECT * FROM products_options_values WHERE products_options_values_name = '".$_POST['Variante1']."'"
    $s mysql_query($q) or die (mysql_error()); 
    while (
    $row mysql_fetch_array($s)){     
    $id_var $row['products_options_values_id'];
     }  
    $q "SELECT * FROM products_options_values_to_products_options WHERE products_options_id = '$id_tipo'"
    $s mysql_query($q) or die (mysql_error());
     while (
    $row mysql_fetch_array($s)){     
    $id_p[] = $row['products_options_id']; 
    }  
    $array explode("," ,$_POST['Variante1']);  
    $var1 count($array);
     
    $res1 false
    for(
    $i=0;$i<$var1;$i++) 

    //qui verificare se qualche valore esiste in $id_tipo che sia uguale a $id_p
    if ($id_tipo[$i]==$id_p[$i])    
     { 
    $res1=true;     

    }  
    if(
    $res1 == false
    {    
    $q "SELECT * FROM products_options WHERE products_options_name = '".$_POST['TipoVariante1']."'"
    $s mysql_query($q) or die (mysql_error()); 
    while (
    $row mysql_fetch_array($s)){    
     
    $id_tipo $row['products_options_id']; 
    }  
    $q "SELECT * FROM products_options_values WHERE products_options_values_name = '".$_POST['Variante1']."'";
    $s mysql_query($q) or die (mysql_error()); 
    while (
    $row mysql_fetch_array($s)){     
    $id_var $row['products_options_values_id']; 
    }  
    $query "INSERT INTO products_options_values_to_products_options 
    (products_options_id, products_options_values_id) VALUES 
    ('
    $id_tipo', '$id_var')"
    $insert mysql_query($query);    
    if(!
    $insert) die(mysql_error());  

    Questo codice mi permette di prelevare ed inserire dati in un'altra tabella, tante volte quanti sono i valori contenuti in $_POST['Variante1'], però il mio problema è che voglio vedere se nella tabella products_options_values_to_products_options già esiste qualche valore contenuto nell'array, altrimenti deve scriverlo, con questo codice, anche se già presente un valore nel database, mi riscrive tutto.

    Come posso fare?

    Grazie

  2. #2
    Ti sei assicurato che le tabelle abbiano l'integrità referenziale, in modo che non abbiano valori ripetuti?

    I valori inseriti sono entrambi chiavi primarie...dovrebbe essere impossibile che ti permetta di inserirli e ottenere due record identici.

  3. #3
    Questo è il codice della tabella, i due valori non sono primari, in quanto recupera dei valori primari da altre tabelle:

    -- Struttura della tabella `products_options_values_to_products_options`
    --

    CREATE TABLE IF NOT EXISTS `products_options_values_to_products_options` (
    `products_options_values_to_products_options_id` int(11) NOT NULL auto_increment,
    `products_options_id` int(11) NOT NULL default '0',
    `products_options_values_id` int(11) NOT NULL default '0',
    PRIMARY KEY (`products_options_values_to_products_options_id`) ,
    KEY `idx_products_options_id_zen` (`products_options_id`),
    KEY `idx_products_options_values_id_zen` (`products_options_values_id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=280 ;

    Grazie

  4. #4
    Non sono asso nella sintassi di SQL.
    Non saprei dirti come hai impostato l'integrità, né se è impostabile una tabella in modo da avere tuple ripetute.


    Mi viene in mente questa possibilità, ma dovresti documentarti a riguardo.....


    Altrimenti, prima della query di insert ti fai una select per vedere se ci sono già quei valori.
    Anche se è un pò 'bruttino' (e laborioso)

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.