在变量php中有两个数组。

时间:2022-10-24 22:20:40

i've this code, i'm trying to explode my date e.g "04 June 2015" to have the day and the month in other 2 variables, but i have all in a method, with an array, is it possible, my code doesn't work, it writes "Array[0]" why?

我有这个密码,我想把我的约会搞砸。g“04 June 2015”在另外两个变量中有一天和一个月,但是我在一个方法中,有一个数组,有可能,我的代码不工作,它写了“array[0]”为什么?

while ($i < $number) {

      $festa[$i] = mysql_result($result,$i,"festa");
      $luogo[$i] = mysql_result($result,$i,"luogo");
      $idfesta[$i] = mysql_result($result,$i,"ID");
      $data[$i] = mysql_result($result,$i,"data");  
      $nomeimg[$i] = mysql_result($result,$i,"nomeimg");

      $data[$i] = data_eng_to_it_($data[$i]);

      $data_exploded[$i] = explode(" ", $data[$i]);

      $data_exploded[$i][0] ; //day
       $data_exploded[$i][1] ; //month
        $data_exploded[$i][2] ; //year

EDIT

编辑

in this case :

在这种情况下:

while ($i < $number) {

      $festa[$i] = mysql_result($result,$i,"festa");
      $luogo[$i] = mysql_result($result,$i,"luogo");
      $idfesta[$i] = mysql_result($result,$i,"ID");
      $data[$i] = mysql_result($result,$i,"data");  
      $nomeimg[$i] = mysql_result($result,$i,"nomeimg");

      $data[$i] = data_eng_to_it_($data[$i]);

      $data_exploded = explode(" ", $data[$i]);

      $data_exploded[$i][0] ; //day
       $data_exploded[$i][1] ; //month
        $data_exploded[$i][2] ; //year

       echo" 
                              <div class=\"circleBase type3\"><div style=\"text-align:center;\">
                              <br>
                             <font size=\"+2\" style=\"margin-left:4px;\"> $data_exploded[0] </font>

it returns me "04" correctly but i can't use it because it repeats 04 for each result of my cycle.

它正确地返回我“04”,但我不能使用它,因为它对我的周期的每个结果重复04次。

ALL THE CODE

所有的代码

  <div id="container">



<?php 
//VARIABILI DI LOGIN CON FACEBOOK 

$FBID = $_GET['FBID'];
$FBUSER = $_GET['FBUSER'];
$FEMAIL = $_GET['FEMAIL'];
$DBhost = "localhost";
$DBuser = "bestparty";
$DBpass = "";
$DBName = "my_bestparty";

$count = strlen($FBID);

if ($count < 5 || !$count || $count = "undefined") {}
else {


//CHECK IF USERS EXIST
$link = mysql_connect("localhost", "bestparty", "") or die(mysql_error()); 
                                mysql_select_db("my_bestparty") or die(mysql_error()); 


                        $myquery = "SELECT * FROM Utenti WHERE Fuid = '$FBID'";

                        $resulta = mysql_query($myquery);
                        $numbera = mysql_num_rows($resulta);
                        mysql_close($link);
                        if($numbera == '0'){
                        $link1 = mysql_connect("localhost", "bestparty", "password") or die(mysql_error()); 
                                mysql_select_db("my_bestparty") or die(mysql_error()); 


                        $myquery1 = "INSERT INTO `Utenti`(`UID`, `Fuid`, `Ffname`, `Femail`, `class`) VALUES (NULL,'$FBID','$FBUSER','$FEMAIL','3')";

                        $resulta1 = mysql_query($myquery1);
                        $numbera1 = mysql_num_rows($resulta1);
                        mysql_close($link1);

                        }
                        else {

                        }
}







$table = "Database";

mysql_connect($DBhost,$DBuser,$DBpass) or die("mysql_error()");
@mysql_select_db("$DBName") or die("mysql_error()");



$sqlquery = "SELECT * FROM `Database` ORDER BY data DESC";
$result = mysql_query($sqlquery);
$number = mysql_num_rows($result);



$i = 0;

while ($i < $number) {

      $festa[$i] = mysql_result($result,$i,"festa");
      $luogo[$i] = mysql_result($result,$i,"luogo");
      $idfesta[$i] = mysql_result($result,$i,"ID");
      $data[$i] = mysql_result($result,$i,"data");  
      $nomeimg[$i] = mysql_result($result,$i,"nomeimg");

      $data[$i] = data_eng_to_it_($data[$i]);

      $data_exploded = explode(" ", $data[$i]);

      $data_exploded[$i][0] ; //day
       $data_exploded[$i][1] ; //month
        $data_exploded[$i][2] ; //year

       echo" <style>
           .circleBase {
        border-radius: 50%;
        behavior: url(PIE.htc); /* remove if you don't care about IE8 */
        }

        .type1 {
        width: 100px;
        height: 100px;
        background: yellow;
        border: 3px solid red;
        }
        .type2 {
        width: 50px;
        height: 50px;
        background: #ccc;
        border: 3px solid #000;
        }
        .type3 {
        position: absolute;
        width: 60px;
        height: 60px;
        margin-left:40%;
        margin-top: 53%;
        background: #fff;
        z-index: 1000;
        box-shadow: 1px 0px 3px rgba(0,0,0,0.24), 0 0px 3px rgba(0,0,0,0.24);
        font-size:8px;
        color: #e20a7e;
        border: solid 1px #e20a7e;
        }
            </style>
                                 <!--INIZIO DIV EVENTO-->
                              <div class=\"circleBase type3\"><div style=\"text-align:center;\">
                              <br>
                             <font size=\"+2\" style=\"margin-left:4px;\"> $data_exploded[0] </font>
                              <br>Maggio</div></div>
                                <a href=\"pagevento.html?ID=$idfesta[$i]&FBID=$FBID&FBUSER=$FBUSER\">
                                    <div style = \"display: block; margin: 0 auto; width: 95%; \">
                                        <div id=\"testihomeevento\"
                                         style=\" box-shadow: 1px 0px 3px rgba(0,0,0,0.24), 0 0px 3px rgba(0,0,0,0.24);
                                          padding:10px; display: block; margin: 0 auto; width: 85%; background-color: #fff;font-size: 0.7em;\">
                                            <font size=\"+1\" style=\"color:#e20a7e\">$festa[$i]</font> <br>
                                            $luogo[$i] <br>
                                            $data[$i] <br>
                                        </div>

                                        <div style=\"background-image:url(http://www.bestparty.altervista.org/APP/foto/$nomeimg[$i]);
                                                         background-position:center;
                                                       background-size: cover;
                                                       position: relative;
                                                       width: 100%;
                                                       height: 240px;
                                                       box-shadow: 1px 0px 3px rgba(0,0,0,0.24), 0 0px 3px rgba(0,0,0,0.24);\">

                                        </div>


                                        <div style=\" display: block; margin: 0 auto; width: 85%; background-color: #fff;
                                                    box-shadow: 1px 0px 3px rgba(0,0,0,0.24), 0 0px 3px rgba(0,0,0,0.24);\">
                                            <br>
                                            <br>
                                        </div>  

                                    </div>
                                    <br>

                                </a>

                                 <!--FINE DIV EVENTO--> 

";

$i++;
}
?>                      
                                </div>

1 个解决方案

#1


3  

The explode function is being used correctly, so your problem is further up.

爆炸功能被正确使用,所以你的问题还在继续。

Either $data[$i] = mysql_result($result,$i,"data"); isn't returning the expected string "2015-06-04" from the database

$ data[$ i]= mysql_result(因此,我美元,“数据”);不从数据库返回预期的字符串“2015-06-04”

OR

your function $data[$i] = data_eng_to_it_($data[$i]); isn't returning the expected string "04 June 2015"

函数$data[$i] = data_eng_to_it_($data[$i]);难道不返回预期的字符串“2015年6月4日”吗?

So test further up by echo / var_dump after both these two lines one at a time to make sure you're getting the strings you're expecting. In the data_eng_to_it_ function are you remembering to return $data ?

因此,在这两行之后,通过echo / var_dump进一步测试,以确保得到您所期望的字符串。在data_eng_to_it_函数中,您是否记得要返回$data ?


EDIT:

编辑:

You are echoing $data_exploded[0] which will output 'Array'. Instead output the 2D array, so $data_exploded[0][0] will output "04". Or to see the FULL output of $data_exploded[0] use: var_dump($data_exploded[0]);

您正在响应$ data_explosion[0],它将输出“Array”。相反,输出2D数组,因此$ data_explosion[0][0]将输出“04”。或者查看$ data_explosion[0]的全部输出:var_dump($ data_explosion [0]);

For it to work in your while loop, use $data_exploded[$i][0]

要让它在while循环中工作,请使用$ data_explosion [$i][0]

You can't however do this in a echo string "". Either concatenate it using . or assign it to a simpler variable.

但是,你不能在一个echo字符串中这样做。或者使用连接。或者把它赋给一个更简单的变量。

  1. Simpler variable: $day = $data_exploded[$i][0] and use the day variable the same way you have
  2. 更简单的变量:$day = $ data_explosion [$i][0],使用day变量的方式与您的相同
  3. Concatenate: echo "<h1>".$data_exploded[$i][0]."</h1>";
  4. 连接:回声“< h1 >”。$ data_exploded[$ i][0]。”< / h1 >”;
  5. Split HTML and PHP: personally I would do: ?> <h1><?php echo $data_exploded[$i][0];?></h1>
  6. 拆分HTML和PHP:我个人认为:?>

    < / h1 >

#1


3  

The explode function is being used correctly, so your problem is further up.

爆炸功能被正确使用,所以你的问题还在继续。

Either $data[$i] = mysql_result($result,$i,"data"); isn't returning the expected string "2015-06-04" from the database

$ data[$ i]= mysql_result(因此,我美元,“数据”);不从数据库返回预期的字符串“2015-06-04”

OR

your function $data[$i] = data_eng_to_it_($data[$i]); isn't returning the expected string "04 June 2015"

函数$data[$i] = data_eng_to_it_($data[$i]);难道不返回预期的字符串“2015年6月4日”吗?

So test further up by echo / var_dump after both these two lines one at a time to make sure you're getting the strings you're expecting. In the data_eng_to_it_ function are you remembering to return $data ?

因此,在这两行之后,通过echo / var_dump进一步测试,以确保得到您所期望的字符串。在data_eng_to_it_函数中,您是否记得要返回$data ?


EDIT:

编辑:

You are echoing $data_exploded[0] which will output 'Array'. Instead output the 2D array, so $data_exploded[0][0] will output "04". Or to see the FULL output of $data_exploded[0] use: var_dump($data_exploded[0]);

您正在响应$ data_explosion[0],它将输出“Array”。相反,输出2D数组,因此$ data_explosion[0][0]将输出“04”。或者查看$ data_explosion[0]的全部输出:var_dump($ data_explosion [0]);

For it to work in your while loop, use $data_exploded[$i][0]

要让它在while循环中工作,请使用$ data_explosion [$i][0]

You can't however do this in a echo string "". Either concatenate it using . or assign it to a simpler variable.

但是,你不能在一个echo字符串中这样做。或者使用连接。或者把它赋给一个更简单的变量。

  1. Simpler variable: $day = $data_exploded[$i][0] and use the day variable the same way you have
  2. 更简单的变量:$day = $ data_explosion [$i][0],使用day变量的方式与您的相同
  3. Concatenate: echo "<h1>".$data_exploded[$i][0]."</h1>";
  4. 连接:回声“< h1 >”。$ data_exploded[$ i][0]。”< / h1 >”;
  5. Split HTML and PHP: personally I would do: ?> <h1><?php echo $data_exploded[$i][0];?></h1>
  6. 拆分HTML和PHP:我个人认为:?>

    < / h1 >