<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Il giorno dom 21 ott 2018 alle ore 10:36 Giorgio Brigato <<a href="mailto:giorgio.brigato@gmail.com">giorgio.brigato@gmail.com</a>> ha scritto:<br></div></div></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Buongiorno a Tutti.<div><br></div><div>Premetto che NON sono un programmatore, ma un "dilettante allo sbaraglio".</div><div><br></div><div>Possiedo uno script che alimenta una tabella MySql (valutazioni).</div><div>Tramite una query (seleziona il seminario [ad esempio] numero 077 [ma variabile di volta in volta]) vorrei contare le persone presenti (presenza = 1) che hanno compilato un record di valutazione.</div><div><br></div><div>Questo il criterio di ricerca:</div><div><br></div><div><div>$presenzawork=~tr/[a-zA-Z0-9 ]//cd;</div><div>if ($item eq "presenza" && $presenzawork){</div><div>$p1="LCASE(";</div><div>$p2=") regexp \"\[\[:<:\]\]";</div><div>$p3="\+\"";</div><div>@presenzawork=split(/ /,$presenzawork);</div><div>foreach $chunk (@presenzawork){</div><div>push(@allsearchterms,"$p1$item $p2$chunk$p3");}}</div></div></div></blockquote><div><br></div><div>Leggendo oltre, non capisco perché sia stato incluso il codice qui sopra. Se "limi" le domande all'osso hai più probabilità di essere capito ;-)</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>La query:<br></div><div><br></div><div><div>my $dbh = DBI->connect ("DBI:$databaseserver:$dbase:$hostname",</div><div>      $username, $mysqlpassword, {RaiseError=>0, PrintError=>1})</div><div>   or security("Can't take requested action");</div><div>my ($sumpresenza) = $dbh->selectrow_array('SELECT SUM(presenza) FROM valutazioni');</div><div>$dbh->disconnect();</div><div><br></div><div>print "<td><B>Presenze:<br><center>$sumpresenza</center></B></td>\n";</div></div><div><br></div><div>mi conteggia TUTTI i record con valore 1 nel campo "presenza".</div><div><br></div><div>Come posso modificare lo script per restringere la somma ai soli record con numero di seminario [ad esempio] 077?</div></div></blockquote><div><br></div><div>Per avere aiuto su una query, dovresti quantomeno mandare la definizione della tabella o delle tabelle coinvolte (quella roba che inizia con "CREATE TABLE" per intenderci). Nel caso specifico, la tabella "valutazioni".</div><div><br></div><div>Se la colonna di "valutazioni" che registra l'identificativo del seminario è chiamata "seminario", puoi provare qualcosa del genere:</div><div><br></div><div>my $seminario_di_interesse = '077';</div><div>my ($sumpresenza) = $dbh->selectrow_array('SELECT SUM(presenza) FROM valutazioni WHERE seminario = ?', undef, $seminario_di_interesse);</div><div><br></div><div>Link utili:</div><div><br></div><div>* query SQL: c'è parecchio in giro, con varianti a seconda del backend utilizzato (SQLite, Postresql, ...). Nel caso di MySQL 8.0, una query SELECT ha questo "formato": <a href="https://dev.mysql.com/doc/refman/8.0/en/select.html">https://dev.mysql.com/doc/refman/8.0/en/select.html</a></div><div>* come si inseriscono "variabili" nelle query con DBI: <a href="https://metacpan.org/pod/DBI#Placeholders-and-Bind-Values">https://metacpan.org/pod/DBI#Placeholders-and-Bind-Values</a></div><div>* dove vanno messe le "variabili" di selectrow_array: <a href="https://metacpan.org/pod/DBI#selectrow_array">https://metacpan.org/pod/DBI#selectrow_array</a></div><div><br></div><div>Ciao,</div><div><br></div><div>    Flavio.</div><br class="gmail-Apple-interchange-newline"></div></div>