ciclo con array, assegnare una classe differente per ciascun risultato

bluekid

Nuovo Utente
28 Giu 2013
13
0
1
Saluto tutti e chiedo un vostro aiuto se possibile
per questo problemino che mi sta facendo sbattere la testa:hammer:

ho fatto un form di ricerca, questo form punta ovviamente sulla pagina dei risultati la cui query è:

PHP:
$query = "SELECT annunci.idannunci, annunci.nome,annunci.descrizione,sottocategorie.descrizione as Sottocategorie ecc. ecc. ;
$result = mysql_query($query);	
while($row=mysql_fetch_array($result))
{		
	echo "<p>".$row[nome].",".$row[Comune].",".$row[Provincia]."</p>";
}
ora, da newbie di php, con while faccio apparire tutti i risultati cercati facendo il loop su echo,
avrei invece bisogno di far visualizzare 10 risultati a volta (ok metto l'impaginazione)
ma per ciascuno di questi risultati ho bisogno di assegnare uno stile css differente, ad esempio:

PHP:
echo "<p CLASS="[B]RISULTATO1[/B]">".$row[nome].",".$row[Comune].",".$row[Provincia]."</p>";
echo "<p CLASS="[B]RISULTATO2[/B]">".$row[nome].",".$row[Comune].",".$row[Provincia]."</p>";
echo "<p CLASS="[B]RISULTATO3[/B]">".$row[nome].",".$row[Comune].",".$row[Provincia]."</p>";
ecc.

ho letto qualcosa sugli array, ma praticamente non riesco a capirlo :(
potreste darmi una mano?
Grazie
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
La libreria mysql è di fatto deprecata. Usa PDO:
PHP:
<?php
try {
    $pdo = new PDO('mysql:host=localhost;dbname=database', 'root', 'password');
} catch (PDOException $e) {
    die('Errore durante la connessione.');
}

$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

$stm = $pdo->prepare('SELECT * FROM tabella');

try {
    $stm->execute();
} catch (PDOException $e) { 
    die('Errore durante l\'esecuzione della query.');
}

$rows = $stm->fetchAll();

foreach ($rows as $index => $row) {
    // $index contiene l'indice della riga
    // $row è un array contenente i dati
}
 

bluekid

Nuovo Utente
28 Giu 2013
13
0
1
ciao Alessandro, grazie per la risposta,
cosa intendi per deprecata? non è più valida?
potrebbe dare problemi di vulnerabilità?
dammi qualche consiglio in merito :) tnx
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Non viene più utilizzata perché i sorgenti erano diventati troppo confusi. È stata successivamente riscritta sotto il nome di MySQLi (MySQL improved), ma visto che PDO ha una sintassi più semplice e supporta più database non vedo perché non usare quella.

Quanto ai problemi di vulnerabilità, non ho informazioni riguardo l'implementazione in C, ma di certo può esporre la tua applicazione ad attacchi di tipo SQL injection se non stai attento a fare l'escaping degli input. Con PDO il problema non si pone, perché usi i prepared statement e i valori non entrano mai nel tuo codice SQL.