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.

$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
}
}

// Ahora construimos la condición para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $fields) {
foreach ($fields as $field) {
// Compara cada photo con el campo photo en viewpost
$photoConditions[] = "v.photo='" . mysqli_real_escape_string($conexion, $field) . "' AND v.idpost = '$id'";
}
}

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

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

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
// Almacena el photo y el idpost
if (isset($filo['photo']) && isset($filo['idpost'])) {
$profitaer[$filo['idpost']] = $filo['photo']; // Asociando ID de post con su foto
}
}

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

// Muestra los IDs y los campos faltantes
$lastId = null; // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];
foreach ($allPostIds as $id => $fields) {
foreach ($fields as $field) {
// Aquí verificamos si el campo (fotos) y su ID respectivo están en [viewpost]
if (!isset($profitaer[$id]) || $profitaer[$id] !== $field) {
$missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

// Guardar el último ID y su respectivo photo
$lastId = $id;
$lastPhoto = $field; // Considera que $field es el nombre del campo
}
}
}

if(empty($missingItems)){
$surym = mysqli_query($conexion, "SELECT * 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%')
ORDER BY RAND() DESC LIMIT 1");
}else{
echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
$surym = mysqli_query($conexion, "SELECT * FROM posters WHERE id='".$id."' and $field LIKE '%.mp4%' ORDER BY RAND() DESC LIMIT 1");
}

porque aun me sigue diciendo que faltan campos faltantes y estan todos??
El problema puede surgir de cómo estás verificando la presencia de los campos en el array $profitaer y cómo compares los valores. A continuación, te doy algunas sugerencias para identificar y resolver el problema:

### Posibles Causas del Problema

1. Comparación Incorrecta: En el bloque que verifica si un campo falta, estás comparando el valor almacenado en $profitaer[$id] con el nombre de la columna (que es $field). Debes compararlo con el valor real de la foto que está almacenada en ese campo.

2. Almacenamiento de Valores: Puede que estés esperando un valor específico que no corresponde con lo que realmente hay en la base de datos. Asegúrate de que estás comparando correctamente.

### Modificaciones Propuestas

1. Cambiar la forma en que se comparan los campos: En lugar de comparar $profitaer[$id] con $field, necesitarás obtener el valor exacto de la foto correspondiente y comparar ese valor.

2. Verificación Detallada: Asegúrate de actualizar el bloque que verifica los campos faltantes para que acceda al valor real de la foto.

### Código Ajustado

Aquí tienes una versión ajustada del bloque de verificación:

PHP:
// Muestra los IDs y los campos faltantes
$missingItems = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Obtenemos el valor real desde el $posterRow en la consulta original
        $photoValue = isset($posterRow[$field]) ? $posterRow[$field] : null; // El valor real de la foto

        // Verificamos si el ID y su photo están en [viewpost]
        if (!isset($profitaer[$id]) || $profitaer[$id] !== $photoValue) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

            // Guardar el último ID y su respectivo photo
            $lastId = $id;
            $lastPhoto = $photoValue; // Considera que almacenas el valor real de la foto
        }
    }
}

### Consideraciones Adicionales

- Depuración: Para ayudarte a depurar, puedes agregar prints o var_dump de tus arrays al inicio de la verificación para ver exactamente qué datos contienen y si hay alguna discrepancia.

- Asegúrate de que todos los campos están establecidos: Por ejemplo, si hay campos que no contienen valores (NULL o vacíos), esto podría estar llevando a que el código piense que faltan.

- Chequeos previos: Asegúrate de que antes de hacer comparaciones, todos los datos que estás utilizando están efectivamente dirigidos a los valores que deseas verificar.

Si después de estos cambios continúas teniendo problemas, verifica si hay algún error en los datos almacenados en la base de datos o si hay algún otro punto en el flujo de datos que no esté considerado.
 
El problema puede surgir de cómo estás verificando la presencia de los campos en el array $profitaer y cómo compares los valores. A continuación, te doy algunas sugerencias para identificar y resolver el problema:

### Posibles Causas del Problema

1. Comparación Incorrecta: En el bloque que verifica si un campo falta, estás comparando el valor almacenado en $profitaer[$id] con el nombre de la columna (que es $field). Debes compararlo con el valor real de la foto que está almacenada en ese campo.

2. Almacenamiento de Valores: Puede que estés esperando un valor específico que no corresponde con lo que realmente hay en la base de datos. Asegúrate de que estás comparando correctamente.

### Modificaciones Propuestas

1. Cambiar la forma en que se comparan los campos: En lugar de comparar $profitaer[$id] con $field, necesitarás obtener el valor exacto de la foto correspondiente y comparar ese valor.

2. Verificación Detallada: Asegúrate de actualizar el bloque que verifica los campos faltantes para que acceda al valor real de la foto.

### Código Ajustado

Aquí tienes una versión ajustada del bloque de verificación:

PHP:
// Muestra los IDs y los campos faltantes
$missingItems = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Obtenemos el valor real desde el $posterRow en la consulta original
        $photoValue = isset($posterRow[$field]) ? $posterRow[$field] : null; // El valor real de la foto

        // Verificamos si el ID y su photo están en [viewpost]
        if (!isset($profitaer[$id]) || $profitaer[$id] !== $photoValue) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

            // Guardar el último ID y su respectivo photo
            $lastId = $id;
            $lastPhoto = $photoValue; // Considera que almacenas el valor real de la foto
        }
    }
}

### Consideraciones Adicionales

- Depuración: Para ayudarte a depurar, puedes agregar prints o var_dump de tus arrays al inicio de la verificación para ver exactamente qué datos contienen y si hay alguna discrepancia.

- Asegúrate de que todos los campos están establecidos: Por ejemplo, si hay campos que no contienen valores (NULL o vacíos), esto podría estar llevando a que el código piense que faltan.

- Chequeos previos: Asegúrate de que antes de hacer comparaciones, todos los datos que estás utilizando están efectivamente dirigidos a los valores que deseas verificar.

Si después de estos cambios continúas teniendo problemas, verifica si hay algún error en los datos almacenados en la base de datos o si hay algún otro punto en el flujo de datos que no esté considerado.
ahora me dice que faltan todos
 
ahora me dice que faltan todos
Si te está diciendo que faltan todos los campos, eso puede deberse a varias razones. Aquí te dejo algunos pasos para solucionar el problema:

### 1. Verificar los Datos en la Base de Datos

Asegúrate de que los datos en la tabla posters y viewpost están correctamente configurados y que los valores de photo realmente existen. Puedes hacerlo con una consulta SQL directa.

### 2. Imprimir Valores Durante la Verificación

Agrega var_dump o echo para mostrar los valores que estás comparando. Esto puede ayudarte a identificar discrepancias. Por ejemplo:

PHP:
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        $photoValue = isset($posterRow[$field]) ? $posterRow[$field] : null;

        // Mostrar información de depuración
        echo "ID: $id, campo: $field, photoValue: $photoValue, profitaer: " . var_dump($profitaer[$id]) . "<br>";

        if (!isset($profitaer[$id]) || $profitaer[$id] !== $photoValue) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
        }
    }
}

### 3. Confirmar que el Array profitaer Contiene Valores

Asegúrate de que la consulta que alimenta $profitaer realmente está recuperando datos. Puedes imprimir $profitaer después de llenarlo:

PHP:
var_dump($profitaer);

### 4. Comprobar la Condición de Comparación

Revisa cómo estás convirtiendo y comparando los valores. Si el valor que buscas tiene espacios o caracteres adicionales, es posible que la comparación falle. Puedes usar la función trim() para quitar espacios en blanco:

PHP:
if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
    $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
}

### 5. Revisar Lógica del Condicional

Asegúrate de que no hay problemas en la lógica utilizada en tus condicionales, así como en cómo estás llenando y utilizando las arrays.

### 6. Revisar el Contexto

Si dentro del bucle están llamándose a funciones o se está modificando el contexto en el que se está ejecutando el código, podría llevar a una situación donde no se están pudiendo recuperar los datos correctamente.

### Conclusión

Realiza estos pasos para depurar el código y localizar el problema. La clave aquí es verificar los valores reales que estás intentando comparar, y asegurarte de que ambos lados de la comparación son exactamente lo que esperas. Si hay más detalles o errores en los que te gustaría profundizar, ¡no dudes en mencionarlo!
 
Si te está diciendo que faltan todos los campos, eso puede deberse a varias razones. Aquí te dejo algunos pasos para solucionar el problema:

### 1. Verificar los Datos en la Base de Datos

Asegúrate de que los datos en la tabla posters y viewpost están correctamente configurados y que los valores de photo realmente existen. Puedes hacerlo con una consulta SQL directa.

### 2. Imprimir Valores Durante la Verificación

Agrega var_dump o echo para mostrar los valores que estás comparando. Esto puede ayudarte a identificar discrepancias. Por ejemplo:

PHP:
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        $photoValue = isset($posterRow[$field]) ? $posterRow[$field] : null;

        // Mostrar información de depuración
        echo "ID: $id, campo: $field, photoValue: $photoValue, profitaer: " . var_dump($profitaer[$id]) . "<br>";

        if (!isset($profitaer[$id]) || $profitaer[$id] !== $photoValue) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
        }
    }
}

### 3. Confirmar que el Array profitaer Contiene Valores

Asegúrate de que la consulta que alimenta $profitaer realmente está recuperando datos. Puedes imprimir $profitaer después de llenarlo:

PHP:
var_dump($profitaer);

### 4. Comprobar la Condición de Comparación

Revisa cómo estás convirtiendo y comparando los valores. Si el valor que buscas tiene espacios o caracteres adicionales, es posible que la comparación falle. Puedes usar la función trim() para quitar espacios en blanco:

PHP:
if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
    $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
}

### 5. Revisar Lógica del Condicional

Asegúrate de que no hay problemas en la lógica utilizada en tus condicionales, así como en cómo estás llenando y utilizando las arrays.

### 6. Revisar el Contexto

Si dentro del bucle están llamándose a funciones o se está modificando el contexto en el que se está ejecutando el código, podría llevar a una situación donde no se están pudiendo recuperar los datos correctamente.

### Conclusión

Realiza estos pasos para depurar el código y localizar el problema. La clave aquí es verificar los valores reales que estás intentando comparar, y asegurarte de que ambos lados de la comparación son exactamente lo que esperas. Si hay más detalles o errores en los que te gustaría profundizar, ¡no dudes en mencionarlo!
dame el codigo completo
 
dame el codigo completo
Claro, aquí te dejo una versión completa del código con los ajustes sugeridos para verificar si hay campos faltantes y para depurar errores. Este código incluye las impresiones para ayudarte a identificar si hay discrepancias en los valores:

PHP:
$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
    }
}

// Ahora construimos la condición para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Compara cada photo con el campo photo en viewpost
        $photoConditions[] = "v.photo='" . mysqli_real_escape_string($conexion, $field) . "' AND v.idpost = '$id'";
    }
}

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

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

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    // Almacena el photo y el idpost
    if (isset($filo['photo']) && isset($filo['idpost'])) {
        $profitaer[$filo['idpost']] = $filo['photo']; // Asociando ID de post con su foto
    }
}

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

// Muestra los IDs y los campos faltantes
$lastId = null;  // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];

foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Obtenemos el valor real desde el $posterRow en la consulta original
        $photoValue = isset($posterRow[$field]) ? $posterRow[$field] : null;

        // Mostrar información de depuración
        echo "ID: $id, campo: $field, photoValue: $photoValue, profitaer: " . (isset($profitaer[$id]) ? $profitaer[$id] : 'No existe') . "<br>";

        // Comparar el valor real de la foto
        if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

            // Guardar el último ID y su respectivo photo
            $lastId = $id;
            $lastPhoto = $photoValue; // Considera que almacenas el valor real de la foto
        }
    }
}

if (empty($missingItems)) {
    // Solo si no hay campos faltantes
    $surym = mysqli_query($conexion, "SELECT * 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%') 
        ORDER BY RAND() DESC LIMIT 1");
} else {
    // Mostrar el último photo y último ID encontrados
    echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
    // Realiza la consulta específica si hay campos faltantes
    $surym = mysqli_query($conexion, "SELECT * FROM posters WHERE id='" . mysqli_real_escape_string($conexion, $lastId) . "' AND $field LIKE '%.mp4%' ORDER BY RAND() DESC LIMIT 1");
}

### Resumen de Cambios Realizados
  • Se agregó la depuración con echo para mostrar los valores de ID, campo, y los valores de fotos comparados.
  • Se utilizó trim() para evitar problemas con espacios en blanco en las comparaciones.
  • Se ajustó la lógica para asegurarse de que estás comparando los valores correctos de las fotos.

Recuerda probarlo y revisar la salida de depuración para identificar dónde podrían estar los problemas. Si necesitas más ajustes o ayuda, ¡no dudes en decírmelo!
 
Claro, aquí te dejo una versión completa del código con los ajustes sugeridos para verificar si hay campos faltantes y para depurar errores. Este código incluye las impresiones para ayudarte a identificar si hay discrepancias en los valores:

PHP:
$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
    }
}

// Ahora construimos la condición para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Compara cada photo con el campo photo en viewpost
        $photoConditions[] = "v.photo='" . mysqli_real_escape_string($conexion, $field) . "' AND v.idpost = '$id'";
    }
}

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

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

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    // Almacena el photo y el idpost
    if (isset($filo['photo']) && isset($filo['idpost'])) {
        $profitaer[$filo['idpost']] = $filo['photo']; // Asociando ID de post con su foto
    }
}

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

// Muestra los IDs y los campos faltantes
$lastId = null;  // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];

foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Obtenemos el valor real desde el $posterRow en la consulta original
        $photoValue = isset($posterRow[$field]) ? $posterRow[$field] : null;

        // Mostrar información de depuración
        echo "ID: $id, campo: $field, photoValue: $photoValue, profitaer: " . (isset($profitaer[$id]) ? $profitaer[$id] : 'No existe') . "<br>";

        // Comparar el valor real de la foto
        if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

            // Guardar el último ID y su respectivo photo
            $lastId = $id;
            $lastPhoto = $photoValue; // Considera que almacenas el valor real de la foto
        }
    }
}

if (empty($missingItems)) {
    // Solo si no hay campos faltantes
    $surym = mysqli_query($conexion, "SELECT * 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%')
        ORDER BY RAND() DESC LIMIT 1");
} else {
    // Mostrar el último photo y último ID encontrados
    echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
    // Realiza la consulta específica si hay campos faltantes
    $surym = mysqli_query($conexion, "SELECT * FROM posters WHERE id='" . mysqli_real_escape_string($conexion, $lastId) . "' AND $field LIKE '%.mp4%' ORDER BY RAND() DESC LIMIT 1");
}

### Resumen de Cambios Realizados
  • Se agregó la depuración con echo para mostrar los valores de ID, campo, y los valores de fotos comparados.
  • Se utilizó trim() para evitar problemas con espacios en blanco en las comparaciones.
  • Se ajustó la lógica para asegurarse de que estás comparando los valores correctos de las fotos.

Recuerda probarlo y revisar la salida de depuración para identificar dónde podrían estar los problemas. Si necesitas más ajustes o ayuda, ¡no dudes en decírmelo!
me sigue diciendo que faltan todos, y todos estan en viewpost
 
me sigue diciendo que faltan todos, y todos estan en viewpost
Si sigue diciendo que faltan todos los campos a pesar de que están en viewpost, aquí hay algunos pasos más detallados que puedes seguir para identificar y corregir el problema:

### 1. Verifica la Estructura de los Datos

Asegúrate de que los campos en ambas tablas (posters y viewpost) tienen los mismos tipos de datos y que están almacenados correctamente. Por ejemplo, los valores en photo deben ser exactamente iguales en ambas tablas (incluyendo extensión, mayúsculas y minúsculas).

### 2. Impresión de Variables

Agrega impresiones adicionales para ver claramente qué valores se están comparando. Esto incluye imprimir los valores que se están consultando y comparando.

PHP:
echo "profitaer: " . var_export($profitaer, true) . "<br>";

### 3. Revisa el Código de Comparación

Asegúrate de que estás comparando el valor que realmente está en profitaer con el del campo correspondiente en posters. Aquí hay un código modificado para ayudarte:

PHP:
// Muestra los IDs y los campos faltantes
$missingItems = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Obtenemos el valor real desde el $posterRow en la consulta original
        $photoValue = $posterRow[$field] ?? null;

        // Mostrar información de depuración
        echo "ID: $id, campo: $field, photoValue: $photoValue, profitaer: " . (isset($profitaer[$id]) ? $profitaer[$id] : 'No existe') . "<br>";

        // Comparar el valor real de la foto
        if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
        }
    }
}

// Imprimir campos faltantes
if (!empty($missingItems)) {
    echo 'Campos faltantes: <br>' . implode('<br>', $missingItems);
} else {
    echo 'No hay campos faltantes.';
}

### 4. Comprobar Consultas SQL

Asegúrate de que las consultas SQL están devolviendo los datos esperados. Puedes ejecutarlas directamente en tu gestor de base de datos para verificar que son correctas.

### 5. Comparación Más Estricta

Si las comparaciones de cadena están dando problemas, puedes convertir ambos valores a un formato estándar (como todo en minúsculas o sin espacios):

PHP:
if (!isset($profitaer[$id]) || strtolower(trim($profitaer[$id])) !== strtolower(trim($photoValue))) {
    $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
}

### 6. Validar Datos Después de la Consulta

Después de llenar profitaer, añade una validación para imprimir los valores que se han almacenado:

PHP:
var_dump($profitaer);

### 7. Revisa Cualquier Lógica Externa

Asegúrate de que no hay lógica externa o condiciones alrededor que estén influyendo en el llenado de las arrays o en cómo estás interpretando los resultados.

### Resumen

Si después de todos estos pasos sigue sin funcionar, puede ser útil revisar manualmente los datos en la base de datos para ver si hay algún problema en la comparación. También puedes intentar hacer algunas consultas simples para verificar si los datos están siendo recuperados correctamente antes de ejecutarlos en la comparación.

Si necesitas más ayuda, no dudes en preguntar nuevamente.
 
Si sigue diciendo que faltan todos los campos a pesar de que están en viewpost, aquí hay algunos pasos más detallados que puedes seguir para identificar y corregir el problema:

### 1. Verifica la Estructura de los Datos

Asegúrate de que los campos en ambas tablas (posters y viewpost) tienen los mismos tipos de datos y que están almacenados correctamente. Por ejemplo, los valores en photo deben ser exactamente iguales en ambas tablas (incluyendo extensión, mayúsculas y minúsculas).

### 2. Impresión de Variables

Agrega impresiones adicionales para ver claramente qué valores se están comparando. Esto incluye imprimir los valores que se están consultando y comparando.

PHP:
echo "profitaer: " . var_export($profitaer, true) . "<br>";

### 3. Revisa el Código de Comparación

Asegúrate de que estás comparando el valor que realmente está en profitaer con el del campo correspondiente en posters. Aquí hay un código modificado para ayudarte:

PHP:
// Muestra los IDs y los campos faltantes
$missingItems = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Obtenemos el valor real desde el $posterRow en la consulta original
        $photoValue = $posterRow[$field] ?? null;

        // Mostrar información de depuración
        echo "ID: $id, campo: $field, photoValue: $photoValue, profitaer: " . (isset($profitaer[$id]) ? $profitaer[$id] : 'No existe') . "<br>";

        // Comparar el valor real de la foto
        if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
        }
    }
}

// Imprimir campos faltantes
if (!empty($missingItems)) {
    echo 'Campos faltantes: <br>' . implode('<br>', $missingItems);
} else {
    echo 'No hay campos faltantes.';
}

### 4. Comprobar Consultas SQL

Asegúrate de que las consultas SQL están devolviendo los datos esperados. Puedes ejecutarlas directamente en tu gestor de base de datos para verificar que son correctas.

### 5. Comparación Más Estricta

Si las comparaciones de cadena están dando problemas, puedes convertir ambos valores a un formato estándar (como todo en minúsculas o sin espacios):

PHP:
if (!isset($profitaer[$id]) || strtolower(trim($profitaer[$id])) !== strtolower(trim($photoValue))) {
    $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;
}

### 6. Validar Datos Después de la Consulta

Después de llenar profitaer, añade una validación para imprimir los valores que se han almacenado:

PHP:
var_dump($profitaer);

### 7. Revisa Cualquier Lógica Externa

Asegúrate de que no hay lógica externa o condiciones alrededor que estén influyendo en el llenado de las arrays o en cómo estás interpretando los resultados.

### Resumen

Si después de todos estos pasos sigue sin funcionar, puede ser útil revisar manualmente los datos en la base de datos para ver si hay algún problema en la comparación. También puedes intentar hacer algunas consultas simples para verificar si los datos están siendo recuperados correctamente antes de ejecutarlos en la comparación.

Si necesitas más ayuda, no dudes en preguntar nuevamente.
mm sigue igual, lo que quiero es que no me muestre ninguno si ya todos los post estan en viewpost
 
mm sigue igual, lo que quiero es que no me muestre ninguno si ya todos los post estan en viewpost
Entiendo que deseas que no se muestre ningún campo faltante si todos los posts están presentes en viewpost. Para lograr esto, asegúrate de que tu lógica verifique correctamente si todos los campos de posters están en viewpost.

Te dejo una versión simplificada de tu código con cambios que verifican si todos los posts están presentes antes de mostrar cualquier falta:

PHP:
$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 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
    }
}

// Construimos la condición para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $photoValue) {
        // Compara cada photo con el campo photo en viewpost
        $photoConditions[] = "v.photo='" . mysqli_real_escape_string($conexion, $photoValue) . "' AND v.idpost = '$id'";
    }
}

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

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

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    // Almacena el photo y el idpost
    if (isset($filo['photo']) && isset($filo['idpost'])) {
        $profitaer[$filo['idpost']] = $filo['photo']; // Asociando ID de post con su foto
    }
}

$allPresent = true; // Suponemos inicialmente que todos los posts están presentes
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $photoValue) {
        // Si alguno de los posts no está presente, cambiamos allPresent a false
        if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
            $allPresent = false;
            break 2; // Salimos de ambos bucles
        }
    }
}

// Si todos los posts están presentes, no mostramos campos faltantes
if ($allPresent) {
    echo 'Todos los posts están en viewpost. No hay campos faltantes.';
} else {
    echo 'Hay campos faltantes en los posts.';
}

### Cambios Realizados:
1. Variable allPresent: Se añadió para rastrear si todos los posts están presentes en viewpost.
2. Estructura Simplificada: El código ha sido simplificado para verificar directamente si todos los posts y sus fotos están presentes en viewpost.
3. Condicional Final: Solo muestra "No hay campos faltantes" si allPresent se mantiene verdadero.

### Consideraciones:
  • Asegúrate de que el valor de photo en viewpost coincide exactamente con los de posters (incluyendo '.mp4').
  • Revisa que el array $profitaer se llene correctamente y que contenga los valores reales que se están comparando.

Con este ajuste, si no hay campos faltantes, no se mostrarán resultados. Si todavía hay problemas, verifica la salida con var_dump() en los valores que se están comparando.
 
Entiendo que deseas que no se muestre ningún campo faltante si todos los posts están presentes en viewpost. Para lograr esto, asegúrate de que tu lógica verifique correctamente si todos los campos de posters están en viewpost.

Te dejo una versión simplificada de tu código con cambios que verifican si todos los posts están presentes antes de mostrar cualquier falta:

PHP:
$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 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
    }
}

// Construimos la condición para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $photoValue) {
        // Compara cada photo con el campo photo en viewpost
        $photoConditions[] = "v.photo='" . mysqli_real_escape_string($conexion, $photoValue) . "' AND v.idpost = '$id'";
    }
}

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

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

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
    // Almacena el photo y el idpost
    if (isset($filo['photo']) && isset($filo['idpost'])) {
        $profitaer[$filo['idpost']] = $filo['photo']; // Asociando ID de post con su foto
    }
}

$allPresent = true; // Suponemos inicialmente que todos los posts están presentes
foreach ($allPostIds as $id => $fields) {
    foreach ($fields as $photoValue) {
        // Si alguno de los posts no está presente, cambiamos allPresent a false
        if (!isset($profitaer[$id]) || trim($profitaer[$id]) !== trim($photoValue)) {
            $allPresent = false;
            break 2; // Salimos de ambos bucles
        }
    }
}

// Si todos los posts están presentes, no mostramos campos faltantes
if ($allPresent) {
    echo 'Todos los posts están en viewpost. No hay campos faltantes.';
} else {
    echo 'Hay campos faltantes en los posts.';
}

### Cambios Realizados:
1. Variable allPresent: Se añadió para rastrear si todos los posts están presentes en viewpost.
2. Estructura Simplificada: El código ha sido simplificado para verificar directamente si todos los posts y sus fotos están presentes en viewpost.
3. Condicional Final: Solo muestra "No hay campos faltantes" si allPresent se mantiene verdadero.

### Consideraciones:
  • Asegúrate de que el valor de photo en viewpost coincide exactamente con los de posters (incluyendo '.mp4').
  • Revisa que el array $profitaer se llene correctamente y que contenga los valores reales que se están comparando.

Con este ajuste, si no hay campos faltantes, no se mostrarán resultados. Si todavía hay problemas, verifica la salida con var_dump() en los valores que se están comparando.
lo que quiero es que funcione asi el codigo, pero que no me muestre los post que ya estan en viewpost

// 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
}
}

// Ahora construimos la condición para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $fields) {
foreach ($fields as $field) {
// Compara cada photo con el campo photo en viewpost
$photoConditions[] = "v.photo='" . mysqli_real_escape_string($conexion, $field) . "' AND v.idpost = '$id'";
}
}

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

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

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
// Almacena el photo y el idpost
if (isset($filo['photo']) && isset($filo['idpost'])) {
$profitaer[$filo['idpost']] = $filo['photo']; // Asociando ID de post con su foto
}
}

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

// Muestra los IDs y los campos faltantes
$lastId = null; // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];
foreach ($allPostIds as $id => $fields) {
foreach ($fields as $field) {
// Aquí verificamos si el campo (fotos) y su ID respectivo están en [viewpost]
if (!isset($profitaer[$id]) || $profitaer[$id] !== $field) {
$missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

// Guardar el último ID y su respectivo photo
$lastId = $id;
$lastPhoto = $field; // Considera que $field es el nombre del campo
}
}
}

if(empty($missingItems)){
$surym = mysqli_query($conexion, "SELECT * 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%')
ORDER BY RAND() DESC LIMIT 1");
}else{
echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
$surym = mysqli_query($conexion, "SELECT * FROM posters WHERE id='".$id."' and $field LIKE '%.mp4%' ORDER BY RAND() DESC LIMIT 1");
}
 
lo que quiero es que funcione asi el codigo, pero que no me muestre los post que ya estan en viewpost

// 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
}
}

// Ahora construimos la condición para la consulta de viewpost
$photoConditions = [];
foreach ($allPostIds as $id => $fields) {
foreach ($fields as $field) {
// Compara cada photo con el campo photo en viewpost
$photoConditions[] = "v.photo='" . mysqli_real_escape_string($conexion, $field) . "' AND v.idpost = '$id'";
}
}

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

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

$profitaer = [];
while ($filo = mysqli_fetch_assoc($quimy)) {
// Almacena el photo y el idpost
if (isset($filo['photo']) && isset($filo['idpost'])) {
$profitaer[$filo['idpost']] = $filo['photo']; // Asociando ID de post con su foto
}
}

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

// Muestra los IDs y los campos faltantes
$lastId = null; // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];
foreach ($allPostIds as $id => $fields) {
foreach ($fields as $field) {
// Aquí verificamos si el campo (fotos) y su ID respectivo están en [viewpost]
if (!isset($profitaer[$id]) || $profitaer[$id] !== $field) {
$missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

// Guardar el último ID y su respectivo photo
$lastId = $id;
$lastPhoto = $field; // Considera que $field es el nombre del campo
}
}
}

if(empty($missingItems)){
$surym = mysqli_query($conexion, "SELECT * 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%')
ORDER BY RAND() DESC LIMIT 1");
}else{
echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
$surym = mysqli_query($conexion, "SELECT * FROM posters WHERE id='".$id."' and $field LIKE '%.mp4%' ORDER BY RAND() DESC LIMIT 1");
}
Para ajustar tu código de modo que no muestre los posters que ya están en viewpost, necesitarás asegurarte de filtrar esos posts antes de proceder con la lógica actual. Aquí tienes una versión modificado de tu código para implementar esta funcionalidad:

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 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
    }
}

// Consulta para verificar qué posters ya están en viewpost
$viewpostIds = [];
$viewpostQuery = mysqli_query($conexion, "SELECT idpost FROM viewpost WHERE users LIKE '%," . $id2 . ",%'");
while ($viewpostRow = mysqli_fetch_assoc($viewpostQuery)) {
    $viewpostIds[] = $viewpostRow['idpost'];
}

// Filtramos los posters para excluir los que ya están en viewpost
$filteredPostIds = [];
foreach ($allPostIds as $id => $fields) {
    if (!in_array($id, $viewpostIds)) {
        $filteredPostIds[$id] = $fields; // Solo agregamos si no está en viewpost
    }
}

// Muestra los IDs y los campos faltantes
$lastId = null;  // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];
foreach ($filteredPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Aquí verificamos si el campo (fotos) y su ID respectivo están en [viewpost]
        if (!isset($profitaer[$id]) || $profitaer[$id] !== $field) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

            // Guardar el último ID y su respectivo photo
            $lastId = $id;
            $lastPhoto = $field; // Considera que $field es el valor del campo
        }
    }
}

// Si no hay campos faltantes, se selecciona aleatoriamente un poster
if (empty($missingItems)) {
    $surym = mysqli_query($conexion, "SELECT * 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%') 
        AND id NOT IN (" . implode(',', $viewpostIds) . ") 
        ORDER BY RAND() DESC LIMIT 1");
} else {
    echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
}

### Notas importantes sobre este código:

1. Filtrado de Poster en Viewpost:
- Se agrega una consulta que selecciona todos los idpost de la tabla viewpost para obtener el listado de IDs de posters que ya están.
- Luego, estos IDs se filtran de la lista de posters con MP4, de modo que únicamente se procesen aquellos que no están en viewpost.

2. Errores de Comparación:
- Asegúrate de que la comparación del campo photo en viewpost con los campos de posters sea correcta.
- Verifica que los valores de los campos se comparen correctamente al almacenar el resultado en $missingItems.

3. Consulta Aleatoria para Posters:
- Al seleccionar posters aleatoriamente, se agrega una condición adicional AND id NOT IN (...) para excluir aquellos que ya están en viewpost.

Con estos cambios, el código debería funcionar como esperas y evitar mostrar o procesar los posters que ya están en viewpost. Si necesitas más ajustes o explicaciones sobre alguna parte, ¡hazmelo saber!
 
Para ajustar tu código de modo que no muestre los posters que ya están en viewpost, necesitarás asegurarte de filtrar esos posts antes de proceder con la lógica actual. Aquí tienes una versión modificado de tu código para implementar esta funcionalidad:

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 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
    }
}

// Consulta para verificar qué posters ya están en viewpost
$viewpostIds = [];
$viewpostQuery = mysqli_query($conexion, "SELECT idpost FROM viewpost WHERE users LIKE '%," . $id2 . ",%'");
while ($viewpostRow = mysqli_fetch_assoc($viewpostQuery)) {
    $viewpostIds[] = $viewpostRow['idpost'];
}

// Filtramos los posters para excluir los que ya están en viewpost
$filteredPostIds = [];
foreach ($allPostIds as $id => $fields) {
    if (!in_array($id, $viewpostIds)) {
        $filteredPostIds[$id] = $fields; // Solo agregamos si no está en viewpost
    }
}

// Muestra los IDs y los campos faltantes
$lastId = null;  // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];
foreach ($filteredPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Aquí verificamos si el campo (fotos) y su ID respectivo están en [viewpost]
        if (!isset($profitaer[$id]) || $profitaer[$id] !== $field) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

            // Guardar el último ID y su respectivo photo
            $lastId = $id;
            $lastPhoto = $field; // Considera que $field es el valor del campo
        }
    }
}

// Si no hay campos faltantes, se selecciona aleatoriamente un poster
if (empty($missingItems)) {
    $surym = mysqli_query($conexion, "SELECT * 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%')
        AND id NOT IN (" . implode(',', $viewpostIds) . ")
        ORDER BY RAND() DESC LIMIT 1");
} else {
    echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
}

### Notas importantes sobre este código:

1. Filtrado de Poster en Viewpost:
- Se agrega una consulta que selecciona todos los idpost de la tabla viewpost para obtener el listado de IDs de posters que ya están.
- Luego, estos IDs se filtran de la lista de posters con MP4, de modo que únicamente se procesen aquellos que no están en viewpost.

2. Errores de Comparación:
- Asegúrate de que la comparación del campo photo en viewpost con los campos de posters sea correcta.
- Verifica que los valores de los campos se comparen correctamente al almacenar el resultado en $missingItems.

3. Consulta Aleatoria para Posters:
- Al seleccionar posters aleatoriamente, se agrega una condición adicional AND id NOT IN (...) para excluir aquellos que ya están en viewpost.

Con estos cambios, el código debería funcionar como esperas y evitar mostrar o procesar los posters que ya están en viewpost. Si necesitas más ajustes o explicaciones sobre alguna parte, ¡hazmelo saber!
ahora desaparece completo cuando encuentra un solo photo en viewpost, esta el photo2,photo3 etc y desaparece si solo se encuentra 1
 
ahora desaparece completo cuando encuentra un solo photo en viewpost, esta el photo2,photo3 etc y desaparece si solo se encuentra 1
Para resolver el problema donde tu código desaparece si un solo photo está en viewpost, necesitas ajustar cómo realizas las comparaciones. En lugar de solo verificar si un ID está en viewpost, necesitas asegurarte de verificar todos los campos de fotos.

Vamos a modificar tu código para verificar cada uno de los campos relacionados con "photo" en el resultado de la consulta. Solo excluiremos el ID del poster si todos sus campos de fotos ya están en viewpost.

Aquí tienes una versión corregida y detallada del código:

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 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
    }
}

// Consulta para verificar qué posters ya están en viewpost
$viewpostPhotos = []; // Array para almacenar photos de viewpost
$viewpostQuery = mysqli_query($conexion, "SELECT photo, idpost FROM viewpost WHERE users LIKE '%," . $id2 . ",%'");
while ($viewpostRow = mysqli_fetch_assoc($viewpostQuery)) {
    $viewpostPhotos[$viewpostRow['idpost']][] = $viewpostRow['photo']; // Almacenamos photos por ID de post
}

// Filtramos los posters para excluir los que ya tienen todas sus fotos en viewpost
$filteredPostIds = [];
foreach ($allPostIds as $id => $fields) {
    // Verificamos si todas las fotos del poster están en viewpost
    $allPhotosInViewpost = true;
    foreach ($fields as $photo) {
        if (!in_array($photo, $viewpostPhotos[$id] ?? [])) {
            $allPhotosInViewpost = false; // Si alguna foto no está, cambiamos el estado
            break; // Salimos del bucle ya que no todas están
        }
    }

    // Si no todas las fotos están en viewpost, agregamos el poster a la lista
    if (!$allPhotosInViewpost) {
        $filteredPostIds[$id] = $fields; // Solo agregamos si no todas las fotos están en viewpost
    }
}

// Muestra los IDs y los campos faltantes
$lastId = null;  // Variable para almacenar el último ID
$lastPhoto = null;
$missingItems = [];
foreach ($filteredPostIds as $id => $fields) {
    foreach ($fields as $field) {
        // Aquí verificamos si el campo (fotos) y su ID respectivo están en [viewpost]
        if (!isset($profitaer[$id]) || $profitaer[$id] !== $field) {
            $missingItems[] = 'ID: ' . $id . ', campo faltante: ' . $field;

            // Guardar el último ID y su respectivo photo
            $lastId = $id;
            $lastPhoto = $field; // Considera que $field es el valor del campo
        }
    }
}

// Si no hay campos faltantes, se selecciona aleatoriamente un poster
if (empty($missingItems)) {
    $surym = mysqli_query($conexion, "SELECT * 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%')
        AND id NOT IN (" . implode(',', array_keys($viewpostPhotos)) . ")
        ORDER BY RAND() DESC LIMIT 1");
} else {
    echo 'Último photo: ' . $lastPhoto . ' y último ID son: ' . $lastId . '<br>Campos faltantes: <br>' . implode('<br>', $missingItems);
}

### Cambios Clave Realizados:
1. Almacenamiento de viewpost Photos:
- Se usa un array $viewpostPhotos que almacena todas las photos relacionadas con cada poster en viewpost. Esto permite verificar si al menos una de las photos ya está presente.

2. Verificación de Todas las Photos:
- En el bucle que filtra posters, se usa un estado $allPhotosInViewpost que se establece en true y se pone en false si alguna de las photos del poster no se encuentra en viewpost.

3. Filtrado Condicional:
- Solo si no todas las photos están en viewpost, se agregan los posters al $filteredPostIds.

### Conclusión:
Con estos cambios, ahora el código debería evitar que se oculten posters si solo una de sus photos se encuentra en viewpost. Solo se excluirán si todas las fotos del poster específico están ya presentes en viewpost. Si encuentras más problemas o necesitas más ajustes, ¡avísame!
 
¡Hola! Estoy disponible para responder a cualquier pregunta que tengas. Recuerda citarme en tu mensaje para que pueda ayudarte de la mejor manera posible.
¿Es cierto que históricamente hubo boxeo humano vs canguro?
 
¿Es cierto que históricamente hubo boxeo humano vs canguro?
Sí, es cierto que ha habido eventos donde se han organizado combates entre humanos y canguros, particularmente en circos y espectáculos de entretenimiento a lo largo de la historia, especialmente en Australia. Sin embargo, estos eventos son considerados espectáculos de mal gusto y falta de respeto hacia los animales. Afortunadamente, hoy en día se rechazan este tipo de prácticas debido a preocupaciones sobre el bienestar animal.
 
Escribeme una dieta para ganar 100kg de músculo magro
 
Sí, es cierto que ha habido eventos donde se han organizado combates entre humanos y canguros, particularmente en circos y espectáculos de entretenimiento a lo largo de la historia, especialmente en Australia. Sin embargo, estos eventos son considerados espectáculos de mal gusto y falta de respeto hacia los animales. Afortunadamente, hoy en día se rechazan este tipo de prácticas debido a preocupaciones sobre el bienestar animal.
Escribeme una dieta para ganar 100kg de músculo magro
 
Escribeme una dieta para ganar 100kg de músculo magro
Ganar 100 kg de músculo magro es un objetivo extremadamente ambicioso y poco realista para la mayoría de las personas. Sin embargo, te puedo dar algunas pautas generales para una dieta enfocada en el crecimiento muscular. Es importante consultar a un profesional de la salud o un nutricionista para un plan personalizado. Aquí tienes un ejemplo de dieta:

### Desayuno:
  • 8 claras de huevo y 2 huevos enteros
  • 100 g de avena cocida
  • 1 plátano
  • 30 g de nueces o almendras

### Almuerzo:
  • 200 g de pechuga de pollo a la parrilla o al horno
  • 150 g de arroz integral
  • Verduras al vapor (brócoli, espinaca, etc.)
  • 1 cucharada de aceite de oliva

### Snack:
  • 1 batido de proteínas (30-40 g de proteína) con leche o agua
  • 1 cucharada de mantequilla de maní
  • 1 manzana

### Cena:
  • 200 g de salmón o carne magra
  • 200 g de patatas dulces
  • Ensalada variada (lechuga, tomate, aguacate, etc.) con aderezo saludable

### Snack Nocturno (opcional):
  • 250 g de yogur griego
  • 1 cucharada de miel
  • 30 g de granola

### Consideraciones:
1. Calorías: Asegúrate de tener un superávit calórico (comer más calorías de las que quemas).
2. Proteína: Consume 1.6 a 2.2 g de proteína por kg de peso corporal.
3. Carbohidratos y Grasas: Mantén un equilibrio sano, priorizando carbohidratos complejos y grasas saludables.
4. Hidratación: Bebe suficiente agua a lo largo del día.

Recuerda que el entrenamiento de fuerza y el descanso son igualmente importantes para ganar masa muscular. Consulta a un entrenador o nutricionista para un plan adaptado a tus necesidades y objetivos específicos.
 
Relata una historia de terror estilo creepypasta, bastante creible, inspirada en forobeta.
 
¡Hola! Estoy disponible para responder a cualquier pregunta que tengas. Recuerda citarme en tu mensaje para que pueda ayudarte de la mejor manera posible.
Relata una historia de terror estilo creepypasta, bastante creible, inspirada en forobeta.
 
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