Hola,
Bienvenidos al orden de precedencia de los operadores. PHP tiene dos operados para el "o logico": OR y || (lo mismo pasa para el "y logico"). La unica diferencia entre ambos es el orden de precedencia que tienen:
http://www.php.net/manual/en/languag...ors.precedence
El problema que tienes es en esta linea
Código PHP:
$coneccion = mysql_connect("localhost","","") || die ("Error");
Como usas || lo que realmente estas haciendo es:
Código PHP:
$coneccion = (mysql_connect("localhost","","") || die ("Error"));
Es decir, asignas a $coneccion el valor de hacer un "o logico" entre el mysql_connect() y el die() (como PHP evalua por cortocircuito solo ejecuta el die() si mysql_devuelve falso). Como aigna el "o logico", lo que asigna es TRUE o FALSE, no el valor devuelto por mysql_connect(), por eso te da error al usar $coneccion.
Si te fijas en el manual, lo que hacen es:
Código PHP:
$coneccion = mysql_connect("localhost","","") OR die ("Error");
que es equivalente a hacer con ||:
Código PHP:
($coneccion = mysql_connect("localhost","","")) || die ("Error");
Es decir, primero asigna el valor devuelto por mysql_connect() a $coneccion, y luego hace el "o logico" de los dos valores (otra vez por lo de cortocircuito, solo se ejecuta el die si mysql_connect() devuelve false). Como coneccion tiene ahora el valor devuelto por mysql_connect(), ahora no dara fallo al usarlo.
Ya veis como un pequeño detalle puede crear grandes problemas si no sabes donde mirar.
Recuerda: usa
Código PHP:
$coneccion = mysql_connect("localhost","","") OR die ("Error");
Saludos.