- Home
- Categorie
- Coding e Sistemistica
- WordPress
- Creare form senza plugin
-
Nel modo seguente:
global $wpdb;
/*$q = "INSERT INTO ...............";$result = $wpdb->get_results($q);
-
Puoi postare il codice di upload.php?
-
In realtà per ora ho messo solo quello, ovviamente racchiuso tra i tag php e per vedere se funziona ho fatto una echo, e comunque dovrebbe inserire i dati nel DB, in teoria
ed ottengo il seguente errore quando invio la form:
Fatal error: Call to a member function get_results() on a non-object
-
get_results-> è un metodo utilizzato per fare le select. Usa INSERT invece, qui c'è una spiegazione abbastanza esaustiva con gli esempi codex.wordpress.org/Class_Reference/wpdb#INSERT_rows
-
Ho fatto la prova, ma mi restituisce sempre errore: Call to a member function insert() on a non-object
il codice è il seguente:
$result=$wpdb->insert(
'wp_bandi',
array(
'id' => '0',
'titolo' => $_REQUEST['titolo'],
'descrizione' => $_REQUEST['descrizione'],
'dataPubblicazione' => $_REQUEST['dataPubblicazione'],
'licenza' => $_REQUEST['licenza'],
'cig' => $_REQUEST['cig'],
'oggetto' => $_REQUEST['oggetto'],
'sceltaContraente' => $_REQUEST['sceltaContraente'],
'scadenza' => $_REQUEST['scadenza'],
)
);Comunque ho letto in giro, secondo te potrebbe essere un problema di $wpdb che non è riconosciuta o cose del genere??
Grazie per l'aiuto
-
Per quello che ne son $wpbd è una classe di wordpress, dovrebbe riconoscerla sempre.
Se la tua tabella si chiama: wp_bandi, allora prova cosi:
[PHP]$result=$wpdb->insert(
$wpdb->bandi,
array(
'id' => '0',
'titolo' => $_REQUEST['titolo'],
'descrizione' => $_REQUEST['descrizione'],
'dataPubblicazione' => $_REQUEST['dataPubblicazione'],
'licenza' => $_REQUEST['licenza'],
'cig' => $_REQUEST['cig'],
'oggetto' => $_REQUEST['oggetto'],
'sceltaContraente' => $_REQUEST['sceltaContraente'],
'scadenza' => $_REQUEST['scadenza'],
)
);[/PHP]
-
niente da fare, sempre lo stesso errore
se provo a fare var_dump( isset( $wpdb ) );
il risultato è bool(false), credo che il problema sia proprio della variabile, solo che non so come risolverlo..
-
Sono riuscita ad ottenere come risultato del var_dump() bool(true), però non mi inserisce i dati nel database
Ho trovato il problema, spero che qualcuno mi aiuti a risolverlo.
Se scrivo:
$q = "INSERT INTO $wpdb->bandi VALUES('0','{$_REQUEST['titolo']}','{$_REQUEST['descrizione']}','{$_REQUEST['dataPubblicazione']}','{$_REQUEST['licenza']}','{$_REQUEST['cig']}','{$_REQUEST['oggetto']}','{$_REQUEST['sceltaContraente']}','{$_REQUEST['scadenza']}')";
e ne faccio una echo non mi viene letto il nome della tabella, ma ottengo come risultato: INSERT INTO VALUES(.............
è strano perchè se faccio lo stesso con la tabella wp_posts questa mi viene letta correttamente.:?
-
Sono arrivata ad una soluzione, grazie Bellu...
-
Prego Perchè non posti la soluzione completa? magari a qualcuno potrebbe risultare utile come esempio.
-
@Bellu said:
Prego Perchè non posti la soluzione completa? magari a qualcuno potrebbe risultare utile come esempio.
appena ho un attimo posto la soluzione
-
Ecco qui la soluzione che ho adottato, forse non sarà la più funzionale....
come detto prima ho creato una form e nella action ho chiamato la pagina upload.php il codice che ho inserito in questo file è il seguente:
<?php
define('SHORTINIT', true);
require_once( $_SERVER['DOCUMENT_ROOT'] . '/wp-load.php' );global $wpdb;
/* fare stripslash sui dati inseriti*/
$q = "INSERT INTO wp_bandi VALUES(.......)";
$result = $wpdb->query($q);
echo $q."result".$result;
?>
Spero che possa essere utile a qualcuno visto che io ci ho messo 2 giorni per farlo funzionare