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

    Eseguire query in base ai valori

    Salve ragazzi, ho questo codice:

    Codice PHP:
    $vari $params['Variante1'];     
    $query "INSERT INTO products_options_values (products_options_values_id, language_id, products_options_values_name, products_options_values_sort_order) 
    VALUES ('', '
    $lang', '$vari', '1')"$insert mysql_query($query);    
    if(!
    $insert) die(mysql_error()); 
    In quella variabile $vari posso avere da uno a molti valori, ora vorrei che venisse eseguita questa query tante volte quanti i valori contenuti in quella variabile, come posso fare?


    Premettendo che la tabella dove devo inserire i dati non ha un campo autoincrementante
    Grazie

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Di che tipo è $params['Variante1']?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    E' una stringa che contiene vari valori separati da virgola

  4. #4
    credo che potresti usa la funzione delle strighe explode in questo modo:
    Codice PHP:
    $array_vari explode(",",$vari); 
    in questo modo ottieni un array $array_vari con tutti i pezzettini, poi per quanto riguarda la query:
    Codice PHP:
    foreach($array_vari as $p){
    $query "INSERT INTO products_options_values (products_options_values_id, language_id, products_options_values_name, products_options_values_sort_order)
    VALUES ('', '
    $lang', '$p', '1')"$insert mysql_query($query);

    credo.. ma sono un newbie anch'io.
    Puoi spiegare meglio la parte
    Premettendo che la tabella dove devo inserire i dati non ha un campo autoincrementante

  5. #5
    Grazie per la tua risposta, ti posto l'intero codice:

    Codice PHP:
    $variante=array(); 
    $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))
    {       
    $variante[] = $row['products_options_values_name']; 
    }  
    $array explode("," ,$_POST['Variante1']);   
    $array $array;  
    $var1=count($array);  
    $res false;  
    for(
    $i=0;$i<$var1;$i++) 

    if (
    $array[$i]==$variante[$i])     

    $res=true;     

    }  
    if(
    $res == false
    {          
    $languages tep_get_languages();         
    for (
    $i 0$n sizeof($languages); $i $n$i++)         
    {                      
    $lang $languages[$i]['id'];  
    $vari $params['Variante1'];     
    $query "INSERT INTO products_options_values (products_options_values_id, language_id, products_options_values_name, products_options_values_sort_order) VALUES 
    ('', '
    $lang', '$vari', '1')"
    $insert mysql_query($query);   
     if(!
    $insert) die(mysql_error()); 
     } 

    Allora, la stringa $_POST['variante1'] viene trasformata in array $array = explode("," ,$_POST['Variante1']);
    quindi può contenere da uno a molti valori, per cui in base al numero dei valori deve eseguire tot query d'inserimento nel database, da premettere che il database non contiene alcun campo autoincrement, perchè come puoi vedere dal codice, ogni valore deve essere associato ad un'id lingua.

    Come è strutturato il codice, così esegue solo il primo valore contenuto nell'array, poi dopo si ferma, non capisco come mai, mentre se rendo un campo della tabella autoincrementante funziona bene.

    Spero di essere stato abbastanza chiaro, 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.