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

Discussione: query e cicli for

  1. #1

    query e cicli for

    buon giorno.
    partendo da questo codice:
    codice:
    for ($s=0; $s<=2; $s++) 
    {
    for ($i=1; $i < $numfields; $i++)
    {
    $fieldName=mysql_field_name($query, $i);
    $fieldValue = $_GET[$fieldName];//dato in get che mi ricavo grazie ai nomi dei campi che ho con (mysql_field_name)
    $a[$i] = $fieldValue; //il valore del dato in get
    $b[$i] = $fieldName; 
    if ($i == $numfields-1) {$stringa1 = $stringa1."'".$fieldValue."'";}
    else {$stringa1 = $stringa1."'".$fieldValue."',";} 
    if ($i == $numfields-1) {$stringa2 = $stringa2.$fieldName;}
    else {$stringa2 = $stringa2."".$fieldName.",";}
    } 
    }
    Che non fa altro che creare una stringa partendo da un array che mi costruisco andando a leggere nella tabella mysq,

    Devo fare un inserimento all'inetrno del db in maniera dinamica, cioè senza sapere quanti record (in questo caso $stringa2 ) sono stati valorizzati e quindi devo inserire nella tabella.
    ho cercato di fare un foreach di $stringa2 ma mi sa che ho bagliato qualcosa.
    Cosa??

  2. #2
    FA SEMPRE PIACERE RICEVERE UNA RISPOSTA PUNTUALE E PRECISA
    VABEH...

  3. #3
    Utente di HTML.it L'avatar di Aires
    Registrato dal
    Jan 2010
    Messaggi
    725
    Originariamente inviato da confuciok6
    FA SEMPRE PIACERE RICEVERE UNA RISPOSTA PUNTUALE E PRECISA
    VABEH...
    Non c'è di che
    Originariamente inviato da qazar
    Se finisci di leggere il thread mi sono corretto,è solo i kernel scritto in html.
    Originariamente inviato da rnlflame
    Comunque non dovevano crollare

  4. #4
    Riportando lo script in codice leggibile:

    Codice PHP:
    <?
    for ($s=0$s<=2$s++) 
    {
        for (
    $i=1$i $numfields$i++)
        {
            
    $fieldName=mysql_field_name($query$i);
            
    $fieldValue $_GET[$fieldName];//dato in get che mi ricavo grazie ai nomi dei campi che ho con (mysql_field_name)
            
    $a[$i] = $fieldValue//il valore del dato in get
            
    $b[$i] = $fieldName
            if (
    $i == $numfields-1
            {
                
    $stringa1 $stringa1."'".$fieldValue."'";
            }
            else 
            {
                
    $stringa1 $stringa1."'".$fieldValue."',";
            } 
            if (
    $i == $numfields-1
            {
                
    $stringa2 $stringa2.$fieldName;
            }
            else 
            {
                
    $stringa2 $stringa2."".$fieldName.",";
            }
        } 
    }
    ?>
    Non ho ben chiaro cosa vuoi ottenere, me lo rispieghi un pò meglio?

  5. #5
    YESSS:
    allora ho una applicazione che fa creare all'utente le tabelle che poi compilerà.
    (un po' come dire mi faccio la rubrica da me e ci metto i campi che volgio io)
    detto ciò io non ho problemi a far creare la tabella e non ho problemi a riprendere dinamicamente i nomi dei campi che devono essere compilati (magari non uso una mogica perfetta ma fin li direi che funziona)
    Codice PHP:
    $query mysql_query("select * from $this->table")or die(mysql_error());
    //mi vado a riprendere i nomi dei campi
    $numfields mysql_num_fields($query);//vedo quanti sono i campi
    for ($i=1$i $numfields$i++)
    {
    e caccio un ciclo for dove partendo da 1 perchè il $numfields[0è l'id 
    $fieldName=mysql_field_name($query, $i);
    //sostituisco il nome del campo al valore del get per ricavarne il valore
    $fieldValue = $_GET[$fieldName]; 

    adesso 2 sono i problemi 1) avedno l'utente di inserire record multipli devo riuscire a far ciclare tutta la questione per n record, secondo devo darglielo in pappa a mysql in modo da inserirli nel db
    Prima che cominciassi a fare questa operazione il tutto era staticamente così:
    Codice PHP:
    foreach($_POST['nome'] as $key => $value)
    {
    $nome $_POST['nome'][$key];
    $cognome $_POST['cognome'][$key];
    $titolo $_POST['titolo'][$key];
    $posizione $_POST['posizione'][$key]; 
    $indirizzo $_POST['indirizzo'][$key];
    $cap $_POST['cap'][$key];
    $citta $_POST['citta'][$key];
    $mail $_POST['mail'][$key];
     
    mysql_query("INSERT INTO utenti (nome,cognome,titolo,posizione,indirizzo,cap,citta,mail, mailed, confirmed)values('$nome', '$cognome', '$titolo', '$posizione', '$indirizzo', '$cap', '$citta', '$mail', '$confirmId', 'NO')") or die(mysql_error());

    vorrei far collimare le 2 cose

  6. #6
    Sarò rincoglionito, ma continuo a non capire

    Potresti gentilmente spiegare COSA vuoi ottenere, lasciando stare cosa hai fatto fin'ora?

  7. #7
    ho delle variabili in get di cui non conosco a priori il name e quante sono, devo inserirle in una query INSERT INTO.
    1) non so mai a priori quanti campi ho nella tabella (risolto)
    2) non so a priori quanti record vengono passati (risolto)
    3) non so a priori come si chiamano gli input (risolto)
    detto ciò mi serve: 1) sapere il valore di ogni input 2) ciclare la query per ogni record.
    spero di essere stato chiaro.
    GRAZIE MILLE A TUTTI

  8. #8
    Se fai un :

    Codice PHP:
    foreach($_POST as $key=>$value)
    {
         echo 
    "Campo: ".$key." - Valore: ".$value."
    "
    ;

    Puoi sapere che input e che valori vengono passati!

    Poi da lì, puoi crearti le insert into che ti servono!

  9. #9
    Cosi mi da solo l'ultimo valore però

  10. #10
    Ok Ok ho deetto una cavolata basta mettere [] nel name dell'input che tutto si risolve, ma rimane in pare il problema di come fare la query:
    io ho scritto questo:
    Codice PHP:
    function InsertRecord () 
    {
    $this->record $_GET['numrecord']; 
    foreach(
    $_GET as $key=>$value){
    if(
    $key!='numrecord'&&$key!='salva')
    {
    for (
    $r=0$r<$this->record$r++)
    {
    $valore$value[$r];echo $valore;}
    }
    }

    posso ovviamente ricavarmi anche il name dell'input ma come faccio a fare una query con un ouput del genere nome1nome2cognome1cognome2mail1mail2 (che sono i valori)
    nomecognomemail che sono i nomi dei campi?
    help please mi sento una vera ghianda
    la mia insert dovrebbe essere
    Codice PHP:
    mysql_query (INSERT INTO $table ($campi[i])VALUES($valori[i])); 

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.