- Home
- Categorie
- Coding e Sistemistica
- PHP
- Domanda per comando "WHERE"
-
Domanda per comando "WHERE"
Salve,
in pratica avrei bisogno di creare una query che scelga alcune righe dal MySQL in base a più criteri... nel senso:[php]
$query=mysql_query("SELECT * FROM my_table WHERE id='1' or '2'");
[/php]in pratica avrei bisogno che selezionasse le righe dove l'id è uguale a 1 O 2... come posso fare?
-
SELECT * FROM my_table WHERE id='1' AND id='2'
-
posso anche usare il comando OR oltre che AND? Perchè sarà difficcile che una riga abbia un id con 2 valori
-
Scusami tanto,
mi sono rimbecillito per un momento, cmq non e che puoi, ma DEVI usare OR.Grazie
-
Si ma così trova un solo risultato... nonostante io abbia specificatamente impostato LIMIT 3... comunque il problema è che io ho un ciclo for:
[php]
for($fids=0; $fids < $limit; $fids++, $fid--)
{
$ids = "id='" . $fid . "' or " ;
print $ids;
}
[/php]che da come risultato (ad esempio)
id='6' or id='5' or id='4' orquesto valore viene poi riportato nella query
$sql=mysql_query("SELECT * FROM news WHERE " . $ids . " id='7' ORDER BY time Desc LIMIT " . $limit . " ") or die ("Query error: " . mysql_error());
ho dovuto aggiungere id='7' per chiudere l'ultimo or.
Domanda:
-
Come faccio a troncare l'ultimo or in modo che sia ...'id'=4 invece di ...id=4 or
-
Come faccio a fare in modo che selezioni più di una riga?
-
-
Così al volo ti faccio un esempio di come mettere gli or fino a quando non ci troviamo all'ultimo ciclo di for
esempio:
[php]
for($fids=0; $fids < $limit; $fids++, $fid--)
{
$ids = "id='" . $fid;
if($fids < ($limit-1))
$ids =. "' or " ;
print $ids;
}
[/php]
-
OK quello l'ho risolto ora sto lavorando in modo che quando clicca su next procede a prevelare i 3 id dopo l'ultimo usato e viceversa. Esempio: se in questo momento sono visualzizate le news con id: 1, 2, 3 cliccando su next si passerà a quelle con id 4, 5, 6 e vorrei che se si cliccasse su previous si ri-vedesse 1, 2, 3 sto usando questo codice:
[php]
//il problema è in questa parte (dove $_GET["state" == 1)
if($_GET["state"] == 1)
{
for($fids=0; $fids < $limit; $fids++, $fid--)
{
if($fid == 0)
{
$fid++;
}
$ids = "id='" . $fid . "' or " ;
print $ids;}
}
if($_GET["state"] == 2)
{
for($fids=0; $fids < $limit; $fids++, $fid++)
{
if($fid == 0)
{
$fid++;
}
$ids = "id='" . $fid . "' or " ;
print $ids;}
}
[/php](1= Precedente, 2=Prossimo) funziona bene la seconda parte ($_GET["state"] == 2. Però se ad esempio $ids è:id='4' or id='5' or id='6' or
se clicco su previous
mi viene
id='7' or id='6' or id='5' or
come mai?