BotBeta
Admin
Sigma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario popular!
Suscripción a IA
El problema que mencionas se relaciona con cómo se está realizando la consulta para obtener los posters cuya información falta enecho 'Campos faltantes: <br>' . implode('<br>', $missingItems);
$surym = mysqli_query($conexion, "SELECT * FROM posters
WHERE id NOT IN (SELECT v.idpost FROM viewpost v WHERE users LIKE '%," . $id2 . ",%')
AND (photo LIKE '%.mp4%' OR photo2 LIKE '%.mp4%' OR photo3 LIKE '%.mp4%' OR photo4 LIKE '%.mp4%' OR photo5 LIKE '%.mp4%'
OR photo6 LIKE '%.mp4%' OR photo7 LIKE '%.mp4%' OR photo8 LIKE '%.mp4%' OR photo9 LIKE '%.mp4%'
OR photo10 LIKE '%.mp4%' OR photo11 LIKE '%.mp4%' OR photo12 LIKE '%.mp4%' OR photo13 LIKE '%.mp4%'
OR photo14 LIKE '%.mp4%' OR photo15 LIKE '%.mp4%' OR photo16 LIKE '%.mp4%' OR photo17 LIKE '%.mp4%'
OR photo18 LIKE '%.mp4%' OR photo19 LIKE '%.mp4%' OR photo20 LIKE '%.mp4%')
ORDER BY RAND() DESC LIMIT 1");
aqui no me selecciona el post con photo2,3,4 etc que no esten en viewpost, osea los de campos faltantes
viewpost. Actualmente, estás buscando posters que no están asociados en viewpost de manera general, pero la condición no está enfocándose en los campos específicos de fotos que han sido definidos como "faltantes".### Solución Propuesta
Para resolver esto, debes estructurar la consulta de forma que seleccione aquellos posters que tienen campos de fotos que no coincidan con los registros en
viewpost para el usuario específico.### Código Ajustado
Aquí tienes una posible solución:
PHP:
// Imprimir campos faltantes
echo 'Campos faltantes: <br>' . implode('<br>', $missingItems);
// Consulta para obtener posters cuyo ID no esté en viewpost y que tengan campos faltantes
$missingFieldsCondition = implode(" OR ", array_map(function($field) {
return "$field LIKE '%.mp4%'";
}, $fieldsWithMp4)); // Solo toma campos que tengan .mp4
$surym = mysqli_query($conexion, "SELECT * FROM posters
WHERE id NOT IN (
SELECT v.idpost FROM viewpost v WHERE users LIKE '%," . $id2 . ",%' AND (
v.photo IN (SELECT photo FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo2 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo3 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo4 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo5 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo6 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo7 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo8 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo9 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo10 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo11 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo12 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo13 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo14 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo15 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo16 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo17 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo18 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo19 FROM posters WHERE id = v.idpost) OR
v.photo IN (SELECT photo20 FROM posters WHERE id = v.idpost)
)
)
AND ($missingFieldsCondition)
ORDER BY RAND() DESC LIMIT 1");
### Explicación de los Cambios:
1. Condición de
missingFieldsCondition: - Ahora se crea una condición para verificar que en el poster existan campos de fotos que tengan
.mp4. - Esto asegura que estás buscando específicamente aquellos posters que tienen las fotos relevantes.
2. Subconsulta Revisada:
- La subconsulta ahora revisa si el
photo en viewpost corresponde a cualquiera de los campos de fotos en posters. Esto requiere que el idpost en viewpost coincida con el ID de los posters para comparar las fotos de manera correcta.Con estos cambios, tu consulta debería ahora seleccionar correctamente los posters que tienen los campos de fotos que no están en
viewpost. Si te surge alguna otra duda o necesitas más ayuda, avísame.

