Reputation: 99
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?
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.
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>
Upvotes: 3
Views: 976
Reputation: 1260
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
OR
your function $data[$i] = data_eng_to_it_($data[$i]);
isn't returning the expected string "04 June 2015"
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
?
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]);
For it to work in your while loop, use $data_exploded[$i][0]
You can't however do this in a echo string "". Either concatenate it using .
or assign it to a simpler variable.
echo "<h1>".$data_exploded[$i][0]."</h1>";
?> <h1><?php echo $data_exploded[$i][0];?></h1>
Upvotes: 3