Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    inserire molti dati in db controllandone la presenza

    Problema stupido (mi rendo conto... ) ma non mi viene in mente come risolverlo...
    Ho una grande quantita di dati (una serie di stringhe, separate da un a capo o - eventualmente - da una virgola), che devo inserire in un db, accertandomi però che non siano già esistenti.
    Qual'è la via più semplice per ottenere questo risultato, via php?
    metatad
    graphic & web design

  2. #2
    per ogni inserimento che devi fare controlla prima che la stringa che dovresti inserire non ci sia nella tabella... se c'è nn fai niente altirmenti inserisci

    ti conviene mettere i dati in un array e gestisci tutto con un ciclo 2 query ed un if
    debian:~$ uname -r
    2.6.18-1-686
    debian:~$

    Il quiz manager è nato!!! visitate http://shenk.altervista.org !!

  3. #3
    se i dati sono separatd a virgole usa a funzione EXPLODE per generare un array coi valori e quindi scandisci con un ciclo for l'array per vdere se ogni elemento è contenuto ne l database.

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    io faccio così:
    Codice PHP:
    $mail $_POST['tfield']; 
    $mail explode(",","$mail");
    foreach (
    $mail as $value) {
            
    $result mysql_query("SELECT * FROM `coll` WHERE `email` = '$mail'");
            
    $chk mysql_num_rows($result);
            if (
    $chk == 0) {
            
    $query1 = ("INSERT INTO `coll` (`email`) VALUES ('$mail')");
            
    $result1 mysql_query($query1)
            or die(
    "Query failed");
            } 
    }

    ma non funziona, mi inserisce nel database la parola array ...
    metatad
    graphic & web design

  5. #5
    nella secodna riga dai all'array lo stesso nome della variabile $array, quindi cambia il nome all'array, tipo

    $emails = explode(",", "$mail");

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Originariamente inviato da Shenk87
    per ogni inserimento che devi fare controlla prima che la stringa che dovresti inserire non ci sia nella tabella... se c'è nn fai niente altirmenti inserisci

    ti conviene mettere i dati in un array e gestisci tutto con un ciclo 2 query ed un if
    Per carità: fai il campo "UNIQUE" e lascia che sia il database a dire se c'è o meno... se hai mille cose da inserire mica andrai a farmi mille select e x insert.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    devi usare value no mail.. $mail è l'array, $value è il valore estratto
    quindi cambia
    $result = mysql_query("SELECT * FROM `coll` WHERE `email` = '$mail'");


    in $result = mysql_query("SELECT * FROM `coll` WHERE `email` = '$value'");

    e metti $value anche nella query di insert
    ciao
    debian:~$ uname -r
    2.6.18-1-686
    debian:~$

    Il quiz manager è nato!!! visitate http://shenk.altervista.org !!

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074
    @ Emulman
    non credo sinceramente che la tua osservazione implichi alcun problema, faccio continuamente cose di questo tipo (riassegnare ad una variabile se stessa modificata), e senza alcun problema...
    @Shenk87
    giustissimo!!! ora funge, grazie 1Mb...
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.