23. Recerques i recuperació de valors

Índex

 

Operacions bàsiques de recerca en una taula

Quan volem obtenir dades contingudes en una taula, cal fer dues operacions successives:

De moment cal saber que si volem obtenir totes les dades de la taula, l'argument de mysql_query() és

 

Explotació de les dades obtingudes

Es fa servir una combinació de la funció mysql_fetch_array(), que llegeix les dades obtingudes i les col·loca en un vector, i el bucle while(), que en fa la lectura seqüencial:

Les denominacions $dades i $fila són arbitràries.

El programa que acabem d'indicar presentaria seqüencialment les dades, sense distinció de files ni de columnes, ni tan sols salts de línia.

Però podem, per exemple, situar un echo "<table>" abans de la funció mysql_query() i un echo "</table>" al final, iniciar cada bucle amb un echo "<tr>" i concloure'l amb un echo "</tr>" i envoltar cada valor amb <td> ... </td>, amb la qual cosa obtindrem una presentació en forma de taula. És el que fem en l'exemple següent.

També podríem situar les dades en una estructura <ul><li>..., o qualsevol altra.

O podríem, també, no presentar les dades, sinó fer-les servir a conveniència en altres parts del programa.


Nota: per raons òbvies, el nom d'usuari i la contrassenya han estat emmascarats en aquesta reproducció de l'exemple.


Vegeu-ne el resultat.

 

Obtenció de les dades

Per a l'obtenció de les dades cal establir les condicions de la recerca; per a això es fan servir els arguments de la funció mysql_query(), que corresponen a les preguntes bàsiques de la recerca. Són els que s'exposen a continuació:

SELECT Quins camps dels registres seleccionats interessen?
FROM A quina taula hi ha les dades desitjades?
WHERE Quins registres se n'han de seleccionar? (tal camp ha de tenir tal valor)
ORDER BY En quin ordre cal disposar els registres seleccionats?

Aquestes operacions tenen el format general

SELECT i FROM són obligatoris; els altres paràmetres són optatius.

 

SELECT ... FROM ...

El format general és el següent:

És obligatori almenys un nom de camp. L'ordre en què s'indiquen els noms dels camps és rellevant per al resultat (i no té res a veure amb l'ordre dels camps en la taula).

Si volem tots els camps, podem indicar

i en aquest cas els camps es donen en l'ordre en què es troben dins la taula.

 

WHERE

El format general de WHERE és el següent:

El valor pot ésser indicat literalment o mitjançant una variable. En un i altre cas cal respectar el caràcter textual o numèric del camp; en el primer cas, cal usar les cometes, encara que estigui representat per una variable.

Els operadors de WHERE són

= Igualtat
!= Desigualtat
> Més gran que
< Més petit que
>= Més gran o igual que
<= Mes petit o igual que
BETWEEN Valors compresos entre dos extrems, inclosos aquests
LIKE Valors que contenen el patró indicat
AND Uneix dues o més condicions concurrents
OR Uneix dues o més condicions alternatives
IS NOT NULL Tots els valors no nuls

Si volem tots els registres de la taula, simplement prescindim del paràmetre WHERE.





Vegeu-ne el resultat.

 

Ús de fragments de cadena a WHERE

Podem fer servir fragments de cadena (mat, tar o taró en lloc de mataró); en aquest cas cal fer servir el comodí %:




Vegeu-ne el resultat.

 

ORDER BY

Amb ORDER BY ordenem els registres:

Per exemple,

Podem ordenar d'acord amb dos o més camps; en aquest cas els noms dels camps es separen amb comes.

Si s'afegeix al final el modificador DESC, l'ordenació serà inversa.




Vegeu-ne el resultat.