select

Mattepuffo's logo
Javascript Select selezionata

Javascript Select selezionata

Una cosa molto richiesta è come sapere quale voce di una <select> è stata selezionata usando Javascript.

Ci sono ovviamente infiniti modi per farlo, e molto dipende anche da quello ci si deve fare.

Vi posto una funzione un pò generale; faremo un controllo sul valore e poi gli faremo fare qualcosa.

Mattepuffo's logo
Ordinamento personalizzato in MySQL

Ordinamento personalizzato in MySQL

Quello che mi serve è questo: ordinare i dati partendo da un record specifico, e poi a seguire tutti gli altri.

Ho scoperto che è abbastanza semplice usando la funzione INSTR.

Supponiamo di avere una serie di autori:

SELECT * FROM author ORDER BY author_id;
+-----------+--------------------------------------+
| author_id | author_name                          |
+-----------+--------------------------------------+
|         1 | mcclure, scambray, kurtz             |
|         2 | clive cussler                        |
|         3 | stephen king                         |
|         4 | cecchi paone                         |
|         5 | flem ath                             |
|         6 | nagel, evjen, glynn, watson, skinner |
|         8 | herman hesse                         |
|        10 | deitel - deitel                      |
|        11 | dave thau                            |
|        13 | cesare pavese                        |
+-----------+--------------------------------------+

Autori ordinati per id.

Mattepuffo's logo
UPDATE con SELECT in MySQL

UPDATE con SELECT in MySQL

A vole può capitare di dover fare UPDATE massicci su una tabella controllando però determinate condizioni su un'altra tabella collegata.

Ad esempio nel mio caso ho una tabella articoli; il prezzo degli articoli è su un'altra tabella collegata tramite il codice dell'articolo.

Io dovevo impostare il flag abilitato su tutti quegli articoli che avevano un prezzo maggiore di uno.

Quindi in linea teorica è questo: aggiorna la tabella articoli settando 1 sul campo abilitato in tutti gli articoli che nella tabella listini_righe hanno il prezzo maggiore di 1.

Mattepuffo's logo
Collegare select con PHP e Javascript

Collegare select con PHP e Javascript

Lo scenario è uno dei più classici: abbiamo una select che rappresenta le sezioni e una che rappresenta le categorie che è collegata alla prima.

Nel db avremo una cosa del genere:

  • tabella sezioni
    • sezione_id
    • sezione_nome
  • tabella categorie
    • categoria_id
    • categoria_nome
    • sezione_FK (foreign key che la collega alle sezioni)

Quindi la select con le categoiei si riempie solo con quelle che corrispondo a una deternimata sezione.

Solo con il PHP questo non è possibile; ci vuole un pò di Javascript e AJAX.

Prima di tutto riempiamo la prima select:

function selectSection() {
global $config;
try {
$result = $config->getPdo()->query("SELECT * FROM sezioni ORDER BY sezione_nome");
return $result;
} catch (Exception $e) {
die($e->getMessage());
}
}

<td>Sezione:</td>
<td>
<select name="sezione" onchange="changeSelect(this.value);" id="sezione">
<option value="*">*</option>
<?php
foreach (selectSection () as $rowSection) {
echo "<option value='" . $rowSection['sezione_id'] . "'>" . $rowSection['sezione_nome'] . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Categoria:</td>
<td>
<select name="categoria" id="categoria">
<option value='*'>*</option>
</select>
</td>
</tr>

Io uso PDO per la connessione, ma non cambia nulla.

Ora come ora viene riempita solo la select sezione, che richiama anche una funzione Javascript che ancora dobbiamo mettere su.

La select categoria ha solo un * tanto per renderla presentabile.

Mattepuffo's logo
Option selected in PHP

Option selected in PHP

Penso che più o meno tutti conosciate i tag select e option in HMTL:

<select>
   <option value="volvo">Volvo</option>
   <option value="saab">Saab</option>
   <option value="mercedes">Mercedes</option>
   <option value="audi">Audi</option>
</select>

I classici tag per creare liste.

Qui vi spiego come riempire una lista prendendo i dati da un db e come fare per selezionare una voce specifica tramite l'attributo selected.

Prima di tutto avremo una funzione che esegue la query:

function selectAuthor() {
  global $config;
  $result = array();
  try {
   $result = $config->getPdo()->query("CALL getAuthor()");
   return $result;
  } catch (PDOException $e) {
   $error = $e->getMessage() . "<br/>";
   return $error;
   die();
  }
}