Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093

    cgi - inserire dati url in db

    Ciaoa tutti,

    ho una stringa di url:

    pagina.php?a1=12&id_a=1&a2=13&a3=14&id_b=2&b1=44&b 2=33&b3=22&id_c=3&c1=55&c2=66&c3=11

    ogni gruppo di dati corrisponde ad un record in db per ciascuna chiave

    Alla fine mi ritrovo le seguenti variabili recuperate dalla url:

    $id_a=1
    $a1=123
    $a2=13
    $a3=14

    $id_b=2
    $b1=44
    $b2=33
    $b3=22

    $id_c=3
    $c1=55
    $c2=66
    $c3=11

    come faccio ad inserirle in db in modo da ottenere questi dati in tabella

    id a b c
    1 123 13 14
    2 44 33 22
    3 55 66 11

    (dove a/b/c sono i campi del db)


    non so proprio come fare...aiutatemi perfavore...

    grazie

  2. #2
    che tipo di database usi?
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    postgres..mi ero scordato...ops

    grazie..spero possiate aiutarmi

  4. #4
    Non conosco la sintassi SQL di postgreSQL, per cui non so indicarti la quesry, ma i dati li puoi ordinare per esempio così:

    use CGI;

    my $q = CGI->new;

    my @index = ('a','b','c'... eccetera per le lettere che ti servono);

    foreach my $idx (@index) {
    $id = $q->param("id_$idx");
    $id_1 = "$id"."1";
    $id_2 = "$id"."2";
    $id_3 = "$id"."3";
    $primo = $q->param($id_1);
    $secondo = $q->param($id_2);
    $terzo = $q->param($id_3);

    # qui inserisci i dati $id $id_1 $id_2 e $id_3 nel database
    }
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    la sintassi è identica a mysql...

    Ma come faccio cosi a dividevere i vari campi della tabella (A B C)dalla stringa e inserli in db separatamente?..cioè io ho gli stessi campi per 3 id differenti...

    pagina.cgi?id=1&nome1=Ema&eta1=26&sesso1=M$id=2&no me2=Flavia&eta2=23&sesso=F

    e cosi via fino a 3 id...

    per inserirli in db dovrei dividere i dati della url giusto?..in tre gruppi..cosi formati:

    id1 = 1
    nome1 = Ema
    sesso = M

    per poi fare le query...

    NOn capisco molto il tuo script..scusami ma sono alle prime armi con perl...me lo commenti passo passo cosi me lo studio e la prossima volta lo so fare senza scocciare il forum?

    Grazie

  6. #6
    use CGI;
    # usi il modulo CGI che ti semplifica la vita

    my $q = CGI->new;
    # lo inizializzi tramite il costruttore

    my @index = ('a','b','c'... eccetera per le lettere che ti servono);
    # crei un array che contiene le lettere che identificano
    # i vari id. Tu hai detto che sono nella forma id_<lettera>

    foreach my $idx (@index) {
    # fai un ciclo che ti da una lettera per volta
    $id = $q->param("id_$idx");
    # estrai il valore dell'identificativo che corrisponde
    # alla lettera
    $id_1 = "$id"."1";
    $id_2 = "$id"."2";
    $id_3 = "$id"."3";
    # crei i nomi delle varie chiavi in maniera dinamica
    # ad esempio a1,a2,a3. b1,b2, ecc
    $primo = $q->param($id_1);
    $secondo = $q->param($id_2);
    $terzo = $q->param($id_3);
    # estrai i valori da inserire nel database.

    # qui inserisci i dati $id $id_1 $id_2 e $id_3 nel database
    }
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  7. #7
    Cerca di fare una via di mezzo tra lo script di Shishii e questo:

    codice:
    use strict;
    use warnings;
    use cgi;
    
    use DBI;
    
    # pagina.cgi?id=1&nome1=Ema&eta1=26&sesso1=M 
    
    my $q = new CGI;
    
    $id = $q->param('id') || 'null';
    $nome = $q->param('nome') || 'null';
    $eta = $q->param('eta') || 'null';
    $sesso = $q->param('sesso') || 'null';
    
    my $dbh = DBI->connect ( "dbi:Pg:dbname=prova_db" )
    my $sth = $dbh->prepare( "INSERT INTO table(id,nome,eta,sesso) VALUES (?,?,?,?)" );
    
    $sth->execute( $id, $nome, $eta, $sesso );
    
    print $q->header();
    print "inseriti: $id, $nome, $eta, $sesso\n";
    
    exit();

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2003
    Messaggi
    1,093
    ci provo raga..grazie mille...

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.