[PHP] inserimento su DB da tabella

Esattamente $row cosa rappresenta? Come lo devo utilizzare?

ha già scritto le istruzioni per la connessione al db, l'inserimento e la lettura del record ?
puoi postarle ?
ammesso che si legga una sola "pagina" dal db, $row (vedo che molti usano questo nome), é il record letto, al suo interno vi sono 'nome' e 'stato'
 
aspetta, scusa, provo a scrivere i passaggi, in modo da rendere più chiaro (spero)
dammi il tempo di prepararlo, lo faccio subito
 
la griglia viene passata con "post" allo script,
vengono recuperati i nomi e lo stato di ciascuno,
si trovano nelle array $nome e $checked

con le istruzioni seguenti si convertone le array in stringhe, echo le visualizza
PHP:
$jsonNome    = json_encode($nome);
$jsonChecked = json_encode($checked);

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

le due stringhe vengono scritte nel db con una insert
PHP:
INSERT INTO tabella (nome, stato) VALUES ('$jsonNome', '$jsonChecked')

quando servono, vengono lette dal db con una select
PHP:
SELECT nome, stato FROM tabella

supponendo che la lettura del db restituisca il record $row che contiene le stringhe 'nome' e 'stato'
queste vengono riconvertite in array con
PHP:
$nome  = json_decode($row['nome']);
$stato = json_decode($row['stato']);

la 15esima cella si identifica nel nome con $nome[15] ed il suo stato come $stato[15]
ed allo stesso modo tutte le altre

spero sia chiaro
 
Io ho fatto cosi
Codice:
    $jsonNome    = json_encode($nome);
    $jsonChecked = json_encode($checked);
    }
    $sql ="INSERT INTO tabella (nome, stato) VALUES ( '$jsonNome', '$jsonChecked')";
    $query=$mysqli->query($sql);
    $sql2 ="SELECT nome, stato FROM tabella";
    $query2=$mysqli->query($sql2);
    $row=mysqli_fetch_array($query2);
    $nome    = json_decode($row['nome']);
    $checked = json_decode($row['stato']);
    echo $nome[15];

e mi viene fuori:

Fatal error: Uncaught Error: Cannot use object of type stdClass as array in /home/griglia2.php:56 Stack trace: #0 {main} thrown in /home/griglia2.php on line 56
 
$row=mysqli_fetch_array($query2);
non hai indicato la riga, ma credo che l'errore sia generato qui
PHP:
$row=mysqli_fetch_array($query2);
Riscrivo le tue righe, corrette, come da manuale (non ho mySql disponibile)
ti lascio anche le righe estratte dal manuale per confronto, che NON devi inserire nello script
PHP:
    $jsonNome    = json_encode($nome);
    $jsonChecked = json_encode($checked);
    }

    $sql ="INSERT INTO tabella (nome, stato) VALUES ( '$jsonNome', '$jsonChecked')";
    $query=$mysqli->query($sql);


$sql2 = "SELECT Name, CountryCode FROM City ORDER by ID LIMIT 3";  //dal manuale mySql
$query2 = $mysqli->query($sql2);                                   //dal manuale mySql

    $sql2 ="SELECT nome, stato FROM tabella";
    $query2=$mysqli->query($sql2);

$row = $query2->fetch_array(MYSQLI_ASSOC);                         //dal manuale mySql

    $row=$query2->fetch_array(MYSQLI_ASSOC);

printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);           //dal manuale mySql

    $nome    = json_decode($row['nome']);
    $checked = json_decode($row['stato']);
    echo $nome[15];
 
ps, a scanso di equivoci modifica le due righe in questo modo
PHP:
    $nome    = json_decode($jsonNome, TRUE);
    $checked = json_decode($jsonChecked, TRUE);

    echo $nome[15]."<br /><br />".$checked[15]."<br /><br />";
upload_2018-3-31_8-19-27.png
 
se volessi gestire griglie di formato diverso (sempre 1 pagina) modifica così

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

$versione = $rows." * ".$cols;

.......

    $sql ="INSERT INTO tabella (versione, nome, stato) VALUES ( '$versione', '$jsonNome', '$jsonChecked')";

......

    $sql2 ="SELECT versione, nome, stato FROM tabella WHERE versione = '$versione'";

se ti servisse gestire più pagine della stessa griglia, inserisci anche l'indice di pagina

(ps, la tabella nel database deve avere struttura e colonne con dimensioni max coerenti)

saluti
 
  • Like
Reactions: solari77

Discussioni simili