No se que registro tengas dentro de tu tabla, serias tan amable de postear que consultas estas utilizando? que registros tienes dentro de la tabla (Aunque sean 5 de ejemplo)... y bueno que codigo PHP (Aunque ya esa parte no corresponderia para este subforo, sino a PHP) obvia el codigo (Aunque por la respuesta que expones que siempre te retorna Resourse#4 y aunque no he visto tu tabla segun los campos que tienes este dato como que no concuerda... pareciera que es un fallo mas de codigo que de consulta) Pero sino es mucho pedir, podrias entras por el cliente MySQL (En una terminal o MS-DOS) y realizar la misma consulta SQL (que haces en tu codigo PHP) dentro del mismo motor MySQL y ver que te retorna y exponerlo aca?
Una recomendacion
(para todos) Procura usar mas indices puesto que:
mysql> select * from usuarios;
+-------+---------+----------------------------------+
| id_us | usuario | contraseña |
+-------+---------+----------------------------------+
| 1 | coco | 202cb962ac59075b964b07152d234b70 |
| 2 | shersy | 202cb962ac59075b964b07152d234b70 |
| 3 | xoxo | 202cb962ac59075b964b07152d234b70 |
+-------+---------+----------------------------------+
3 rows in set (0.00 sec)
mysql> select * from alumnos;
+---------+---------+---------+
| id_alum | nombres | colegio |
+---------+---------+---------+
| 1 | Juan | Perez |
| 2 | Maria | Mendez |
| 3 | Matias | Lopez |
+---------+---------+---------+
3 rows in set (0.00 sec)
Lo anterior es un ejemplo, llaves primarias solo son id_alum y id_us por el momento, pero si solo quieres el campo 'colegio' y filtras por las 2 llaves de cada tabla mira que pasa:
mysql> EXPLAIN SELECT colegio AS COLEGIO FROM alumnos INNER JOIN usuarios WHERE alumnos.id_alum = usuarios.id_us;
+----+-------------+----------+--------+---------------+---------+---------+--------------------------+------+-------------+
| id | select_type | TABLE | TYPE | possible_keys | KEY | key_len | REF | ROWS | Extra |
+----+-------------+----------+--------+---------------+---------+---------+--------------------------+------+-------------+
| 1 | SIMPLE | alumnos | ALL | PRIMARY | NULL | NULL | NULL | 3 | |
| 1 | SIMPLE | usuarios | eq_ref | PRIMARY | PRIMARY | 1 | primaria.alumnos.id_alum | 1 | USING INDEX |
+----+-------------+----------+--------+---------------+---------+---------+--------------------------+------+-------------+
Lo anterior muestra como la tabla alumnos para encontrar el campo 'Colegio' del usuario 'coco' tiene que rebuscar en todos los registros que contiene la tabla (Por eso no basta con hacer id = id esto buscara en todos los registros).
Sin embargo si haces:
mysql> CREATE INDEX indice ON usuarios(usuario);
Query OK, 3 ROWS affected (0.03 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> EXPLAIN SELECT colegio AS COLEGIO FROM alumnos,usuarios WHERE usuario = 'coco' AND alumnos.id_alum = ( SELECT id_us FROM usuarios WHERE usuario = 'coco');
+----+-------------+----------+-------+---------------+---------+---------+-------+------+--------------------------+
| id | select_type | TABLE | TYPE | possible_keys | KEY | key_len | REF | ROWS | Extra |
+----+-------------+----------+-------+---------------+---------+---------+-------+------+--------------------------+
| 1 | PRIMARY | alumnos | const | PRIMARY | PRIMARY | 1 | const | 1 | |
| 1 | PRIMARY | usuarios | REF | indice | indice | 21 | const | 1 | USING WHERE; USING INDEX |
| 2 | SUBQUERY | usuarios | REF | indice | indice | 21 | | 1 | USING WHERE |
+----+-------------+----------+-------+---------------+---------+---------+-------+------+--------------------------+
3 ROWS IN SET (0.00 sec)
mysql> EXPLAIN SELECT colegio AS COLEGIO FROM alumnos,usuarios WHERE usuario = 'coco' AND usuarios.id_us = alumnos.id_alum; +----+-------------+----------+--------+----------------+---------+---------+-------------------------+------+-------------+
| id | select_type | TABLE | TYPE | possible_keys | KEY | key_len | REF | ROWS | Extra |
+----+-------------+----------+--------+----------------+---------+---------+-------------------------+------+-------------+
| 1 | SIMPLE | usuarios | REF | PRIMARY,indice | indice | 21 | const | 1 | USING WHERE |
| 1 | SIMPLE | alumnos | eq_ref | PRIMARY | PRIMARY | 1 | primaria.usuarios.id_us | 1 | |
+----+-------------+----------+--------+----------------+---------+---------+-------------------------+------+-------------+
2 ROWS IN SET (0.00 sec)
En ambos casos de consultas donde hay hasta un subquery, ves como la consulta solo analiza 1 columna en vez de todas para retornarte el resultado???
ten pendiente que campos pueden ser candidatos a llave o indices en tu tabla para que le saques provecho de optimizacion a una consulta.