- Home
- Categorie
- Coding e Sistemistica
- MYSQL e altri Database
- select by query mysql
-
select by query mysql
Ciao a tutti. Ecco una piccola difficoltà che ho incontrato, che ricordo di aver risolto in passato, ma adesso riemerge.
Ecco il caso.Inserimento articoli in database così formato
id | nome | categoria
123 | casa | 2
124 | libro | 5
Quando inserisco ok, non c'è problema. Quando vado a modificare l'articolo, invece, mettiamo il caso che vorrei passare l'id '123' e quindi 'casa' da categoria '2' a '3' tramite una select. Come potrei fare?
-
UPDATE tabella SET categoria = '3' WHERE id = '123'
la query dovrebbe essere cosi...
-
Forse mi sono spiegato male. So come fare le query. Faccio un esempio:
[PHP]
$modifica = mysql_query("SELECT * FROM primo WHERE id = $id LIMIT 1");
if (@mysql_num_rows($modifica) == 1) {
echo '
<form name="modifica" method="post" action="./modarticolo.php">
<table width="100%">
<tr><td><font class="articolo">ID:</font></td><td><input name="id" size="5" class="articolo" readonly="readonly" value="' .mysql_result($modifica,$a,'id') .'"></td></tr>
<tr><td><font class="articolo">Titolo:</font></td><td> <input name="titolo" class="articolo" size="70" value="' .mysql_result($modifica,$a,'titolo') .'"></td></tr>
<tr><td><font class="articolo">Categoria:</font></td><td> <input name="sottotitolo" size="70" class="articolo" value="' .mysql_result($modifica,$a,'categoria') .'"></td></tr>
';if (mysql_result($modifica,$a,'categoria')=="1") { echo ' <option SELECTED value="1">Auto</option> <option value="2">Moto</option> <option value="3">Casa</option> '; if (mysql_result($modifica,$a,'categoria')=="2") { echo ' <option value="1">Auto</option> <option SELECTED value="2">Moto</option> <option value="3">Casa</option> '; }
[/PHP]
etc...
Esiste un altro modo più semplice di fare ciò senza andare a fare il confronto per ogni tipo di categoria presente?, anche perchè esiste un'altra tabella che si chiama 'categoria', quindi prendo la lista da li
-
Scusa stable forse ho capito male io.. ma non potresti usare un ciclo while caricando tutte le categorie nella select e controllare -per il selected- soltanto all'interno del ciclo in questo modo
[php]
while($obj = mysql_fetch_array($result))
{
$txt = '<option value="%d" %s>%s</option>';
if ($obj['id_categoria'] == $id_categoria_che_stai_modificando)
{
$option = sprintf($txt, $obj['id_categoria'], 'selected', $obj['categoria'];
}
else
{
$option = sprintf($txt, $obj['id_categoria'], '', $obj['categoria'];
}
print $option;
}
[/php]
-
Ciao mister.jinx, ti ringrazio per il contributo ma sinceramente non lo so adattare al mio esempio pratico...
sapresti darmi una mano in tal senso?