Empecé a trabajar con php y mysql hoy. Básicamente, lo que tengo es una página vacía con piezas que llevo al buscar una identificación en una base de datos. Así que en mi página de inicio tengo una url que tiene este aspecto:php y mysql, mejores prácticas
<a href="content/display.php?id=id1">
Y luego en mi display.php tengo esto:
<?php
include '../includes/header.php';
$id = $_GET['id'];
$mysqli = new mysqli('localhost','username','password','dbname');
if($result = $mysqli->query("SELECT * FROM portfolio WHERE id='".$id."'"))
{
while($row = $result->fetch_object())
{
$head = $row->head;
$img1 = $row->img1;
$img2 = $row->img2;
$img_url = $row->imgurl;
$img_thumb = $row->imgthumb;
$vid = $row->vid;
$swf = $row->swf;
$url = $row->url;
$url_text = $row->urltext;
$text = $row->text;
}
}
else echo $mysqli->error;
?>
Es una mesa escasa en que no todos los campos tendrá información (muchos podrían ser nulos). Básicamente que contiene los nombres de archivo y luego en el html tengo código que se parece a esto:
if(isset($img1))
{
echo '<img src="images/'.$img1.'" />';
}
Un par de preguntas,
- ¿Es esta la mejor manera de hacer esto?
- Cada vez que visito display.php, estoy volviendo a abrir una conexión de base de datos, ¿verdad? Eso no puede ser bueno ...
- Elegí poner los nombres de los archivos en la base de datos, en lugar de los nombres completos de las rutas, o incluso los archivos mismos, suponiendo que, si cambio el nombre del archivo, puede ir a la base de datos y actualizarla para el archivo que quiero cambiar. Si cambio la ruta, puedo cambiarla una vez en el html. ¿Es esa la mejor idea?
¡Gracias!
(re) abrir una conexión de base de datos es una práctica común, no debería importar mucho. Sin embargo, me pregunto por qué quieres todas las propiedades del objeto en otra variable. – Wrikken
Supongo que no tuve que envolver todo el sitio en ese ciclo while ... Supongo que puedo hacerlo aunque – JPC