Variable PHP
Résolu/Fermé
A voir également:
- Variable PHP
- Easy php - Télécharger - Divers Web & Internet
- Get_magic_quotes_gpc php 8 ✓ - Forum PHP
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
9 réponses
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
17 juil. 2008 à 10:23
17 juil. 2008 à 10:23
Bonjour,
Il faut que tu affiches $last_ligne-1 car la première ligne est 0 et non pas 1.
Il faut que tu affiches $last_ligne-1 car la première ligne est 0 et non pas 1.
Si j'essais d'afficher :
echo "\$last_line : ".$lignes[($last_line - 1)];
Rien ne s'affiche...
Je ne comprend vraiment pas. Car si je fais :
echo "\$last_line : ($last_line - 1);
Il m'affiche bien un numéro.
echo "\$last_line : ".$lignes[($last_line - 1)];
Rien ne s'affiche...
Je ne comprend vraiment pas. Car si je fais :
echo "\$last_line : ($last_line - 1);
Il m'affiche bien un numéro.
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
17 juil. 2008 à 10:32
17 juil. 2008 à 10:32
Essaie d'enlever les parenthèses.
Tu es sûr que ton tableau contient bien quelque chose à afficher à la dernière ligne?
Tu sais le résultat que tu veux obtenir?
Tu es sûr que ton tableau contient bien quelque chose à afficher à la dernière ligne?
Tu sais le résultat que tu veux obtenir?
Actuellement je connais le résultat que je veux obtenir car j'ai le fichier Excel sous les yeux. Il y a environs 50000 lignes. Et je doit mettre ce fichier dans une base MySQL. Mais ce fichier est appelé à changer...
Donc j'arrive bien a créer ma table avec la premiere ligne du fichier Excel pour créer mes champs. Et ensuite j'arrive bien a parcourir le fichier Excel en effectuant un foreach pour former ma requete SQL.
Le probleme, c'est qu'il y a une ligne : la derniere de tous les fichier qui est en gros le résumé du tableau que je voudrais virer.
Donc je cherche a trouver cette ligne pour lui faire un :
unset($lignes[$DERNIERE_LIGNE]);
Donc pour résumer :
En gros si je fais :
echo "\$last_line : ".$lignes[($last_line - 1)];
Il ne m'affiche pas le contenu de la ligne -> il ne m'affiche rien (a part "$last_line :")
Si je fais :
echo "($last_line - 1);
Il m'affiche bien le numéro de la ligne. Il y a donc bien le numéro de ligne dans la variable...
Et si je fais :
echo "\$last_line : ".$lignes[50203];
Il m'affiche bien le contenu de ma ligne !
Je ne comprend rien ! Si le numéro de ligne est contenu dans $last_line, alors $lignes[($last_line - 1)]; devrait bien contenir la ligne numéro $last_line (50203) et m'afficher le contenu de la ligne $last_line !? non ?
Ou alors, y a-t-il quelque chose que je n'est pas compris ??
Donc j'arrive bien a créer ma table avec la premiere ligne du fichier Excel pour créer mes champs. Et ensuite j'arrive bien a parcourir le fichier Excel en effectuant un foreach pour former ma requete SQL.
Le probleme, c'est qu'il y a une ligne : la derniere de tous les fichier qui est en gros le résumé du tableau que je voudrais virer.
Donc je cherche a trouver cette ligne pour lui faire un :
unset($lignes[$DERNIERE_LIGNE]);
Donc pour résumer :
En gros si je fais :
echo "\$last_line : ".$lignes[($last_line - 1)];
Il ne m'affiche pas le contenu de la ligne -> il ne m'affiche rien (a part "$last_line :")
Si je fais :
echo "($last_line - 1);
Il m'affiche bien le numéro de la ligne. Il y a donc bien le numéro de ligne dans la variable...
Et si je fais :
echo "\$last_line : ".$lignes[50203];
Il m'affiche bien le contenu de ma ligne !
Je ne comprend rien ! Si le numéro de ligne est contenu dans $last_line, alors $lignes[($last_line - 1)]; devrait bien contenir la ligne numéro $last_line (50203) et m'afficher le contenu de la ligne $last_line !? non ?
Ou alors, y a-t-il quelque chose que je n'est pas compris ??
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
17 juil. 2008 à 10:46
17 juil. 2008 à 10:46
Essaie en enlevant les parenthèses (même si je n'y crois pas vraiment mais on ne sait jamais ... )
Sinon ça me parait vraiment bizarre comme problème.
Sinon essaie :
$last_line_def = ($last_line - 1);
puis :
echo lignes[$last_line_def];
Sinon ça me parait vraiment bizarre comme problème.
Sinon essaie :
$last_line_def = ($last_line - 1);
puis :
echo lignes[$last_line_def];
Ouais, ça marche comme tu me dis de faire... C'est fou ! Je ne comprend pas pourquoi !
echo ($last_line-1);
echo "<br><br>";
echo ($last_line-2);
$last_line_def = $last_line-1;
echo $lignes[$last_line_def];
echo "<br><br>";
$last_line_def = $last_line-2;
echo $lignes[$last_line_def];
A la ligne $last_line-1 : ça ne m'affiche rien, car c'est une ligne blanche je pense. Ou alors parce que lui commence a 0 et du coup il y a un décalage.
Et la ligne $last_line-2 m'affiche bien ma dernière ligne.
Donc je vais faire comme tu me dis. Mais j'aurais bien aimé comprendre !
En tous cas merci beaucoup pour le coup de main ! A+
echo ($last_line-1);
echo "<br><br>";
echo ($last_line-2);
$last_line_def = $last_line-1;
echo $lignes[$last_line_def];
echo "<br><br>";
$last_line_def = $last_line-2;
echo $lignes[$last_line_def];
A la ligne $last_line-1 : ça ne m'affiche rien, car c'est une ligne blanche je pense. Ou alors parce que lui commence a 0 et du coup il y a un décalage.
Et la ligne $last_line-2 m'affiche bien ma dernière ligne.
Donc je vais faire comme tu me dis. Mais j'aurais bien aimé comprendre !
En tous cas merci beaucoup pour le coup de main ! A+
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
17 juil. 2008 à 10:59
17 juil. 2008 à 10:59
Essaie tout simplement
echo $lignes[$last_line-2];
Ca devrait marcher!
echo $lignes[$last_line-2];
Ca devrait marcher!
Oui... ça marche !
Pourtant j'avais déjà fait ce test : c'est l'objet de mon post sur ce forum...!
Je ne dois pas être bien réveillé !
Merci à toi !
Pourtant j'avais déjà fait ce test : c'est l'objet de mon post sur ce forum...!
Je ne dois pas être bien réveillé !
Merci à toi !
Passarinho44
Messages postés
963
Date d'inscription
mercredi 28 mai 2008
Statut
Contributeur
Dernière intervention
13 juin 2012
132
17 juil. 2008 à 11:10
17 juil. 2008 à 11:10
Ouais, il est encore un peu tôt ! :p
Content d'avoir pû t'aider !
Bonne continuation pour ton PHP =)
A+
EDIT : Pense à cocher "problème résolu" ;)
Content d'avoir pû t'aider !
Bonne continuation pour ton PHP =)
A+
EDIT : Pense à cocher "problème résolu" ;)
Oui ! :-)
Si ça intéresse quelqu'un je dépose le code :
Il permet de rentrer toutes les valeurs d'un fichier Excel, sans la première ligne de celui ci (car je m'en sert pour créer la base dans une autre fonction). Et sans les 2 dernières lignes.
Il faut savoir combien il y a de champs...Eh oui tout n'est pas automatique...!
Si ça intéresse quelqu'un je dépose le code :
<?php include 'connexion_bdd.php'; $file = $_FILES['file']['tmp_name']; $content = file_get_contents($file,'r'); $lignes = split("\n", $content); $handle = fopen($file, "r"); $last_line = 1; while (($data = fgetcsv($handle, 0, ";")) !== FALSE) { $last_line++; } unset($lignes[0]); unset($lignes[$last_line-1]); unset($lignes[$last_line-2]); foreach($lignes as $ligne) { $values = explode(";",$ligne); $statement = "INSERT INTO tabletampon_rh_file ($champs1, $champs2, $champs3, $champs4) VALUES("; foreach($values as $value){ $value = trim($value); // suppression des espaces au début et à la fin $value = str_replace("'","\'",$value); // echappement devant les simples quotes $statement .= "'$value',"; } $statement = substr($statement,0,strlen($statement)-1); $statement.= ");"; echo $statement."<br>"; } fclose($handle); mysql_query($statement) or die('<br>Erreur SQL !<br>'.$sql1.'<br>'.mysql_error()); ?>
Il permet de rentrer toutes les valeurs d'un fichier Excel, sans la première ligne de celui ci (car je m'en sert pour créer la base dans une autre fonction). Et sans les 2 dernières lignes.
Il faut savoir combien il y a de champs...Eh oui tout n'est pas automatique...!