[PHP] inserimento su DB da tabella

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao a tutti, ho una griglia generata con il seguente codice:
PHP:
<form method="GET" action="miapagina.php" id="griglia">
<table>
<tr>
<?php
for ( $colonna = 1; $colonna <= 25; ++$colonna ) {
        if ($colonna==1) $num = 1 ; else $num=15*($colonna-1)+1;
echo "<td>
<input type='text' name='nome' value='N ' size='1' maxlength='3'><input type='checkbox' name='$num'>
</td>  ";
        
for ( $riga = 1; $riga <= 14; ++$riga ) {
        $cont = ($colonna-1)*15+$riga+1;   
        echo "<td><br><input type='text' name='nome' value='N ' size='1' maxlength='3'><input type='checkbox' name='$cont'>
 </td>  ";
        }
        echo "</tr>";
      }  echo "</tr>";
?>   
</table>
<button type="submit" >INVIA</button>
</form>
Ora io dovrei inserire sul database tutti i valori . In un campo "attivo" nella tbella del DB dovrei mettere un 1 se la cella della griglia era flaggata altrimenti uno 0.
Non so se sto seguendo la strada giusta o se c'è un modo più semplice.
Mi consigliate un sistema per inserire tutti questi dati nel DB?
Grazie a tutti
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
PHP:
for ( $colonna = 1; $colonna <= 25; ++$colonna ) {
        if ($colonna==1) $num = 1 ; else $num=15*($colonna-1)+1;
echo "<td>
<input type='text' name='nome' value='N ' size='1' maxlength='3'><input type='checkbox' name='check[$num]'>
</td>  ";
       
for ( $riga = 1; $riga <= 14; ++$riga ) {
        $cont = ($colonna-1)*15+$riga+1;  
        echo "<td><br><input type='text' name='nome' value='N ' size='1' maxlength='3'><input type='checkbox' name='$cont'>
 </td>  ";
        }
        echo "</tr>";
      }  echo "</tr>";
Ipitizzando che in $num hai l'ID dell'item sul database:
PHP:
if(isset($_POST['qualcosa'])){

$model_insert=[];

foreach($_POST['qualcosa']['check'] as $items){

//solo se usi librerie e/o framework
$model_insert[]=['id'=>$items,'status'=>1];

//solo non utilizzi librerio o framework
$model_insert=['id'=>$items,'status'=>1];
$conn->query("INSERT INTO TABLE ('id','status') VALUES ($model_insert['id'],$model_insert['status']");

}

//ipotizzando tu stia utilizzando qualche framework e/o libreria mysql
$split_insert=array_chunk($model_insert,10);
foreach($split_insert as $items){
        $this->connection->insert('tabella',$items);
}


}
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ciao e grazie per la cortese risposta.
Dimmi se ho capito.
In questo modo tutti i campi che sono stati flaggati vengono inseriti nel DB con valore status a 1.Giusto ?
Se è cosi non va bene per me, io ho bisogno che vengano inseriti tutti , poi se è flaggato metto lo status a 1 altrimenti a 0.
Quando scrivi :
Codice:
foreach($_POST['qualcosa']['check'] as $items){.......
qui va bene se metto [name] che sarebbe quanto era scritto all'interno dell'input della form (dove era name='check[$num]' )
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
Ti chiedo scusa non ho capito.
La mia considerazione era solo guardando il codice, ora lo provo e vedo se funziona.
Nella riga che ti ho indicato va bene se inserisco
Codice:
foreach($_POST['nome']['check'] as $items)
?
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
mi da questo errore:
Warning: Illegal string offset 'check' on line 68

Warning: Invalid argument supplied for foreach() on line 68

e la riga di codice 68 è
foreach($_POST['nome']['check'] as $items){

 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
si ma devi impostare il name del checkbox...
per come hai scritto dovresti avere i checkbox in questo modo:
Codice:
<input type="checkbox" name="nome[check][]" />
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
forse ti basta salvare nel db solo due stringhe ....
PHP:
<?php

$rows  = 25;
$cols  = 15;
$cells = $rows * $cols;

if ( empty($_POST) )
{
    $x     = 0;

    echo "<form method='POST' action='' id='griglia'><table>";

    for ( $r = 1; $r <= $rows; ++$r )
    {
        echo "<tr>";
        for ( $c = 1; $c <= $cols; ++$c )
        {
            ++$x;
            echo "<td><input type='text' name='nome[".$x."]' value='N ' size='1' maxlength='3'><input type='checkbox' name='check[".$x."]'>&nbsp;&nbsp;&nbsp;</td>";
        }
        echo "</tr>";
    }
    echo "</table><br /><button type='submit' >INVIA</button></form>";
}
else
{
    extract($_POST, EXTR_OVERWRITE);
    $_POST = "";

    for ( $x = 1; $x <= $cells; ++$x ) { $checked[$x] = ( isset( $check[$x] ) ? 1 : 0 ); }
    $check = "";

    $jsonNome    = json_encode($nome);
    $jsonChecked = json_encode($checked);

    echo $jsonNome."<br /><br />".$jsonChecked."<br /><br />";
}
?>

esegui lo script così com'è e vedi l'effetto che fa ....
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
si ma devi impostare il name del checkbox...
per come hai scritto dovresti avere i checkbox in questo modo:
Codice:
<input type="checkbox" name="nome[check][]" />

Ciao macus_adi il mio checkbox è cosi:
Codice:
<input type='checkbox' name='check[$num]'>
Lo devo correggere?

forse ti basta salvare nel db solo due stringhe ....
esegui lo script così com'è e vedi l'effetto che fa ....

Ciao marino51 , lo script che mi hai indicato crea perfettamente 2 stringhe , una con il nome e una con il check a 1 oppure 0, però non capisco come faccio poi a recuperare questi dati. Io li devo mettere in una tabella composta da id,nome ,status.

Ciao e grazie a tutti
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
nella tabella si scrive con una sola insert
PHP:
INSERT INTO tabella (id, nome, stato) VALUES ($id, '$jsonNome', '$jsonChecked')

e la si legge con una sola select
PHP:
SELECT id, nome, stato FROM tabella WHERE id = $id

supponendo di ottenere il record in $row, si rigenerano le due array
PHP:
$nome    = json_decode($row['nome']);
$checked = json_decode($row['stato']);

che sono pronte per l'uso
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Con tutto il rispetto, in caso di manipolazione del DOM, la soluzione risulta inadeguata per sicurezza e inconsistenza di dati.
con tutto il rispetto anche salvando in successione gli indici, il risultato non cambia
sempre inconsistenza si ottiene ...
quando si apportano modifiche, sappiamo tutti che si paga un prezzo, sempre e con qualunque soluzione adottata
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Vabbè, ho utilizzato la parolina "model", e sicuramente farà qualcosa nel codice....
$model_insert=['id'=>$items,'status'=>1];
No che abbia scritto il modello..... Attenzione, ho richiamato l'attenzione al MODEL.
In ambito di applicazioni reali non è così... Stop, tranquillo, rilassati...
 

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@marino51
@macus_adi
Già in diverse discussioni avete e avete avuto battibecchi! Non è il caso di smetterla?
Vi ringrazio tantissimo
ciao.gif
ciao.gif
 

solari77

Utente Attivo
6 Ott 2016
119
1
18
Cattura.JPG
nella tabella si scrive con una sola insert
PHP:
INSERT INTO tabella (id, nome, stato) VALUES ($id, '$jsonNome', '$jsonChecked')

e la si legge con una sola select
PHP:
SELECT id, nome, stato FROM tabella WHERE id = $id

supponendo di ottenere il record in $row, si rigenerano le due array
PHP:
$nome    = json_decode($row['nome']);
$checked = json_decode($row['stato']);

che sono pronte per l'uso
Ciao ragazzi io vi ringrazio per l'entusiasmo ma non ci stò capendo più niente. Provo a seguire una delle 2 strade, una alla volta sennò non ne uscirò più.
marino51 facendo in questo modo ottengo una stringa da inserire nel DB , allora $id cosa rappresenta?
Spero abbiate la pazienza di spiegarmi.
Grazie
 
Ultima modifica:

solari77

Utente Attivo
6 Ott 2016
119
1
18
supponendo di ottenere il record in $row, si rigenerano le due array
PHP:
$nome    = json_decode($row['nome']);
$checked = json_decode($row['stato']);

che sono pronte per l'uso

Esattamente $row cosa rappresenta? Come lo devo utilizzare?
Ti ripeto di scusarmi ancora per queste domande che magari per voi hanno una risposta semplicissima.
 
Discussioni simili
Autore Titolo Forum Risposte Data
E Inserimento dati da PHP in tabella MySQL PHP 5
webimage [PHP] Non inserimento in tabella PHP 19
M Inserimento Array prelevato da Database in Php in un altra tabella mysql PHP 0
M [PHP] Difficoltà inserimento valori nella tabella scontrini PHP 16
S Php e mysql, estrazione da una tabella e inserimento in un'altra tabella PHP 14
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
L form multipla php sql,errore in inserimento MySQL 0
C [RISOLTO]Inserimento variabile php in input html PHP 20
S [PHP] email con inserimento dati nel database PHP 23
B [PHP] Creare PDF dopo inserimento dati form PHP 4
C [PHP] Form con Inserimento dati dalla maschera e un menù a discesa che prende i dati dal db PHP 1
C [PHP] Form inserimento più menù a discesa PHP 9
M [PHP] Problemi su inserimento array nel db PHP 7
gandalf1959 [PHP] Inserimento di più righe non funziona come mi aspetto... PHP 2
K [PHP] Inserimento dati database con postgres PHP 2
K [PHP + MYSQL ] Inserimento dati in database da form dinamico PHP 13
A [PHP] Inserimento url dinamici in pagina html PHP 3
spider81man [PHP] Alert Box per confermare Inserimento o Cancellazione dato. PHP 4
M Inserimento dati checkbox multipli in db da ajax a php PHP 1
P [PHP] Problema inserimento nuove chiavi in array PHP 2
M [PHP] Controllo inserimento in tempo reale PHP 0
T [PHP] modulo inserimento in DB e apostrofi... PHP 1
M Inserimento automantico di un testo in una pagina PHP PHP 4
B [PHP] Creare un'interfaccia di inserimento testo in varie posizioni PHP 1
giancadeejay [PHP] Controllo inserimento tot caratteri PHP 5
M [PHP] errore in semplie form inserimento dati PHP 7
M [PHP] Checkbox: inserimento nel db e lettura dal db PHP 20
S [PHP] Inserimento dati su tabelle collegate 1-m PHP 17
M [PHP] controllo inserimento dati un un form PHP 4
cris8380 [PHP] Generare file pdf con inserimento dati PHP 34
J Inserimento di un header, nav, footer php PHP 0
G Inserimento array proveniente da un modulo di registrazione con PHP e MySQL PHP 6
G Inserimento loop in una INSERT query in PHP e MySQL PHP 2
N Inserimento valori da Joomla a database MySql tramite PHP Joomla 0
M [Offro Lavoro] Realizzazione di un database per inserimento eventi in aspx o php [Retribuito] Offerte e Richieste di Lavoro e/o Collaborazione 1
lab php e html - inserimento di dati in database e aggiornamento della pagina html PHP 2
EffeElle Php problema su inserimento dati mysql PHP 47
L PHP/MYSQL + Inserimento automatico dati PHP 10
N [PHP/MySQL] Problema inserimento stringhe ' or ', ' and ' PHP 2
T inserimento di codice php in html PHP 10
R inserimento dati in form da php PHP 1
abulafia [postgres+php]interfaccia grafica per inserimento e ricerca dati PHP 0
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1

Discussioni simili