Tema para preguntas random a Chatgpt 🤖

  • Autor Autor Carlos Arreola
  • Fecha de inicio Fecha de inicio
Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

Si solo te muestra los idpost que están en viewpost, hay que asegurarse de que la lógica de comparación esté configurada correctamente. Necesitas asegurarte de que estás capturando correctamente los IDs de los posters que deberían estar disponibles, y luego compararlos con los que ya se han visualizado.

Aquí hay un ejemplo más claro:

### Pasos para Capturar los IDs de Posters Faltantes

1. Asegúrate de Capturar Todos los IDs de Posters: Necesitas tener una lista de todos los IDs de posters en lugar de solo los que están en viewpost.

2. Compara con el Array de Posters: Compara estos IDs con los que ya han sido visualizados.

Aquí te dejo un código revisado que refleja estos pasos:

PHP:
// Consulta de los IDs de los posters
$quimids = mysqli_query($conexion, "SELECT id FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[] = $posterRow['id']; // Captura todos los IDs de posters
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    if (isset($filo['idpost'])) {
        $profitaer[] = $filo['idpost'];
        $photo = $filo['photo']; // Puedes usarlo esta variable si la necesitas
    }
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_filter($allPostIds);

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
    echo 'Faltan los siguientes ids de posters: ';
    echo implode(', ', $missingItems); // Une los ids faltantes en una cadena
} else {
    echo 'No faltan ids de posters.';
}

### Explicación de los Cambios

1. Consulta de Todos los Posters: Primero, se realiza una consulta a la tabla posters para obtener todos los IDs disponibles.

2. Comparación Correcta: Luego, almacenas en $allPostIds todos los IDs de posters y, después, los comparas con los IDs de viewpost usando array_diff.

3. Mostrar Resultados: Finalmente, si hay IDs faltantes, los muestra.

Con esta lógica, deberías poder ver claramente cuáles son los IDs de posters que están faltando y que no se han visualizado. Si necesitas más ayuda o ajustes, ¡no dudes en preguntar!
$quimids = mysqli_query($conexion, "SELECT id FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$allPostIds[] = $posterRow['id']; // Captura todos los IDs de posters
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
if (isset($filo['idpost'])) {
if(isset($filo['id'])){
if($photo == $filo['photo'] || $photo == $filo['photo2'] || $photo == $filo['photo3'] || $photo == $filo['photo4'] || $photo == $filo['photo5'] || $photo == $filo['photo6'] || $photo == $filo['photo7'] || $photo == $filo['photo8'] || $photo == $filo['photo9'] || $photo == $filo['photo10'] || $photo == $filo['photo11'] || $photo == $filo['photo12'] || $photo == $filo['photo13'] || $photo == $filo['photo14'] || $photo == $filo['photo15'] || $photo == $filo['photo16'] || $photo == $filo['photo17'] || $photo == $filo['photo18'] || $photo == $filo['photo19'] || $photo == $filo['photo20']){
// haz que detecte si falta photo, photo2, photo3 con ese id
$profitaer[] = $filo['idpost'];
$photo = $filo['photo']; // Puedes usarlo esta variable si la necesitas
}
}

}
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_filter($allPostIds);

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
echo 'Faltan el siguiente photo con id de posters: ';
echo implode(', ', $missingItems); // Une los ids faltantes en una cadena
} else {
echo 'No faltan ids de posters.';
}

hazlo asi que detecte que photo falta con el id
 
$quimids = mysqli_query($conexion, "SELECT id FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$allPostIds[] = $posterRow['id']; // Captura todos los IDs de posters
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
if (isset($filo['idpost'])) {
if(isset($filo['id'])){
if($photo == $filo['photo'] || $photo == $filo['photo2'] || $photo == $filo['photo3'] || $photo == $filo['photo4'] || $photo == $filo['photo5'] || $photo == $filo['photo6'] || $photo == $filo['photo7'] || $photo == $filo['photo8'] || $photo == $filo['photo9'] || $photo == $filo['photo10'] || $photo == $filo['photo11'] || $photo == $filo['photo12'] || $photo == $filo['photo13'] || $photo == $filo['photo14'] || $photo == $filo['photo15'] || $photo == $filo['photo16'] || $photo == $filo['photo17'] || $photo == $filo['photo18'] || $photo == $filo['photo19'] || $photo == $filo['photo20']){
// haz que detecte si falta photo, photo2, photo3 con ese id
$profitaer[] = $filo['idpost'];
$photo = $filo['photo']; // Puedes usarlo esta variable si la necesitas
}
}

}
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_filter($allPostIds);

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
echo 'Faltan el siguiente photo con id de posters: ';
echo implode(', ', $missingItems); // Une los ids faltantes en una cadena
} else {
echo 'No faltan ids de posters.';
}

hazlo asi que detecte que photo falta con el id
Para detectar si falta una o varias imágenes (photo, photo2, photo3, etc.) con su respectivo idpost, es necesario ajustar la lógica para que almacene el ID del poster junto con los valores de los campos de imagen que no están presentes en viewpost. En este caso, puedes crear un array para verificar qué imágenes están faltando según cada ID de poster.

Aquí te dejo una versión del código ajustado para cumplir con lo que necesitas:

### Código Ajustado para Detectar Faltantes por ID y Photo

PHP:
// Consulta de todos los IDs de posters
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters WHERE (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%')");

$allPostIds = []; // Para almacenar todos los ids de los posters
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[$posterRow['id']] = $posterRow; // Almacenamos el ID y detalles del poster
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = []; // Almacenar los IDs de posters que ya han sido vistos
while ($filo = mysqli_fetch_assoc($quimy)) {
    if (isset($filo['idpost'])) {
        $profitaer[] = $filo['idpost'];
    }
}

// Infla los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_keys($allPostIds); // Obtener solo los keys que son los IDs de posters

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes junto con las fotos que faltan
if (!empty($missingItems)) {
    echo 'Faltan los siguientes photos con sus IDs de posters: <br>';
    foreach ($missingItems as $id) {
        $missingPhotos = [];
        // Comprobar qué fotos faltan para cada ID
        foreach (['photo', 'photo2', 'photo3', 'photo4', 'photo5', 'photo6', 'photo7', 'photo8', 'photo9', 'photo10', 'photo11', 'photo12', 'photo13', 'photo14', 'photo15', 'photo16', 'photo17', 'photo18', 'photo19', 'photo20'] as $photoField) {
            if (empty($allPostIds[$id][$photoField])) { // Verifica si la foto está vacía
                $missingPhotos[] = $photoField; // Agrega el nombre del campo a los faltantes
            }
        }
        if (!empty($missingPhotos)) {
            echo 'ID: ' . $id . ' faltan: ' . implode(', ', $missingPhotos) . '<br>'; // Muestra el ID y las fotos que faltan
        }
    }
} else {
    echo 'No faltan ids de posters.';
}

### Explicación del Código

1. Consulta de Posters: Se seleccionan todos los campos relevantes de la tabla posters, incluyendo todos los campos de imagen.

2. Captura de IDs y Detalles: Mientras iteras sobre los resultados de la consulta, almacenas cada ID de poster junto con sus campos de imagen en el array $allPostIds.

3. Consulta de Viewpost: Se obtienen los idpost que ya han sido visualizados por el usuario.

4. Comparación de IDs: Se utiliza array_diff para encontrar los IDs de posters que faltan.

5. Verificación de Fotos Faltantes: Para cada ID faltante, verifica cada campo de imagen. Si alguno está vacío, lo almacena en un array $missingPhotos.

6. Salida de Resultados: Finalmente, imprime el ID del poster y los campos de imagen que están ausentes.

Con estos ajustes, el código debería ahora detectar cuál de las imágenes falta para cada ID de poster que no ha sido visualizado. Si tienes más dudas o necesitas ajustes adicionales, ¡hazmelo saber!
 
Para detectar si falta una o varias imágenes (photo, photo2, photo3, etc.) con su respectivo idpost, es necesario ajustar la lógica para que almacene el ID del poster junto con los valores de los campos de imagen que no están presentes en viewpost. En este caso, puedes crear un array para verificar qué imágenes están faltando según cada ID de poster.

Aquí te dejo una versión del código ajustado para cumplir con lo que necesitas:

### Código Ajustado para Detectar Faltantes por ID y Photo

PHP:
// Consulta de todos los IDs de posters
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters WHERE (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%')");

$allPostIds = []; // Para almacenar todos los ids de los posters
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[$posterRow['id']] = $posterRow; // Almacenamos el ID y detalles del poster
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = []; // Almacenar los IDs de posters que ya han sido vistos
while ($filo = mysqli_fetch_assoc($quimy)) {
    if (isset($filo['idpost'])) {
        $profitaer[] = $filo['idpost'];
    }
}

// Infla los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_keys($allPostIds); // Obtener solo los keys que son los IDs de posters

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes junto con las fotos que faltan
if (!empty($missingItems)) {
    echo 'Faltan los siguientes photos con sus IDs de posters: <br>';
    foreach ($missingItems as $id) {
        $missingPhotos = [];
        // Comprobar qué fotos faltan para cada ID
        foreach (['photo', 'photo2', 'photo3', 'photo4', 'photo5', 'photo6', 'photo7', 'photo8', 'photo9', 'photo10', 'photo11', 'photo12', 'photo13', 'photo14', 'photo15', 'photo16', 'photo17', 'photo18', 'photo19', 'photo20'] as $photoField) {
            if (empty($allPostIds[$id][$photoField])) { // Verifica si la foto está vacía
                $missingPhotos[] = $photoField; // Agrega el nombre del campo a los faltantes
            }
        }
        if (!empty($missingPhotos)) {
            echo 'ID: ' . $id . ' faltan: ' . implode(', ', $missingPhotos) . '<br>'; // Muestra el ID y las fotos que faltan
        }
    }
} else {
    echo 'No faltan ids de posters.';
}

### Explicación del Código

1. Consulta de Posters: Se seleccionan todos los campos relevantes de la tabla posters, incluyendo todos los campos de imagen.

2. Captura de IDs y Detalles: Mientras iteras sobre los resultados de la consulta, almacenas cada ID de poster junto con sus campos de imagen en el array $allPostIds.

3. Consulta de Viewpost: Se obtienen los idpost que ya han sido visualizados por el usuario.

4. Comparación de IDs: Se utiliza array_diff para encontrar los IDs de posters que faltan.

5. Verificación de Fotos Faltantes: Para cada ID faltante, verifica cada campo de imagen. Si alguno está vacío, lo almacena en un array $missingPhotos.

6. Salida de Resultados: Finalmente, imprime el ID del poster y los campos de imagen que están ausentes.

Con estos ajustes, el código debería ahora detectar cuál de las imágenes falta para cada ID de poster que no ha sido visualizado. Si tienes más dudas o necesitas ajustes adicionales, ¡hazmelo saber!
no quiero que verifique si la photo esta vacia, quiero que verifique si esta en el viewpostel id con el photo
 
no quiero que verifique si la photo esta vacia, quiero que verifique si esta en el viewpostel id con el photo
Para verificar si un photo específico está en viewpost y, en caso de no estarlo, mostrar el ID del poster, puedes ajustar la lógica para que compare los campos de imagen directamente con los valores de viewpost.

Aquí te muestro cómo hacerlo:

### Código Ajustado para Verificar si el Photo Está en Viewpost

PHP:
// Consulta de todos los IDs de posters
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters WHERE (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%')");

$allPostIds = []; // Para almacenar todos los ids de los posters
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[$posterRow['id']] = $posterRow; // Almacenamos el ID y detalles del poster
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$viewedPosts = []; // Almacenar los posters vistos por el usuario
while ($filo = mysqli_fetch_assoc($quimy)) {
    $viewedPosts[] = [
        'idpost' => $filo['idpost'],
        'photo' => $filo['photo']
    ];
}

// Recorremos los posters
$missingItems = []; // Array para fotos que faltan
foreach ($allPostIds as $id => $poster) {
    $photoMissing = true; // Asumimos que la foto falta
    foreach ($viewedPosts as $viewed) {
        // Si encontramos un post con el mismo ID y photo
        if ($viewed['idpost'] == $id && ($poster['photo'] == $viewed['photo'] || $poster['photo2'] == $viewed['photo'] || $poster['photo3'] == $viewed['photo'] || $poster['photo4'] == $viewed['photo'] || $poster['photo5'] == $viewed['photo'] || $poster['photo6'] == $viewed['photo'] || $poster['photo7'] == $viewed['photo'] || $poster['photo8'] == $viewed['photo'] || $poster['photo9'] == $viewed['photo'] || $poster['photo10'] == $viewed['photo'] || $poster['photo11'] == $viewed['photo'] || $poster['photo12'] == $viewed['photo'] || $poster['photo13'] == $viewed['photo'] || $poster['photo14'] == $viewed['photo'] || $poster['photo15'] == $viewed['photo'] || $poster['photo16'] == $viewed['photo'] || $poster['photo17'] == $viewed['photo'] || $poster['photo18'] == $viewed['photo'] || $poster['photo19'] == $viewed['photo'] || $poster['photo20'] == $viewed['photo'])) {
            $photoMissing = false; // Encontramos la foto en viewpost
            break; // Salimos del bucle
        }
    }
    // Si no encontramos la foto en viewpost, lo guardamos
    if ($photoMissing) {
        $missingItems[] = $id; // Guarda el ID del poster que falta
    }
}

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
    echo 'Faltan los siguientes IDs de posters: ';
    echo implode(', ', $missingItems); // Une los ids faltantes en una cadena
} else {
    echo 'No faltan IDs de posters.';
}

### Explicación del Código

1. Consulta de Posters: Se seleccionan todos los posters y sus respectivos campos de imagen.

2. Consulta de Viewpost: Se obtienen solo los posters que han sido visualizados por el usuario, almacenando el idpost y la photo.

3. Verificación de Photos:
- Para cada poster, se verifica si su idpost y al menos una de las imágenes (de photo a photo20) está presente en viewpost.
- Si se encuentra una coincidencia, se establece $photoMissing en false, y si no se encuentra nada, se agrega el ID a $missingItems.

4. Salida de Resultados: Finalmente, se imprimen los IDs de posters que no se han visualizado con el photo correspondiente.

Este código debería darte exactamente lo que necesitas para encontrar qué posters faltan que han sido visualizados. Si tienes más preguntas, ¡déjamelo saber!
 
Para verificar si un photo específico está en viewpost y, en caso de no estarlo, mostrar el ID del poster, puedes ajustar la lógica para que compare los campos de imagen directamente con los valores de viewpost.

Aquí te muestro cómo hacerlo:

### Código Ajustado para Verificar si el Photo Está en Viewpost

PHP:
// Consulta de todos los IDs de posters
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters WHERE (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%')");

$allPostIds = []; // Para almacenar todos los ids de los posters
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[$posterRow['id']] = $posterRow; // Almacenamos el ID y detalles del poster
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$viewedPosts = []; // Almacenar los posters vistos por el usuario
while ($filo = mysqli_fetch_assoc($quimy)) {
    $viewedPosts[] = [
        'idpost' => $filo['idpost'],
        'photo' => $filo['photo']
    ];
}

// Recorremos los posters
$missingItems = []; // Array para fotos que faltan
foreach ($allPostIds as $id => $poster) {
    $photoMissing = true; // Asumimos que la foto falta
    foreach ($viewedPosts as $viewed) {
        // Si encontramos un post con el mismo ID y photo
        if ($viewed['idpost'] == $id && ($poster['photo'] == $viewed['photo'] || $poster['photo2'] == $viewed['photo'] || $poster['photo3'] == $viewed['photo'] || $poster['photo4'] == $viewed['photo'] || $poster['photo5'] == $viewed['photo'] || $poster['photo6'] == $viewed['photo'] || $poster['photo7'] == $viewed['photo'] || $poster['photo8'] == $viewed['photo'] || $poster['photo9'] == $viewed['photo'] || $poster['photo10'] == $viewed['photo'] || $poster['photo11'] == $viewed['photo'] || $poster['photo12'] == $viewed['photo'] || $poster['photo13'] == $viewed['photo'] || $poster['photo14'] == $viewed['photo'] || $poster['photo15'] == $viewed['photo'] || $poster['photo16'] == $viewed['photo'] || $poster['photo17'] == $viewed['photo'] || $poster['photo18'] == $viewed['photo'] || $poster['photo19'] == $viewed['photo'] || $poster['photo20'] == $viewed['photo'])) {
            $photoMissing = false; // Encontramos la foto en viewpost
            break; // Salimos del bucle
        }
    }
    // Si no encontramos la foto en viewpost, lo guardamos
    if ($photoMissing) {
        $missingItems[] = $id; // Guarda el ID del poster que falta
    }
}

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
    echo 'Faltan los siguientes IDs de posters: ';
    echo implode(', ', $missingItems); // Une los ids faltantes en una cadena
} else {
    echo 'No faltan IDs de posters.';
}

### Explicación del Código

1. Consulta de Posters: Se seleccionan todos los posters y sus respectivos campos de imagen.

2. Consulta de Viewpost: Se obtienen solo los posters que han sido visualizados por el usuario, almacenando el idpost y la photo.

3. Verificación de Photos:
- Para cada poster, se verifica si su idpost y al menos una de las imágenes (de photo a photo20) está presente en viewpost.
- Si se encuentra una coincidencia, se establece $photoMissing en false, y si no se encuentra nada, se agrega el ID a $missingItems.

4. Salida de Resultados: Finalmente, se imprimen los IDs de posters que no se han visualizado con el photo correspondiente.

Este código debería darte exactamente lo que necesitas para encontrar qué posters faltan que han sido visualizados. Si tienes más preguntas, ¡déjamelo saber!
ya los photo mas su idpost estan en viewpost pero me sigue marcando que falta
 
ya los photo mas su idpost estan en viewpost pero me sigue marcando que falta
Si el código sigue indicando que faltan los IDs de posters aunque ya los photos y sus IDs estén correctamente en viewpost, es posible que haya un problema en la lógica de comparación. Vamos a simplificar y asegurarnos de que estás verificando correctamente que cada photo de los posters esté presente en viewpost de acuerdo a su idpost.

### Ajustes en la Lógica

Vamos a asegurarnos de que mencionamos exactamente qué photo se está comparando y también a revisar que el array que estamos utilizando incluyas tanto el idpost como las photos correspondientes.

Aquí hay un ajuste al código:

### Código Revisado para la Comparación

PHP:
// Consulta de todos los IDs de posters
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters WHERE (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%')");

$allPostIds = []; // Para almacenar todos los IDs de los posters
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[$posterRow['id']] = $posterRow; // Almacenamos el ID y detalles del poster
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT idpost, photo FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$viewedPhotos = []; // Almacenar las fotos vistas por el usuario junto a sus IDs
while ($filo = mysqli_fetch_assoc($quimy)) {
    $viewedPhotos[$filo['idpost']][] = $filo['photo']; // Agrupamos las fotos por su idpost
}

// Mapa para guardar IDs de posters faltantes
$missingItems = [];

// Recorremos los posters
foreach ($allPostIds as $id => $poster) {
    // Verificamos si el poster tiene fotos que faltan en viewpost
    $photosToCheck = [$poster['photo'], $poster['photo2'], $poster['photo3'], $poster['photo4'], $poster['photo5'], $poster['photo6'], $poster['photo7'], $poster['photo8'], $poster['photo9'], $poster['photo10'], $poster['photo11'], $poster['photo12'], $poster['photo13'], $poster['photo14'], $poster['photo15'], $poster['photo16'], $poster['photo17'], $poster['photo18'], $poster['photo19'], $poster['photo20']];

    foreach ($photosToCheck as $photo) {
        // Si no tenemos las fotos almacenadas en viewpost, hay un faltante
        if (!in_array($photo, $viewedPhotos[$id] ?? [])) {
            $missingItems[] = $id; // Guarda el ID del poster que falta
            break; // Salimos del bucle, ya que encontramos que falta una foto para este poster
        }
    }
}

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
    echo 'Faltan los siguientes IDs de posters: ';
    echo implode(', ', array_unique($missingItems)); // Une los ids faltantes en una cadena, eliminando duplicados
} else {
    echo 'No faltan IDs de posters.';
}

### Cambios Realizados

1. Agrupación de Fotos Vistas: Ahora estamos almacenando las fotos vistas por idpost en un array ($viewedPhotos) donde la clave es el idpost. Esto permite una verificación más sencilla.

2. Revisión de Fotos: Para cada poster, verificamos si alguna de sus fotos no está presente en las fotos almacenadas. Si encontramos al menos una foto que falta, almacenamos el id correspondiente.

3. Verificación Más Directa: Se verifica si las fotos están en el array de fotos vistas usando in_array.

### Resumen
Asegúrate de que cada parte del photo que estás comparando está en la misma forma y en la misma base de datos; por ejemplo, verifica mayúsculas/minúsculas, espacios, etc. Si sigues teniendo problemas después de realizar estos ajustes, sería útil revisar los valores específicos que se están comparando. Si hay alguna discrepancia, ese sería el origen del problema.
 
Si el código sigue indicando que faltan los IDs de posters aunque ya los photos y sus IDs estén correctamente en viewpost, es posible que haya un problema en la lógica de comparación. Vamos a simplificar y asegurarnos de que estás verificando correctamente que cada photo de los posters esté presente en viewpost de acuerdo a su idpost.

### Ajustes en la Lógica

Vamos a asegurarnos de que mencionamos exactamente qué photo se está comparando y también a revisar que el array que estamos utilizando incluyas tanto el idpost como las photos correspondientes.

Aquí hay un ajuste al código:

### Código Revisado para la Comparación

PHP:
// Consulta de todos los IDs de posters
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters WHERE (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%')");

$allPostIds = []; // Para almacenar todos los IDs de los posters
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[$posterRow['id']] = $posterRow; // Almacenamos el ID y detalles del poster
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT idpost, photo FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$viewedPhotos = []; // Almacenar las fotos vistas por el usuario junto a sus IDs
while ($filo = mysqli_fetch_assoc($quimy)) {
    $viewedPhotos[$filo['idpost']][] = $filo['photo']; // Agrupamos las fotos por su idpost
}

// Mapa para guardar IDs de posters faltantes
$missingItems = [];

// Recorremos los posters
foreach ($allPostIds as $id => $poster) {
    // Verificamos si el poster tiene fotos que faltan en viewpost
    $photosToCheck = [$poster['photo'], $poster['photo2'], $poster['photo3'], $poster['photo4'], $poster['photo5'], $poster['photo6'], $poster['photo7'], $poster['photo8'], $poster['photo9'], $poster['photo10'], $poster['photo11'], $poster['photo12'], $poster['photo13'], $poster['photo14'], $poster['photo15'], $poster['photo16'], $poster['photo17'], $poster['photo18'], $poster['photo19'], $poster['photo20']];

    foreach ($photosToCheck as $photo) {
        // Si no tenemos las fotos almacenadas en viewpost, hay un faltante
        if (!in_array($photo, $viewedPhotos[$id] ?? [])) {
            $missingItems[] = $id; // Guarda el ID del poster que falta
            break; // Salimos del bucle, ya que encontramos que falta una foto para este poster
        }
    }
}

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
    echo 'Faltan los siguientes IDs de posters: ';
    echo implode(', ', array_unique($missingItems)); // Une los ids faltantes en una cadena, eliminando duplicados
} else {
    echo 'No faltan IDs de posters.';
}

### Cambios Realizados

1. Agrupación de Fotos Vistas: Ahora estamos almacenando las fotos vistas por idpost en un array ($viewedPhotos) donde la clave es el idpost. Esto permite una verificación más sencilla.

2. Revisión de Fotos: Para cada poster, verificamos si alguna de sus fotos no está presente en las fotos almacenadas. Si encontramos al menos una foto que falta, almacenamos el id correspondiente.

3. Verificación Más Directa: Se verifica si las fotos están en el array de fotos vistas usando in_array.

### Resumen
Asegúrate de que cada parte del photo que estás comparando está en la misma forma y en la misma base de datos; por ejemplo, verifica mayúsculas/minúsculas, espacios, etc. Si sigues teniendo problemas después de realizar estos ajustes, sería útil revisar los valores específicos que se están comparando. Si hay alguna discrepancia, ese sería el origen del problema.
$quimids = mysqli_query($conexion, "SELECT id FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$allPostIds[] = $posterRow['id']; // Captura todos los IDs de posters
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
if (isset($filo['idpost'])) {
$profitaer[] = $filo['idpost'];
$photo = $filo['photo']; // Puedes usarlo esta variable si la necesitas
}
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_filter($allPostIds);

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
echo 'Faltan los siguientes ids de posters: ';
echo implode(', ', $missingItems); // Une los ids faltantes en una cadena
} else {
echo 'No faltan ids de posters.';
}

mejor haz esto, haz que compare si todos los id de posters estan en viewpost con idpost y photo
 
$quimids = mysqli_query($conexion, "SELECT id FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$allPostIds[] = $posterRow['id']; // Captura todos los IDs de posters
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
if (isset($filo['idpost'])) {
$profitaer[] = $filo['idpost'];
$photo = $filo['photo']; // Puedes usarlo esta variable si la necesitas
}
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_filter($allPostIds);

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
echo 'Faltan los siguientes ids de posters: ';
echo implode(', ', $missingItems); // Une los ids faltantes en una cadena
} else {
echo 'No faltan ids de posters.';
}

mejor haz esto, haz que compare si todos los id de posters estan en viewpost con idpost y photo
Para comparar si todos los IDs de posters están en viewpost teniendo en cuenta tanto el idpost como el photo, debes ajustar el código para verificar que cada id de un poster específico tenga un registro correspondiente en viewpost.

Aquí está un ejemplo de cómo hacerlo:

### Código Ajustado para Verificar Posters en viewpost

Vamos a realizar las siguientes modificaciones:

1. Guardar las fotos de cada idpost de viewpost en un array para facilitar la comparación.
2. Comparar tanto idpost como photo para cada poster.

Aquí tienes el código actualizado:

PHP:
// Consulta de todos los IDs de posters
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $allPostIds[$posterRow['id']] = $posterRow; // Guardamos el id y detalles del poster
}

// Ahora que tienes todos los IDs de posters, obtenemos los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT idpost, photo FROM viewpost WHERE users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$viewedPosts = []; // Array para guardar los posts vistos
while ($filo = mysqli_fetch_assoc($quimy)) {
    $viewedPosts[$filo['idpost']][] = $filo['photo']; // Agrupamos las fotos por idpost
}

// Mapa para guardar IDs de posters faltantes
$missingItems = [];

// Recorremos los posters
foreach ($allPostIds as $id => $poster) {
    $photosToCheck = [
        $poster['photo'], $poster['photo2'], $poster['photo3'], $poster['photo4'],
        $poster['photo5'], $poster['photo6'], $poster['photo7'], $poster['photo8'],
        $poster['photo9'], $poster['photo10'], $poster['photo11'], $poster['photo12'],
        $poster['photo13'], $poster['photo14'], $poster['photo15'], $poster['photo16'],
        $poster['photo17'], $poster['photo18'], $poster['photo19'], $poster['photo20']
    ];

    $photoExists = false; 
    foreach ($photosToCheck as $photo) {
        // Comprobamos si hay al menos una foto que coincida en viewpost para este idpost
        if (in_array($photo, $viewedPosts[$id] ?? [])) {
            $photoExists = true; // Hay al menos una coincidencia
            break;
        }
    }

    // Si ninguna foto existe en viewpost para este idpost, lo añadimos a los IDs faltantes
    if (!$photoExists) {
        $missingItems[] = $id; // Guarda el ID del poster que falta
    }
}

// Muestra los IDs de posters faltantes
if (!empty($missingItems)) {
    echo 'Faltan los siguientes IDs de posters: ';
    echo implode(', ', array_unique($missingItems)); // Une los ids faltantes en una cadena, eliminando duplicados
} else {
    echo 'No faltan IDs de posters.';
}

### Explicación de los Cambios

1. Agrupación de Fotos en viewpost: Ahora, al consultar viewpost, agrupamos las fotos vistas por idpost almacenando cada photo correspondiente.

2. Verificación de Coincidencia: Para cada poster, verificamos si al menos una de sus fotos se encuentra en las fotos vistas de ese idpost. Esto se hace usando in_array().

3. Lógica de Faltantes: Si no se encuentra ninguna foto que coincida, almacenamos el id del poster en el array de missingItems.

4. Salida de Resultados: Finalmente, se imprimen los IDs de posters que faltan mostrando solo los que no tienen ninguna coincidencia en viewpost.

Con este enfoque, deberías ser capaz de verificar correctamente si cada poster está presente en viewpost. Asegúrate de que los fotos de cada poster se corresponden exactamente en texto, caracteres y formato con los que se encuentran en viewpost. Si hay alguna discrepancia, eso puede causar que se reporten como faltantes. Si sigues teniendo problemas, verifica los datos específicos en la base de datos que estás utilizando.
 
@BotBeta busca mi post de presentación en el foro por favor
 
¡Hola! Estoy disponible para responder a cualquier pregunta que tengas. Recuerda citarme en tu mensaje para que pueda ayudarte de la mejor manera posible.
busca mi post de presentación en el foro por favor
 
busca mi post de presentación en el foro por favor
Lo siento, pero no tengo la capacidad de buscar o acceder a publicaciones específicas en el foro. Sin embargo, puedo ayudarte con preguntas o temas que quieras discutir. ¡Déjame saber en qué puedo asistir!
 
Lo siento, pero no tengo la capacidad de buscar o acceder a publicaciones específicas en el foro. Sin embargo, puedo ayudarte con preguntas o temas que quieras discutir. ¡Déjame saber en qué puedo asistir!
$quimids = mysqli_query($conexion, "SELECT id FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$allPostIds[] = $posterRow['id']; // Captura todos los IDs de posters
}

aqui haz que verifique cuales photo tiene .mp4
 
$quimids = mysqli_query($conexion, "SELECT id FROM posters WHERE (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%')");

$allPostIds = [];
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$allPostIds[] = $posterRow['id']; // Captura todos los IDs de posters
}

aqui haz que verifique cuales photo tiene .mp4
Para verificar qué campos de photo en la tabla posters contienen archivos con la extensión [.mp4], puedes ajustar el código para almacenar no solo los IDs de los posters, sino también qué photo (o fotos) tienen esa extensión.

Aquí tienes un ejemplo de cómo realizar esta verificación:

### Código Ajustado para Verificar las Photos con [.mp4]

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y su respectivo .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $photosWithMp4 = []; // Array para almacenar photos que tienen .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $photosWithMp4[] = $posterRow[$photoField]; // Agrega a la lista si contiene .mp4
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y las fotos a la lista
    if (!empty($photosWithMp4)) {
        $allPostIds[$id] = $photosWithMp4; // Almacena el ID con sus fotos .mp4
    }
}

// Muestra los IDs y sus respectivas photos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $photos) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $photos) . '<br>';
    }
} else {
    echo 'No se encontraron posters con .mp4.';
}

### Explicación del Código

1. Consulta de Posters: Obtenemos todos los posters de la base de datos, incluyendo todos los campos de foto.

2. Revisión de Photos:
- Se itera a través de los campos de foto (del photo al photo20).
- Se verifica si cada campo contiene la extensión [.mp4] utilizando strpos().

3. Almacenamiento de Resultados:
- Si se encuentra alguna foto que contenga [.mp4], se almacena el ID del poster junto con las fotos correspondientes dentro del array $allPostIds.

4. Salida de Resultados: Finalmente, se imprimen todos los IDs de posters que tienen al menos un archivo [.mp4] junto con los nombres de esos archivos.

Con este ajuste, podrás verificar y mostrar qué posters tienen campos de imagen con la extensión [.mp4]. Si tienes más preguntas, ¡estaré aquí para ayudar!
 
Para verificar qué campos de photo en la tabla posters contienen archivos con la extensión [.mp4], puedes ajustar el código para almacenar no solo los IDs de los posters, sino también qué photo (o fotos) tienen esa extensión.

Aquí tienes un ejemplo de cómo realizar esta verificación:

### Código Ajustado para Verificar las Photos con [.mp4]

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y su respectivo .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $photosWithMp4 = []; // Array para almacenar photos que tienen .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $photosWithMp4[] = $posterRow[$photoField]; // Agrega a la lista si contiene .mp4
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y las fotos a la lista
    if (!empty($photosWithMp4)) {
        $allPostIds[$id] = $photosWithMp4; // Almacena el ID con sus fotos .mp4
    }
}

// Muestra los IDs y sus respectivas photos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $photos) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $photos) . '<br>';
    }
} else {
    echo 'No se encontraron posters con .mp4.';
}

### Explicación del Código

1. Consulta de Posters: Obtenemos todos los posters de la base de datos, incluyendo todos los campos de foto.

2. Revisión de Photos:
- Se itera a través de los campos de foto (del photo al photo20).
- Se verifica si cada campo contiene la extensión [.mp4] utilizando strpos().

3. Almacenamiento de Resultados:
- Si se encuentra alguna foto que contenga [.mp4], se almacena el ID del poster junto con las fotos correspondientes dentro del array $allPostIds.

4. Salida de Resultados: Finalmente, se imprimen todos los IDs de posters que tienen al menos un archivo [.mp4] junto con los nombres de esos archivos.

Con este ajuste, podrás verificar y mostrar qué posters tienen campos de imagen con la extensión [.mp4]. Si tienes más preguntas, ¡estaré aquí para ayudar!
echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $photos) . '<br>';

hazlo asi, que me diga tiene mp4 en photo, photo2,photo3 y asi
 
echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $photos) . '<br>';

hazlo asi, que me diga tiene mp4 en photo, photo2,photo3 y asi
Claro, para que el mensaje muestre específicamente en qué campos (como photo, photo2, etc.) está la extensión [.mp4], puedes ajustar el código para que construya un mensaje que indique exactamente qué campos contienen el archivo [.mp4].

Aquí tienes el código ajustado para que muestre esa información:

### Código Ajustado para Mostrar el Campo de [.mp4]

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $photosWithMp4 = []; // Array para almacenar photos que tienen .mp4
    $fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $photosWithMp4[] = $posterRow[$photoField]; // Agrega a la lista si contiene .mp4
            $fieldsWithMp4[] = $photoField; // Almacena el nombre del campo
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
    if (!empty($fieldsWithMp4)) {
        $allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
    }
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $fields) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $fields) . '<br>';
    }
} else {
    echo 'No se encontraron posters con .mp4.';
}

### Explicación de los Cambios

1. Almacenamiento de Campos: Se ha añadido un array llamado $fieldsWithMp4 para almacenar los nombres de los campos donde se encuentra la extensión [.mp4].

2. Construcción de Mensaje: Al final, en lugar de mostrar solo las fotos, se muestra una concatenación que indica en qué photo, photo2, etc., se encuentra el archivo [.mp4].

3. Salida de Resultados: Finalmente, al imprimir, ahora dirá de manera clara en cuáles campos se encuentran los archivos con la extensión [.mp4].

Con esta estructura, la salida será clara y te indicará los campos donde se encuentra la extensión [.mp4]. Si necesitas más ajustes, ¡háznoslo saber!
 
Claro, para que el mensaje muestre específicamente en qué campos (como photo, photo2, etc.) está la extensión [.mp4], puedes ajustar el código para que construya un mensaje que indique exactamente qué campos contienen el archivo [.mp4].

Aquí tienes el código ajustado para que muestre esa información:

### Código Ajustado para Mostrar el Campo de [.mp4]

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $photosWithMp4 = []; // Array para almacenar photos que tienen .mp4
    $fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $photosWithMp4[] = $posterRow[$photoField]; // Agrega a la lista si contiene .mp4
            $fieldsWithMp4[] = $photoField; // Almacena el nombre del campo
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
    if (!empty($fieldsWithMp4)) {
        $allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
    }
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $fields) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $fields) . '<br>';
    }
} else {
    echo 'No se encontraron posters con .mp4.';
}

### Explicación de los Cambios

1. Almacenamiento de Campos: Se ha añadido un array llamado $fieldsWithMp4 para almacenar los nombres de los campos donde se encuentra la extensión [.mp4].

2. Construcción de Mensaje: Al final, en lugar de mostrar solo las fotos, se muestra una concatenación que indica en qué photo, photo2, etc., se encuentra el archivo [.mp4].

3. Salida de Resultados: Finalmente, al imprimir, ahora dirá de manera clara en cuáles campos se encuentran los archivos con la extensión [.mp4].

Con esta estructura, la salida será clara y te indicará los campos donde se encuentra la extensión [.mp4]. Si necesitas más ajustes, ¡háznoslo saber!
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$id = $posterRow['id'];
$photosWithMp4 = []; // Array para almacenar photos que tienen .mp4
$fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

// Verificamos cada campo photo
for ($i = 1; $i <= 20; $i++) {
$photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
$photosWithMp4[] = $posterRow[$photoField]; // Agrega a la lista si contiene .mp4
$fieldsWithMp4[] = $photoField; // Almacena el nombre del campo
}
}

// Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
if (!empty($fieldsWithMp4)) {
$allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
}
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
foreach ($allPostIds as $id => $fields) {
echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $fields) . '<br>';
}
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE photo='".$fields."' and users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
if (isset($filo['idpost'])) {
$profitaer[] = $filo['idpost'];
echo $filo['idpost'];
}
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_filter($allPostIds);

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (empty($missingItems)) {
// Si no hay idpost que faltan, selecciona aleatoriamente de posters
echo 'aleatorio';
$surym = mysqli_query($conexion, "SELECT * FROM posters WHERE (photo LIKE '%.mp4%' OR photo2 LIKE '%.mp4%' ... ) ORDER BY RAND() DESC LIMIT 1");
} else {

// Selecciona un poster que no está en viewpost
$surym = mysqli_query($conexion, "SELECT p.*
FROM posters p
LEFT JOIN viewpost v ON p.photo = v.photo AND v.users LIKE '%," . $id2 . ",%'
WHERE v.idpost IS NULL
AND (p.photo LIKE '%.mp4%' OR p.photo2 LIKE '%.mp4%' ... )
ORDER BY RAND() DESC LIMIT 1");
}

oks ahora como hago que funcione esto photo='".$fields."'?
 
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
$id = $posterRow['id'];
$photosWithMp4 = []; // Array para almacenar photos que tienen .mp4
$fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

// Verificamos cada campo photo
for ($i = 1; $i <= 20; $i++) {
$photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
$photosWithMp4[] = $posterRow[$photoField]; // Agrega a la lista si contiene .mp4
$fieldsWithMp4[] = $photoField; // Almacena el nombre del campo
}
}

// Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
if (!empty($fieldsWithMp4)) {
$allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
}
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
foreach ($allPostIds as $id => $fields) {
echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $fields) . '<br>';
}
}

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE photo='".$fields."' and users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
if (isset($filo['idpost'])) {
$profitaer[] = $filo['idpost'];
echo $filo['idpost'];
}
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_filter($allPostIds);

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (empty($missingItems)) {
// Si no hay idpost que faltan, selecciona aleatoriamente de posters
echo 'aleatorio';
$surym = mysqli_query($conexion, "SELECT * FROM posters WHERE (photo LIKE '%.mp4%' OR photo2 LIKE '%.mp4%' ... ) ORDER BY RAND() DESC LIMIT 1");
} else {

// Selecciona un poster que no está en viewpost
$surym = mysqli_query($conexion, "SELECT p.*
FROM posters p
LEFT JOIN viewpost v ON p.photo = v.photo AND v.users LIKE '%," . $id2 . ",%'
WHERE v.idpost IS NULL
AND (p.photo LIKE '%.mp4%' OR p.photo2 LIKE '%.mp4%' ... )
ORDER BY RAND() DESC LIMIT 1");
}

oks ahora como hago que funcione esto photo='".$fields."'?
Para que tu consulta funcione correctamente al comparar las fotos con el campo $fields, necesitarás construir dinámicamente la parte de la consulta donde se compara la foto desde los nombres de los campos que contienen [.mp4]. Aquí te muestro cómo puedes hacerlo:

### Ajustes Necesarios

1. Construir el Condicional: Necesitas construir un condicional SQL que compare todos los campos de foto que tienen [.mp4].

2. Incluir múltiples condiciones en la consulta: Debes asegurarte de que estás utilizando el operador SQL apropiado para comparar múltiples campos.

### Código Ajustado para Funcionalidad de Consulta

Aquí tienes una versión que maneja la construcción de la consulta adecuadamente:

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $fieldsWithMp4[] = $photoField; // Almacena el nombre del campo
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
    if (!empty($fieldsWithMp4)) {
        $allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
    }
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $fields) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $fields) . '<br>';
    }
}

// Aquí construimos la consulta para viewpost
$photoConditions = [];
foreach ($fieldsWithMp4 as $field) {
    // Generamos condiciones para cada campo photo que tiene .mp4
    $photoConditions[] = "$field IN (SELECT photo FROM viewpost WHERE users LIKE '%," . $id2 . ",%')";
}

// Unimos las condiciones con OR
$photoConditionSQL = implode(" OR ", $photoConditions);

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE ($photoConditionSQL) AND users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    if (isset($filo['idpost'])) {
        $profitaer[] = $filo['idpost'];
    }
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_keys($allPostIds); // Cambiado para obtener solo los IDs

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (empty($missingItems)) {
    // Si no hay idpost que faltan, selecciona aleatoriamente de posters
    echo 'aleatorio';
    $surym = mysqli_query($conexion, "SELECT * FROM posters WHERE (photo LIKE '%.mp4%' OR photo2 LIKE '%.mp4%' ...) ORDER BY RAND() DESC LIMIT 1");
} else {
    // Selecciona un poster que no está en viewpost
    $surym = mysqli_query($conexion, "SELECT p.* 
        FROM posters p
        LEFT JOIN viewpost v ON (p.photo = v.photo OR p.photo2 = v.photo OR ...)
        WHERE v.idpost IS NULL
        AND (p.photo LIKE '%.mp4%' OR p.photo2 LIKE '%.mp4%' OR ...)
        ORDER BY RAND() DESC LIMIT 1");
}

### Notas Importantes

1. Condiciones Dinámicas: La variable $photoConditions se utiliza para generar dinámicamente una condición SQL para todos los campos que contienen [.mp4]. Asegúrate de ajustar esto según lo que necesites hacer.

2. Uso de IN: En la parte de la consulta, se utiliza IN para comparar múltiples valores. Asegúrate de que esta sintaxis sea la adecuada para tu caso.

3. Validación de Datos: Siempre valida y escapa los datos que provienen de la base de datos para evitar inyección SQL.

4. Ajustes Necesarios en el Código: Reemplaza los ... en las consultas donde se aplica la lógica para asegurar que todos los campos relevantes sean revisados.

Con estos ajustes, tu lógica debería funcionar correctamente al verificar cuáles fotos tienen la extensión [.mp4] y realizar las consultas deseadas. Si tienes más preguntas o necesitas más ajustes, ¡hazmelo saber!
 
Para que tu consulta funcione correctamente al comparar las fotos con el campo $fields, necesitarás construir dinámicamente la parte de la consulta donde se compara la foto desde los nombres de los campos que contienen [.mp4]. Aquí te muestro cómo puedes hacerlo:

### Ajustes Necesarios

1. Construir el Condicional: Necesitas construir un condicional SQL que compare todos los campos de foto que tienen [.mp4].

2. Incluir múltiples condiciones en la consulta: Debes asegurarte de que estás utilizando el operador SQL apropiado para comparar múltiples campos.

### Código Ajustado para Funcionalidad de Consulta

Aquí tienes una versión que maneja la construcción de la consulta adecuadamente:

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $fieldsWithMp4[] = $photoField; // Almacena el nombre del campo
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
    if (!empty($fieldsWithMp4)) {
        $allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
    }
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $fields) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $fields) . '<br>';
    }
}

// Aquí construimos la consulta para viewpost
$photoConditions = [];
foreach ($fieldsWithMp4 as $field) {
    // Generamos condiciones para cada campo photo que tiene .mp4
    $photoConditions[] = "$field IN (SELECT photo FROM viewpost WHERE users LIKE '%," . $id2 . ",%')";
}

// Unimos las condiciones con OR
$photoConditionSQL = implode(" OR ", $photoConditions);

// Ahora que tienes todos los IDs de posters, calcula los que están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE ($photoConditionSQL) AND users LIKE '%," . $id2 . ",%' ORDER BY id DESC");
$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    if (isset($filo['idpost'])) {
        $profitaer[] = $filo['idpost'];
    }
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_keys($allPostIds); // Cambiado para obtener solo los IDs

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (empty($missingItems)) {
    // Si no hay idpost que faltan, selecciona aleatoriamente de posters
    echo 'aleatorio';
    $surym = mysqli_query($conexion, "SELECT * FROM posters WHERE (photo LIKE '%.mp4%' OR photo2 LIKE '%.mp4%' ...) ORDER BY RAND() DESC LIMIT 1");
} else {
    // Selecciona un poster que no está en viewpost
    $surym = mysqli_query($conexion, "SELECT p.*
        FROM posters p
        LEFT JOIN viewpost v ON (p.photo = v.photo OR p.photo2 = v.photo OR ...)
        WHERE v.idpost IS NULL
        AND (p.photo LIKE '%.mp4%' OR p.photo2 LIKE '%.mp4%' OR ...)
        ORDER BY RAND() DESC LIMIT 1");
}

### Notas Importantes

1. Condiciones Dinámicas: La variable $photoConditions se utiliza para generar dinámicamente una condición SQL para todos los campos que contienen [.mp4]. Asegúrate de ajustar esto según lo que necesites hacer.

2. Uso de IN: En la parte de la consulta, se utiliza IN para comparar múltiples valores. Asegúrate de que esta sintaxis sea la adecuada para tu caso.

3. Validación de Datos: Siempre valida y escapa los datos que provienen de la base de datos para evitar inyección SQL.

4. Ajustes Necesarios en el Código: Reemplaza los ... en las consultas donde se aplica la lógica para asegurar que todos los campos relevantes sean revisados.

Con estos ajustes, tu lógica debería funcionar correctamente al verificar cuáles fotos tienen la extensión [.mp4] y realizar las consultas deseadas. Si tienes más preguntas o necesitas más ajustes, ¡hazmelo saber!
no funciona, creo que porque en viewpost solo existe photo, y verifica si esta es photo=photo o photo=photo2 y asi
 
no funciona, creo que porque en viewpost solo existe photo, y verifica si esta es photo=photo o photo=photo2 y asi
Entiendo, si en la tabla viewpost solo tienes un campo llamado photo y necesitas verificar si alguno de los campos de fotos en posters coincide con ese único campo photo en viewpost, debes ajustar la consulta para hacer las comparaciones adecuadas.

Aquí te explico cómo hacerlo:

### Ajustes Necesarios

1. Verificar cada campo de fotos: En lugar de usar IN o comparaciones directas con condiciones, tendrás que verificar si el campo photo de viewpost coincide con cualquiera de los campos de foto en posters.

2. Construcción de la Consulta: Crearemos una consulta que selecciona el campo photo de viewpost e irá comparando con varios campos de fotos en posters.

### Código Ajustado

Aquí tienes un ejemplo del código modificado:

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $fieldsWithMp4[] = $posterRow[$photoField]; // Almacena el valor de la foto
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
    if (!empty($fieldsWithMp4)) {
        $allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
    }
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $photos) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $photos) . '<br>';
    }
}

// Ahora construimos las condiciones para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $photos) {
    foreach ($photos as $photo) {
        $photoConditions[] = "('$photo' = (SELECT photo FROM viewpost WHERE users LIKE '%," . $id2 . ",%'))";
    }
}

// Unimos las condiciones con OR
$photoConditionSQL = implode(" OR ", $photoConditions);

// Consulta para verificar si están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' AND ($photoConditionSQL)");

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    if (isset($filo['idpost'])) {
        $profitaer[] = $filo['idpost'];
    }
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_keys($allPostIds); // Cambiado para obtener solo los IDs

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (empty($missingItems)) {
    // Si no hay idpost que faltan, selecciona aleatoriamente de posters
    echo 'aleatorio';
    $surym = mysqli_query($conexion, "SELECT * FROM posters WHERE (photo LIKE '%.mp4%' OR photo2 LIKE '%.mp4%' ...) ORDER BY RAND() DESC LIMIT 1");
} else {
    // Selecciona un poster que no está en viewpost
    $surym = mysqli_query($conexion, "SELECT p.* 
        FROM posters p
        LEFT JOIN viewpost v ON (p.photo = v.photo OR p.photo2 = v.photo OR ...)
        WHERE v.idpost IS NULL
        AND (p.photo LIKE '%.mp4%' OR p.photo2 LIKE '%.mp4%' OR ...)
        ORDER BY RAND() DESC LIMIT 1");
}

### Explicación de los Cambios

1. Construcción de Condiciones: Las condiciones ahora comprueban si el valor de cada campo de foto coincide con el campo photo en viewpost.

2. Ejecución de la Consulta: La consulta $quimy se ejecutará solo si hay coincidencias en los campos de foto para aquellos usuarios.

3. Verificaciones: Al final del código, si no hay posters faltantes, selecciona un poster aleatorio.

Con estos ajustes, deberías poder verificar correctamente si los campos específicos de fotos en posters coinciden con el único campo photo en viewpost. Si continúas experimentando problemas, no dudes en preguntar.
 
Entiendo, si en la tabla viewpost solo tienes un campo llamado photo y necesitas verificar si alguno de los campos de fotos en posters coincide con ese único campo photo en viewpost, debes ajustar la consulta para hacer las comparaciones adecuadas.

Aquí te explico cómo hacerlo:

### Ajustes Necesarios

1. Verificar cada campo de fotos: En lugar de usar IN o comparaciones directas con condiciones, tendrás que verificar si el campo photo de viewpost coincide con cualquiera de los campos de foto en posters.

2. Construcción de la Consulta: Crearemos una consulta que selecciona el campo photo de viewpost e irá comparando con varios campos de fotos en posters.

### Código Ajustado

Aquí tienes un ejemplo del código modificado:

PHP:
// Consulta de todos los posters y sus photos
$quimids = mysqli_query($conexion, "SELECT id, photo, photo2, photo3, photo4, photo5, photo6, photo7, photo8, photo9, photo10, photo11, photo12, photo13, photo14, photo15, photo16, photo17, photo18, photo19, photo20 FROM posters");

$allPostIds = []; // Array para almacenar IDs y sus respectivos campos .mp4
while ($posterRow = mysqli_fetch_assoc($quimids)) {
    $id = $posterRow['id'];
    $fieldsWithMp4 = []; // Array para almacenar los nombres de los campos con .mp4

    // Verificamos cada campo photo
    for ($i = 1; $i <= 20; $i++) {
        $photoField = 'photo' . ($i > 1 ? $i : ''); // Genera el nombre de la columna photo
        if (isset($posterRow[$photoField]) && strpos($posterRow[$photoField], '.mp4') !== false) {
            $fieldsWithMp4[] = $posterRow[$photoField]; // Almacena el valor de la foto
        }
    }

    // Si hay alguna foto con .mp4, agrega el ID y los campos a la lista
    if (!empty($fieldsWithMp4)) {
        $allPostIds[$id] = $fieldsWithMp4; // Almacena el ID con sus campos que contienen .mp4
    }
}

// Muestra los IDs y los campos respectivos con .mp4
if (!empty($allPostIds)) {
    foreach ($allPostIds as $id => $photos) {
        echo 'ID: ' . $id . ' tiene .mp4 en: ' . implode(', ', $photos) . '<br>';
    }
}

// Ahora construimos las condiciones para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $photos) {
    foreach ($photos as $photo) {
        $photoConditions[] = "('$photo' = (SELECT photo FROM viewpost WHERE users LIKE '%," . $id2 . ",%'))";
    }
}

// Unimos las condiciones con OR
$photoConditionSQL = implode(" OR ", $photoConditions);

// Consulta para verificar si están en viewpost
$quimy = mysqli_query($conexion, "SELECT * FROM viewpost WHERE users LIKE '%," . $id2 . ",%' AND ($photoConditionSQL)");

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    if (isset($filo['idpost'])) {
        $profitaer[] = $filo['idpost'];
    }
}

// Infle los arrays
$profitaerArray = array_filter($profitaer);
$allPostIdsArray = array_keys($allPostIds); // Cambiado para obtener solo los IDs

// Calcula los IDs faltantes
$missingItems = array_diff($allPostIdsArray, $profitaerArray);

// Muestra los IDs de posters faltantes
if (empty($missingItems)) {
    // Si no hay idpost que faltan, selecciona aleatoriamente de posters
    echo 'aleatorio';
    $surym = mysqli_query($conexion, "SELECT * FROM posters WHERE (photo LIKE '%.mp4%' OR photo2 LIKE '%.mp4%' ...) ORDER BY RAND() DESC LIMIT 1");
} else {
    // Selecciona un poster que no está en viewpost
    $surym = mysqli_query($conexion, "SELECT p.*
        FROM posters p
        LEFT JOIN viewpost v ON (p.photo = v.photo OR p.photo2 = v.photo OR ...)
        WHERE v.idpost IS NULL
        AND (p.photo LIKE '%.mp4%' OR p.photo2 LIKE '%.mp4%' OR ...)
        ORDER BY RAND() DESC LIMIT 1");
}

### Explicación de los Cambios

1. Construcción de Condiciones: Las condiciones ahora comprueban si el valor de cada campo de foto coincide con el campo photo en viewpost.

2. Ejecución de la Consulta: La consulta $quimy se ejecutará solo si hay coincidencias en los campos de foto para aquellos usuarios.

3. Verificaciones: Al final del código, si no hay posters faltantes, selecciona un poster aleatorio.

Con estos ajustes, deberías poder verificar correctamente si los campos específicos de fotos en posters coinciden con el único campo photo en viewpost. Si continúas experimentando problemas, no dudes en preguntar.
quiero que lo verifique asi en viewpost, photo="photo" y asi con todos los que tengan resultados en posters
 
Estado

🔒 Este tema está cerrado para nuevas respuestas.

⏰ Solo el creador del tema puede solicitar la reapertura de sus propios temas, pero únicamente dentro de los 60 días previos a la última actualización.

Temas similares

Atrás
Arriba