多个平板电脑在foreach中显示

时间:2015-04-22 21:08:31

标签: php sql arrays foreach

我在SQL中有三个表,显示为一个数组, 电子书| actividad | USUARIOS

有时在“电子书”中,显示总是相同的结果(数组很好,我认为是foreach $ key中的一个问题)。嗯,代码如下。

// Table actividad

array(9) {
    ["id"]=>
    string(2) "32"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(8) "favorito"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "0a3ad21cbfd4f1e8900a2f0bff14010c"
    ["fecha"]=>
    string(19) "2015-04-22 09:42:41"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(2) "31"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(8) "favorito"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "9a142cd24ec96f76a3ae36de2c2c2607"
    ["fecha"]=>
    string(19) "2015-04-22 09:37:44"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(2) "30"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(8) "favorito"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "b11d6e522acefa1cfb960b0e88c652a7"
    ["fecha"]=>
    string(19) "2015-04-22 09:36:49"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(2) "28"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(8) "favorito"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "85b0497972e9ad1be800ea887a4dbd46"
    ["fecha"]=>
    string(19) "2015-04-22 09:34:31"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(2) "27"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(8) "favorito"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "3f23bf6e089135f572925bc5f03e3c43"
    ["fecha"]=>
    string(19) "2015-04-22 08:49:49"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(1) "4"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(7) "lectura"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "b11d6e522acefa1cfb960b0e88c652a7"
    ["fecha"]=>
    string(19) "2015-04-22 02:27:54"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(1) "2"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(7) "lectura"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "bad8abebdf9a268f78de1684a30c6f3f"
    ["fecha"]=>
    string(19) "2015-04-21 08:23:45"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(1) "1"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(7) "lectura"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "85b0497972e9ad1be800ea887a4dbd46"
    ["fecha"]=>
    string(19) "2015-04-21 08:21:26"
    ["mostrar"]=>
    string(1) "1"
}
array(9) {
    ["id"]=>
    string(1) "3"
    ["user_id"]=>
    string(1) "1"
    ["dest_id"]=>
    string(1) "1"
    ["tipo"]=>
    string(7) "lectura"
    ["quote"]=>
    string(0) ""
    ["ip"]=>
    string(3) "::1"
    ["ebook"]=>
    string(32) "a2e10598569e20ebd327fda6975197fb"
    ["fecha"]=>
    string(19) "2015-04-20 08:24:07"
    ["mostrar"]=>
    string(1) "1"
}

// Table ebooks

array(3) {
    ["ebook"]=>
    string(37) "0a3ad21cbfd4f1e8900a2f0bff14010c.epub"
    ["titulo"]=>
    string(24) "Doce años de esclavitud"
    ["autor"]=>
    string(15) "Solomon Northup"
}
array(3) {
    ["ebook"]=>
    string(37) "9a142cd24ec96f76a3ae36de2c2c2607.epub"
    ["titulo"]=>
    string(20) "La Fortaleza Digital"
    ["autor"]=>
    string(9) "Dan Brown"
}
array(3) {
    ["ebook"]=>
    string(37) "b11d6e522acefa1cfb960b0e88c652a7.epub"
    ["titulo"]=>
    string(15) "El Gran Diseño"
    ["autor"]=>
    string(33) "Stephen Hawking; Leonard Mlodinow"
}
array(3) {
    ["ebook"]=>
    string(37) "85b0497972e9ad1be800ea887a4dbd46.epub"
    ["titulo"]=>
    string(42) "Un grito de amor desde el centro del mundo"
    ["autor"]=>
    string(16) "Kyoichi Katayama"
}
array(3) {
    ["ebook"]=>
    string(37) "3f23bf6e089135f572925bc5f03e3c43.epub"
    ["titulo"]=>
    string(30) "Maze Runner 3 - La cura mortal"
    ["autor"]=>
    string(13) "James Dashner"
}
array(3) {
    ["ebook"]=>
    string(37) "b11d6e522acefa1cfb960b0e88c652a7.epub"
    ["titulo"]=>
    string(15) "El Gran Diseño"
    ["autor"]=>
    string(33) "Stephen Hawking; Leonard Mlodinow"
}
array(3) {
    ["ebook"]=>
    string(37) "bad8abebdf9a268f78de1684a30c6f3f.epub"
    ["titulo"]=>
    string(19) "El símbolo perdido"
    ["autor"]=>
    string(9) "Dan Brown"
}
array(3) {
    ["ebook"]=>
    string(37) "85b0497972e9ad1be800ea887a4dbd46.epub"
    ["titulo"]=>
    string(42) "Un grito de amor desde el centro del mundo"
    ["autor"]=>
    string(16) "Kyoichi Katayama"
}
array(3) {
    ["ebook"]=>
    string(37) "a2e10598569e20ebd327fda6975197fb.epub"
    ["titulo"]=>
    string(22) "Bajo la misma estrella"
    ["autor"]=>
    string(10) "John Green"
}

// Table usuarios

array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}
array(3) {
    ["id"]=>
    string(1) "1"
    ["nombre"]=>
    string(4) "Mati"
    ["usuario"]=>
    string(3) "wtf"
}

PHP代码:

<?php
    $perfiluser = htmlspecialchars($_GET['unw']);
    $sql = "SELECT * FROM actividad WHERE dest_id = ".$perfiluser." ORDER BY fecha DESC";
    $result = mysql_query($sql) or die(mysql_error);

    while($res = mysql_fetch_assoc($result)){
        $timeline[] = $res;
    }

    foreach($timeline as $t)
    {    
        $sql2 = "SELECT ebook, titulo, autor FROM ebooks WHERE ebook = '".$t['ebook'].".epub'";
        $result2 = mysql_query($sql2);
        while($res2 = mysql_fetch_assoc($result2)){
            $epubs[] = $res2;
        }
    }

    foreach($timeline as $t)
    {    
        $sql3 = "SELECT id, nombre, usuario FROM usuarios WHERE id = '".$t['dest_id']."'";
        $result3 = mysql_query($sql3);
        while($res3 = mysql_fetch_assoc($result3)){
            $usuarios[] = $res3;
        }
    }

    foreach($timeline as $t){
        var_dump($t); // Listar datos de timeline en un array
    }

    foreach($epubs as $e){
        var_dump($e); // Listar datos de la tabla ebooks en un array
    }
    foreach($usuarios as $u){
        var_dump($u); // Listar datos de la tabla ebooks en un array
    }
?>

显示数组(全部在同一个脚本中)

<?php
 $i = 0;

    foreach($timeline as $t){ 

print ''. $u['nombre'] .' ('. $u['usuario'] .')</strong> estuvo leyendo '. $e['titulo'] .' ('. $e['autor'] .')<br>';
print $t['tipo'];  
} 


 $i++;  ?>

并且,它返回:

Mati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
favoritoMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
favoritoMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
favoritoMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
favoritoMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
favoritoMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
lecturaMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
lecturaMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
lecturaMati (wtf) estuvo leyendo Bajo la misma estrella (John Green)
lectura

1 个答案:

答案 0 :(得分:1)

您需要使用$key中的foreach(),以便在同一位置引用$usuarios / $epubs

<?php
    foreach($timeline as $key => $t){ 
        print ''. $usuarios[$key]['nombre'] .' ('. $usuarios[$key]['usuario'] .')</strong> estuvo leyendo '. $epubs[$key]['titulo'] .' ('. $epubs[$key]['autor'] .')<br>';
        print $t['tipo'];  
    } 
?>