Visualizzazione dei risultati da 1 a 7 su 7

Discussione: ancora su foreach

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    ancora su foreach

    Devo inserire dei dati, via form, in formato CSV. Uso questo codice:
    Codice PHP:
    $mail $_POST['tfield'];
    $mails strtolower($mail);
    $mail explode(",","$mails");
    foreach (
    $mail as $value) {
            
    $result mysql_query("SELECT * FROM `coll` WHERE `email` = '$value'");
            while (
    $row mysql_fetch_array($result)) {
            if (!isset (
    $row["email"])) {
           
    $query1 = ("INSERT INTO `coll` (`email`) VALUES ('$value')");
           
    $result1 mysql_query($query1)
           or die(
    "Query failed");
            }
        }

    Però... non inserisce nulla. Se, invece, faccio
    Codice PHP:
    if (isset ($row["email"])) { 
    Mi inserisce tutti i dati immessi nel form, anche se già presenti nel db, ed effettuando un doppio inserimento per ciascun dato!
    metatad
    graphic & web design

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    E' normale. Gli dici di inserire dei dati se trova già quei dati.

    Dovresti fare l'insert solo se mysql_numrows = 0 e non usare il while.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova cosi.

    codice:
    $mail = $_POST['tfield']; 
    $mails = strtolower($mail); 
    $mail = explode(",","$mails"); 
    foreach ($mail as $value) { 
            $result = mysql_query("SELECT count(*) as conta FROM `coll` WHERE `email` = '$value'"); 
            list($conta) = mysql_fetch_array($result)) 
            if ($conta == 0)) { 
           $query1 = ("INSERT INTO `coll` (`email`) VALUES ('$value')"); 
           $result1 = mysql_query($query1) 
           or die("Query failed"); 
            } 
    }
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    quando sbatti la testa con un problema, senza venirne a capo, cominci a fare anche cose illogiche, nella speranza di risolvere...
    Comunque, come si può vedere dal codice postato, ho provato sia con !isset che con isset, ed il risultato è stato in un caso nulla, nell'altro l'inserimento di tutti i dati due volte ciascuno!
    Inizialmente, avevo peraltro provato proprio come dici tu, facendo dapprima un controllo con mysql_num_rows e quindi facendo l'insert solo se risultava uguale a 0. Però così mi inseriva sempre e soltanto il primo valore dell'array...
    Poichè non riuscivo a risolvere l'impasse, ho provato con isset...
    Ma sono sempre bloccato da qualcosa!
    metatad
    graphic & web design

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    mi dà errore in questa riga:
    Codice PHP:
    list($conta) = mysql_fetch_array($result)) 
    Parse error: parse error in /home/httpd/vhosts/shavis.com/httpdocs/addmail.php on line 24
    metatad
    graphic & web design

  6. #6
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    list($conta) = mysql_fetch_array($result);
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    giusto! avevo fatto un copia incolla dal tuo post, senza badare ad eventuali errori formali (c'era una doppia parentesi tonda anche alla riga successiva...).
    Ok, adesso funziona!

    metatad
    graphic & web design

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.