[RESOLU] var_dump: array empty

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] var_dump: array empty

Re: [RESOLU] var_dump: array empty

par Saian » 27 janv. 2016, 17:53

Héhé 8-)

Re: var_dump: array empty

par esther123 » 27 janv. 2016, 17:45

Saian, je reste sans voix, je suis passé par plusieurs forum durant 6 jours entier, un copier/coller a suffit pour tout arranger.
Merci beaucouuup :)

Re: var_dump: array empty

par Saian » 27 janv. 2016, 17:42

Salut, je vois au moins 2 problèmes sur le script ici :
if($date_m < "10") {
  $date_m = substr($date_m, -1);
} else {
  $visite_par_mois[$date_m]=$visite_par_mois[$date_m] + 1;
}
Si $date_m est inférieur à 10 alors $visite_par_mois[$date_m] n'est pas incrémenté.
Et les différents index de $visite_par_mois ne sont jamais initialisés.

L'algo devrait plutôt ressembler à ceci :
if($date_m < 10)
  $date_m = substr($date_m, -1);

if(!isset($visite_par_mois[$date_m]))
  $visite_par_mois[$date_m] = 0;

$visite_par_mois[$date_m]+= 1;

Re: var_dump: array empty

par esther123 » 27 janv. 2016, 17:41

le var_dump de $date_m me renvoie "1" o.O

Re: var_dump: array empty

par Spols » 27 janv. 2016, 17:38

if($date_m < "10") {
Ceci me semble douteux, une comparaison de string ne va rien apporter de bon, et surement que la condition est toujours remplie.

Vérifie avec var_dump le contenu de $date_m et son type, et enlève peut être les guillemets pour faire une comparaison d'entier.

En règle générale, tu aura plus facile si tu gérais directement des timestamp dans MYSQL et PHP plutot qu'un format précis que tu dois parser à chaque utilisation

var_dump: array empty

par esther123 » 27 janv. 2016, 17:31

Bonjour, je cherche à récupérer le nombres de pages vues, dans le mois d'un site, ceci dans un tableau. Seulement il ne se rempli pas. J'ai pu le voir grâce au var_dump, car il n'y a aucune erreur d'affichée :shock:
$visite_par_mois = array();
$sql = 'SELECT date FROM statistiques WHERE date LIKE "'.$date_annee.'%" ORDER BY date ASC';

$result = mysqli_query($base,$sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysqli_error($base));
while ($data = mysqli_fetch_array($result)) {
	$date=$data['date'];
	
	sscanf($date, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i, $date_s);
	
	if(isset($date_m) ) {
		if($date_m < "10") {
			$date_m = substr($date_m, -1);
		} else {
			$visite_par_mois[$date_m]=$visite_par_mois[$date_m] + 1;
		}
	}
}
var_dump($visite_par_mois);

$total_pages_vu = mysqli_num_rows($result);
mysqli_free_result($result);

sscanf($date_annee, "%4s-%2s-%2s %2s:%2s:%2s", $date_Y, $date_m, $date_d, $date_H, $date_i, $date_s);

// on affiche le nombre de pages vues en fonction des mois
echo '<br />Les statistiques de l\'année '.$date_annee.' : <br /><br />';

for($i = 1; $i <= 12; $i++) {
	if (!isset($visite_par_mois[$i])) {
	echo 'Mois : '.$i.' : 0 page vue<br />';
	}
	else {
	echo 'Mois : '.$i.' : '.$visite_par_mois[$i].' pages vues<br />';
	}
}
Avez-vous des idées pour corriger cela ?
Merci d'avance :)