Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: perchè non funziona?

  1. #1

    perchè non funziona? URGENTE!

    raccolgo da un form i valori da inserire nei campi e uso post per inviarli alla pagina seguente
    il listato della pagina che riceve è:

    <?php
    echo $tab= $_POST['tab'];


    /* Connessione e selezione del database */
    $connessione = mysql_connect("localhost", "root", "")
    or die("Connessione non riuscita: " . mysql_error());
    print "connesso
    ";
    mysql_select_db("prospetto_voti_2007") or die("Selezione del database non riuscita");

    /* Esecuzione di una query SQL */
    $query ="SELECT * FROM ".$tab;
    $risultato = mysql_query($query) or die("Query fallita: " . mysql_error() );
    $campi = mysql_num_fields($risultato);
    $c="";
    $vc="";
    echo "I valori inseriti sono:"."
    ";
    for ($i=0; $i < $campi; $i++) {
    $nome = mysql_field_name($risultato, $i);
    echo $campo[$i]=$nome;echo " = ";
    echo $vcampo[$i]=$_POST[$campo[$i]];echo "
    ";
    $c=$c.",".$campo[$i];
    $vc=$vc.","."'".$vcampo[$i]."'";
    }
    $c[0]="";
    $vc[0]="";
    echo $c."
    ";
    echo $vc."
    ";
    echo $query2 = "INSERT INTO ". $tab." values(";
    echo $risultato2 = mysql_query($query2."\"".$vc."\"".")") or die("Query fallita: " . mysql_error() );

    ?>


    CON GLI ECHO USATI PER CONTROLLARE LE ASSEGNAZIONI.

    PERO' L'OUTPUT è:

    alunniconnesso
    I valori inseriti sono:
    id_alunno = 10861
    cognome = CAPUTO
    nome = FABIO
    datanascita = 1993-12-07
    luogonascita = PALERMO
    classe = IIA
    id_alunno,cognome,nome,datanascita,luogonascita,cl asse
    '10861','CAPUTO','FABIO','1993-12-07','PALERMO','IIA'
    INSERT INTO alunni values(Query fallita: Il numero delle colonne non corrisponde al conteggio alla riga 1

    PERCHè MI DA QUESTO ERRORE?
    IO PENSO CHE CI SONO "" 0 ' IN PIU' DA QUALCHE PARTE PERCHè SE SOSTITUISCO L'OUTPUT DELLE VARIABILI AL POSTO DI $QUERY2 LA QUERY VIENE ESEGUITA NORMALMENTE.

    SPERO CHE QUALCUNO MI POSSA AIUTARE DEVO CONSEGNARE AL PIù PRESTO

    SEBASTIAN

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    cos'è questa riga?


    echo $risultato2 = mysql_query($query2."\"".$vc."\"".")") or die("Query fallita: " . mysql_error() );
    cosa volevi fare?

  3. #3
    se non uso questo $query2."\"".$vc."\"".")") non mi vede nemmeno la tabella .
    ho provato a inserire la variabile $vc tra""

    In origine avevo scritto:
    $query2 = "INSERT INTO ".$tab."(". $c .") values(". $vc .")";
    $risultato2 = mysql_query($query2) or die("Query fallita: " . mysql_error() );

    ma mi da l'errore:
    Query fallita: Errore di sintassi nella query SQL vicino a '' linea 1

  4. #4
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    $vc=$vc.","."'".$vcampo[$i]."'";

    a inizio riga ti ritrovi una virgola in +

    $vc.=",'{$vcampo[$i]}'";

    e alla fine di tutto

    $vc=substr($vc,1);

    inoltre ti consiglio, prima di eseguire una query, di scriverla a video per vederne il risultato

    se vuoi inserire in una variabile di testo un elemento di un array usa le {}

    $pippo= "ciao {$utente[4]} come stai?";

    oppure

    $pippo= "ciao '{$utente[4]}' come stai?";

    tieni piu pulito il codice e lo interpreti meglio



    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  5. #5
    LA VIRGOLA INFATTI LA TOLGO CON:
    $c[0]="";
    $vc[0]="";
    PERO' ORA PROVO AD UTILIZZARE LE {
    MAGARI FUNZIONA

  6. #6
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    $c[0]="";
    $vc[0]="";

    nn sono sicurissimo che funzioni... consideri una stringa come un array e questa sintassi potrebbe addirittura azzerare la tua variabile $vc e $c (di testo) e trasformarla in array con elemento [0]=""

    se vuo accedere alle singole lettere di una stringa

    $stringa ="pippo";

    echo $stringa{1}; // stampa i
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  7. #7
    caro dottwatson ti ringrazio per l'aiuto intanto.

    credo che funzioni cioè che toglie la virgola iniziale come vedi dall'output comunque proverò il tuo suggerimento. poi volevo dirti anche che se inserisco al posto della variabile $query2 la query visualizzata a video attraverso gli echo mi funziona e scrive nel db i dati
    è questo che non capisco perchè allora così non funziona?

  8. #8
    ho usato il tuo codice e ottengo lo stesso risultato

    $vc.=",'{$vcampo[$i]}'";

    e alla fine di tutto

    $vc=substr($vc,1);

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    se le query sono corrette allora verifica la struttura della tabella... hai un Id in piu rispetto all' id_alunno che tratti?

    altre idee non me ne vengono...
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  10. #10
    no ho solo quello.
    non è che devo fare parsing di qualcosa? per es delle ' che uso nella variabile $vc?

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.