Visualizzazione dei risultati da 1 a 5 su 5

Discussione: problema query php

  1. #1

    problema query php

    Buongiorno a tutti,
    ho questo codice:

    Codice PHP:
    mysql_query("INSERT INTO ".$_GET['table']."(".
    foreach (
    $array_col as $col) {
    if (
    $col['key']!="PRI") {
    echo 
    $col['nome'].",";
     }

    .
    ") values(".
    foreach (
    $array_col as $col) {
    echo 
    $_POST[$col['nome']].",";
    }
    .
    ")"); 
    ma non inserisce nulla nel db;

    sto facendo un piccolo crud, per quello il nome della tabella e i campi devono essere dinamici.

    Qualcuno può aiutarmi?

    grazie mille a tutti!
    buona serata

  2. #2
    prepara una stringa invece di un comando diretto, così puoi fartela stampare e controllarla prima di eseguirla

  3. #3
    stai facendo una echo per definire una espressione, sono 2 cose diverse
    Se $array_col e' un' array bidimensionale dove definisci il nome delle colonne puoi fare cosi:
    Codice PHP:
    $array_col = array("colonna1"=>"nome""colonna2"=>"cognome"); 
    $sql "INSERT INTO "$_GET['table']. " (colonna_autoincrement,";
    //questo per capire se sei all' ultimo ciclo
    $c 1
    foreach (
    $array_col as $key => $col
    {   
        if (
    $key != "PRI")    
        {      
            
    //inserisci la virgola solo se $c = al numero degli elementi di $array_col      
            
    $virgola $c == count($array_col) ? "" ",";      
            
    $sql .= $col.$virgola;      
            
    //Ad ogni ciclo il contatore aumenta di 1       
            
    $c++;   
        }
    }
    //Stessa cosa per i valori, immagino tu abbia chiamato i campi del modulo come le colonne
    //Do per scontato che tu abbia una colonna autoincrement, quindi aggiungo '' come valore iniziale
    $sql .= ") VALUES ('',";
    $c 1;
    foreach (
    $array_col as $key => $value
    {   
        
    $virgola $c == count($array_col) ? "" ",";   
        
    $sql .= "'" $_POST[$value] . "'" $virgola;   $c++;
    }
    $sql .= ")";
    mysql_query($sql); 
    se fai un print di $sql vedi che la stringa è perfetta, non ti preoccupare per gli apici con i numeri perchè mysql li accetta lo stesso
    Ultima modifica di camionistaxcaso; 04-08-2016 a 12:46

  4. #4
    grazie mille per le risposte!
    gentilissimi, provo e vi faccio sapere!

    buona serata

  5. #5
    ho risolto cos�:

    Codice PHP:

                            $array_insert 
    = array();
                            foreach (
    $array_col as $col) {
                                if(
    $col['key']!="PRI"){
                                    
    $array_insert[] = $col['nome'];
                                }
                            }
                            
    $array_value = array();
                            foreach (
    $array_col as $col) {
                                if(
    $col['key']!="PRI"){
                                    
    $array_value[] = $_POST[$col['nome']];
                                }
                            }                        
                            
    $query_insert mysql_query("INSERT INTO ".$_GET['table']." (
                                "
    .implode(','$array_insert)."
                                ) VALUES ( '"
    .
                                      
    implode("','"$array_value).
                                  
    "')");
                            if(
    $query_insert===1){
                                
    $insert mysql_fetch_assoc($query_insert);
                            } 
    di fatto ho passato 2 array.

    grazie mille per i suggerimenti
    buona serata!

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.