Tengo que hacer un sitio web que muestre información sobre "hoteles" de una base de datos. Tengo 2 tablas: 'ubicaciones' y 'calificaciones'. El problema: si tengo más de 1 calificación, todo el ciclo con el mismo ID de ubicación se imprime dos veces con los 2 comentarios diferentes. ¿Debo usar algo más que LEFT JOIN para esto?
SALIDA DE CORRIENTE: Corriente
SALIDA PLANIFICADA: Planificada
$sql = "SELECT * FROM locations LEFT JOIN ratings ON ratings.locationID=locations.locationID WHERE locationKind = 'hotel'"; $result = $conn->query($sql); while ($row = $result->fetch_assoc()) { $image = $row["image"]; $locationName = $row["locationName"]; $description = $row["description"]; $link = $row["link"]; $comment = $row["comment"]; echo "<tr>"; echo " <td><img style='width:100%;height:100%;border-radius:8px;' src='images/$image'/></td>"; echo "<td style='padding: 0 30px;'><a class='locationName'>$locationName</a><br/><br/>$description</br></br><div class='bookNowButton'><a href='$link' class='bookNowButtonText'>BOOK NOW!</a><div></td>"; echo "<td> <br>/<br> <a>Booking.no</a></td>"; echo "</tr>"; } echo "</table>"; ?>Puedes probarlo:
$sql = "SELECT locations.*, COUNT(ratings.locationID) as rating FROM locations LEFT JOIN ratings ON ratings.locationID=locations.locationID WHERE locationKind = 'hotel' GROUP BY ratings.locationID;";Nota: no estoy seguro de haber asumido aquí, solo necesita la calificación total