Duda con PHP: poner consulta como valor predeterminado

Hola amigos, queria preguntarle a alguien que sepa de estos rollos si por favor me podía echar una mano.

Lo que pretendo es que se haga una consulta en la base de datos (mySQL) y que se muestre una forma con esa consulta.

Es decir así: Imagen

Pero que el valor lo obtenga de una consulta. He aquí mi código, obviamente algo anda mal pero no se que es.
$con = mysql_connect("localhost","prueba");
if (!$con)
{
die('No se pudo establecer la conexión: ' . mysql_error());
}

mysql_select_db("prueba", $con);

$result = mysql_query("SELECT * FROM sistema
WHERE id='$_POST[id]'");
mysql_fetch_array($result); ?>


Nombre:

Apellidos:




Escuela:







mysql_close($con);
?>

Alguien ayúdeme, por favor.
Lo suyo es asignar mysql_select_db a un variable y luego usarla en las consultas, pero vamos donde lo tienes mal es que mysql_fetch_array debes asignarselo a $row. Por otra parte si el campo id es numerico no necesita las comillas.

El mysql_free_result y mysql_close no lo he puesto en mi vida, pero muy bien por ti (es una buena práctica).
Gracias DemonR por responder, como podras notar soy un novato con el PHP, pero bueno.

Segun entendi, me falta agregar una linea como esta $row=mysql_fetch_array($result); , no?

O me equivoco?
ivanvx escribió:Gracias DemonR por responder, como podras notar soy un novato con el PHP, pero bueno.

Segun entendi, me falta agregar una linea como esta $row=mysql_fetch_array($result); , no?

O me equivoco?
Exacto, a eso se refiere.

Por cierto, no se para que vas a usar PHP+MySQL, pero yo siempre recomiendo usar una librería de SQL que te proporcione una capa de abstracción superior, basicamente te evitas depender de MySQL ya que te permite pasar de MySQL a Oracle o mSQL casí sin tocar una línea de código.

Una de las mejores es ADOdb

Saludos!
Perdona ivanx, pero es que no se si he entendido bien tu duda, osea, tu quieres que, en un textbox, si el usuario pone "ivan", y le da al boton "Examinar", le salga sus datos?

si es eso, pos mira, yo te aconsejo k agas esto tonces (resumindo)

//connexiones y tal, xDD
$connex = mysql_connect ( $host , $usuari , $contrasenya );

//sentencia sql
$sql = "SELECT ...";


echo "";
echo "";

//e echo un bucle, de 3 columnas (nom, apt_nd,apt_pla,escuela)
//basandome en tu ejemplo
while ( $un_resul = mysql_fetch_row ( $resul ) )
{

for($i=0;$i<=3;$i++)
{
echo "";
}

echo "";
}

echo "";
echo "
";
print ($un_resul[$i]."
");
echo "
";

//para demonr, jeje,
mysql_close ( $connex );
?>



ivanvx escribió:Segun entendi, me falta agregar una linea como esta $row=mysql_fetch_array($result); , no?


es lo que e puesto arriba del bucle while??

saludos

[looco]
Muchas Gracias por responder a todos.

y th3pr0d1gy, no es eso lo que quiero hacer, lo que quiero es que el valor predeterminado que muestre el cuadro de texto, es decir dentro de value=".", sea el resultado de una consulta a una base de datos.

Ya probe la sugerencia de DemonR y funciona, pero solo para el primer campo.


y MrSiir. ADOdb debe instalarse en el servidor?
ivanvx escribió:y MrSiir. ADOdb debe instalarse en el servidor?
No, son librerias PHP (ficheros php) que van con tu código, claro que hay situaciones en la cuales los servidores de hosting de internet ponen librerias a tu disposición, pero si no es ese tu caso las puedes subir tu mismo a tu espacio de "usuario" en tu servidor Apache o IIS.

Saludos!
Listo, lo logre pero la solucion es bastante... dejemoslo en poco elegante y con demasiado codigo de mas.
Tuve que hacer esto:


Nombre: mysql_select_db("prueba", $con);

$result = mysql_query("SELECT * FROM sistema
WHERE id=$_POST[id]");
$row=mysql_fetch_array($result); echo $row['nombre']; mysql_free_result($result);
mysql_close($con); ?>" />

ostiassssssssss

valla value mas largo, no sabia k dentro del value, se puera poner el TAG (?php) y tanto cogido.

algo mas que se
jeje

saludos, [beer]
Hombre, puedes poner hasta el quijote mientras que luego al cliente solo le llegue algo razonablemente corto (todavía me acuerdo cuando puse un bucle infinito mostrando campos de texto... como se bloqueó el ordenador...). ivanx haz una función aparte, y en ese sitio pon solo la llamada a la funcion.
9 respuestas