[PHP] problema insert query

enricocarli

Utente Attivo
26 Set 2014
46
0
6
Buongiorno a tutti,
ho questo codice:

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?
dho.gif


grazie mille a tutti!
buona serata
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
28
Che versione di PHP usi?

Se non sai come vederlo, basta che leggi la testata della tabella che ti spunta eseguendo questo codice.

PHP:
<?php
echo phpinfo();
?>
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
28
Non ho ben capito la struttura delle tue variabili. In ogni caso, ti consiglio di fare come segue, se corrisponde al tuo caso.

Sostanzialmente, devi salvare in un array i valori che ti arrivano da $_POST: per cui se richiedi nome, cognome e anno di nascita avrai una cosa del genere
PHP:
// inseriamo i valori passati dal form in un array
$array_insert['nome'] = $_POST['nome']; // $_POST['nome'] = "Alan"
$array_insert['cognome'] = $_POST['cognome']; // $_POST['cognome'] = "Turing"
$array_insert['anno'] = $_POST['anno']; // $_POST['anno'] = "1930"

Ciò che dobbiamo fare è costruire una query di inserimento che usa le chiavi dell'array come nomi di colonna e i valori corrispondenti a tali chiavi come valori della riga che stiamo inserendo.

Per cui dovremo ottenere una stringa sulla falsa riga della seguente
PHP:
$query = "INSERT INTO tabella (nome,cognome,anno) VALUES ('Alan','Turing','1930')";

A tal fine ho scritto una funzioncina che può venirti in aiuto.
PHP:
function genera_insert($tabella,$array_colonna_valore) {
// prende in input il nome della tabella e un array con i valori da inserire in tabella
    $query = "INSERT INTO $tabella (".
          implode(', ', array_keys($array_colonna_valore)).
          ") VALUES ( '".
          implode("', '", $array_colonna_valore).
          "');";
    return $query;
}

// esempio di utilizzo
$array_insert['nome'] = "Bianca";
$array_insert['cognome'] = "Neve";
$array_insert['città'] = "Hogsmeade";

echo genera_insert('utenti',$array_insert);

// produce la seguente stringa
//"INSERT INTO utenti (nome, cognome, città) VALUES ( 'Bianca', 'Neve', 'Hogsmeade');"

Per cui ora hai la tua query_string, che non è altro che la funzione genera_insert().
 

enricocarli

Utente Attivo
26 Set 2014
46
0
6
ciao AdeKnite,
intanto grazie x la disponibilità, la tua soluzione potrebbe anche funzionare, mi metto all'opera e provo, di fatto io non devo mai mettere i nomi delle colonne del db perchè sono sempre diversi.
ti faccio sapere
grazie ancora
 

enricocarli

Utente Attivo
26 Set 2014
46
0
6
funziona adeknite, grazie infinite, posto il codice qua:

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 ancora e buona serata!
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
28
Consiglio. Smetti di usare le funzioni mysql_, sostituendole con mysqli_ o PDO.
 

AdeKnite

Utente Attivo
3 Ago 2016
161
35
28
28
No, non solo per quello, è anche un discorso di sicurezza e funzionalità implementate. Qui trovi un confronto delle tre API citate.

Tra le ragioni più importanti c'è sicuramente l'assenza delle cosiddette prepared statements, che comporta, se non si presta abbastanza attenzione, delle falle nella sicurezza.
 

enricocarli

Utente Attivo
26 Set 2014
46
0
6
Grazie mille dei consigli AdeKnite.
Devo imparare diverse cose di php sono un niubbo. Darò un occhio anche a queste.
Grazie ancora e buonanotte
 
Discussioni simili
Autore Titolo Forum Risposte Data
A [PHP] Problema query insert [RISOLTO] PHP 14
trattorino [PHP] problema entrata immagini insert PHP 1
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
A Problema checkout carrello php PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
M Problema con php per calcolo costo percentuale PHP 7
O Problema Formmail in PHP su Aruba PHP 0
WebmasterFioriniAndrea Chat e php [problema] PHP 3
L [PHP] Problema con Telegram PHP 1
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
M [PHP] Problema con query select PHP 2
L Problema jQuery validation AJAX (PHP 7) PHP 6
L Problema funzione mail() PHP PHP 3
S [PHP] Problema con istruzione "use" PHP 23
A Problema PHP PHP 1
T [php] problema creazione query select-where PHP 5
M [PHP] problema if PHP 3
L [PHP] Problema su codice o server PHP 5
T [PHP] problema maggiore e minore PHP 4
Cosina [PHP] fwrite problema con le parole accentate PHP 9
M [PHP] Problema search form PHP 3
F [PHP] Problema con number_format PHP 3
L [PHP] problema count messo in una funzione. PHP 1
P [PHP] Progettino CRUD di esercitazione. Problema su $_FILE. PHP 9
C Apache Cordova problema con php Programmazione 1
trattorino problema raccapricciante php conteggio query PHP 4
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F [PHP] Problema con array multidimensionale PHP 4
F Problema con pagine login in PHP PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5
MattiaBL [PHP] Problema ciclo while PHP 3
dvdscr [PHP] Problema malfunzionamento Wordpress WordPress 13
O [PHP] Problema Button in form PHP 1
C [PHP] problema con un esercizio PHP 2
P [PHP] Problema con accenti ed apostrofi PHP 0

Discussioni simili