Pb: requête bonne mais pas d'affichage

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 00:36

Alors voici comment j'ai fait ça :
Mon index.php contient 3 includes :
- 1 pour la base (la connexion fonctionne puisque je peux afficher mes magasins si je ne mets pas de règles restrictives à ma requête)
- 1 pour la récupération des données du fichier excel dans un tableau php : $montab[$i][$j] (je récupère aussi le nombre total de ligne et de colonne du fichier excel)
- 1 pour le traitement et comparaison avec les données de ma base

Voici le code du dernier qui nous intéresse :

Code : Tout sélectionner

<?php // LES FONCTIONS // Fonction de vérification si le magasin est dans la base function existmag($nommag){ $existmonmag = 0; //$query_existmag = "SELECT * FROM `mp_magasin` WHERE titremag=`$nommag` "; //$query_existmag = "SELECT * FROM `mp_magasin` WHERE MATCH(titremag) AGAINST '$nommag' "; $query_existmag = "SELECT * FROM `mp_magasin` WHERE MATCH(titremag) AGAINST ('$nommag')"; $mysql_existmag = mysql_query($query_existmag); echo $query_existmag.'<br />'; if (!$mysql_existmag) { echo "Impossible d'exécuter la requête ($query_existmag) dans la base : " . mysql_error(); } else { if (mysql_num_rows($mysql_existmag) == 0) { echo "<br /><strong>Aucune ligne trouvée, rien à afficher.</strong><br />"; } while ($rowmagasin=mysql_fetch_assoc($mysql_existmag) ) { //print_r ($rowmagasin).'<br />'; //$rowmagasin['titremag'] = str_replace(" ","",$rowmagasin['titremag']); if (strcasecmp($rowmagasin['titremag'], $nommag) == 0) { $existmonmag = $rowmagasin['idmag']; //echo 'oui c est égal : '.$rowmagasin['idmag'].'-'.$rowmagasin['titremag']; //echo ' >>><strong> '.$existmonmag.'</strong><br />'; } } } return $existmonmag; } // FIN DES FONCTIONS ?> <?php /* Insertion du fichier excel dans la base de données */ echo "<i>Données insérées dans la base</i> <br />"; /* Récupération du nombre total de colonne et de ligne du fichier excel */ $max_cols = $col-1; $max_rows = $row-1; echo $max_cols." colonnes et ".$max_rows." lignes, et "; echo $max_cols-3 ." magasins<br /><br />"; $i=1 ;// $i = nombre de ligne while($i<=$max_rows) { $j=1;// $j = nombre de colonne while($j<=$max_cols) { // 1ere ligne = liste des magasins if($i==1) { //for($j=4; $j<=$max_cols; $j++) //{ //echo '// '.$montab[$i][$j].' - '; // if($j>=4){ //$montab[$i][$j] = str_replace("\n"," ",$montab[$i][$j]); //$montab[$i][$j] = str_replace(" "," ",$montab[$i][$j]); $montabtrimmed[$i][$j] = trim($montab[$i][$j], "\t."); $montabtrimmed[$i][$j] = trim($montab[$i][$j], "\n."); $montabtrimmed[$i][$j] = trim($montab[$i][$j], "\r."); $montabtrimmed[$i][$j] = trim($montab[$i][$j], "Hdle"); $montabtrimmed[$i][$j] = trim($montab[$i][$j], "\x0B"); $montabtrimmed[$i][$j] = trim($montab[$i][$j], "\x00..\x1F"); // Recherche si magasin du fichier excel existe dans la base $existmonmag = existmag($montabtrimmed[$i][$j]); // Cas où le magasin du fichier excel existe dans la base if($existmonmag != 0) { //echo $existmonmag; } // Cas où le magasin du fichier excel N'existe PAS dans la base else{ // Cas insertion du magasin du fichier excel dans la base // Encore à faire ... } $tabidmag[$j] = $existmonmag; echo "pp".$tabidmag[$j]."pp<br /><br />"; } //} //echo $montab[$i][4].'-'; } // Fin de première ligne $j++; } //echo "</tr>"; $i++; } //echo "</table>"; ?>

ViPHP
ViPHP | 5462 Messages

29 sept. 2010, 00:45

je t'ai dis que
$montabtrimmed[$i][$j] = trim($montab[$i][$j], "\t.");
$montabtrimmed[$i][$j] = trim($montab[$i][$j], "\n.");
$montabtrimmed[$i][$j] = trim($montab[$i][$j], "\r.");
$montabtrimmed[$i][$j] = trim($montab[$i][$j], "Hdle");
$montabtrimmed[$i][$j] = trim($montab[$i][$j], "\x0B");
$montabtrimmed[$i][$j] = trim($montab[$i][$j], "\x00..\x1F");
ca servait a rien ca reviens a faire
$montabtrimmed[$i][$j] = trim($montab[$i][$j]);
t'as activer le trace_mode ?
ton error_reporting est a quelle valeur ?

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 00:52

ok, j'ai viré ces lignes inutiles et mis celle que tu préconises.
J'ai déjà activé le trace_mode.

Par contre, comme je n'ai pas d'erreur (avant j'en avais car j'avais pas mis d'index sur le champ de ma base pendant que je MATCHé la requête), je ne peux pas te donner l'error_reporting

ViPHP
ViPHP | 5462 Messages

29 sept. 2010, 00:54

error_reporting
pourquoi ? le error_reporting c'est une valeur de php regarde dans ton php.ini ou ton phpinfo, ou fais
var_dump(error_reporting());

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 00:55

Autant pour moi, je suis allé un peu vite.
error_reporting = E_ALL

ViPHP
ViPHP | 5462 Messages

29 sept. 2010, 00:59

Autant pour moi, je suis allé un peu vite.
error_reporting = E_ALL
met le a E_ALL | E_STRICT (faudra redemarrer php)

et redis a quelle moment ca coince :wink:

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 01:03

Strict Standards: Assigning the return value of new by reference is deprecated in (..)\Excel\reader.php on line 261

Ma ligne 261 du fichier en question :
$this->_ole =& new OLERead();

ViPHP
ViPHP | 5462 Messages

29 sept. 2010, 01:05

ca s'arrête pas la si ?

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 01:07

bin si.
Je recherche la méthode pour adapter la fonction qui est depreciated

ViPHP
ViPHP | 5462 Messages

29 sept. 2010, 01:13

bin si.
Je recherche la méthode pour adapter la fonction qui est depreciated
$temp = new OLERead();
$this->_ole = &temp
sinon il sert a quoi ton code ?

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 01:20

La syntaxe est apparement pas bonne mais j'imagine que tu voulais dire :

Code : Tout sélectionner

$temp = new OLERead(); $this->_ole = &$temp;
Résultat :
Toujours pareil : Affichage Front : pas de résultat,
vs,
affichage côté phpmyadmin avec l'echo de la requête : résultat ok


et le fichier Excel/reader.php est un script qui permet de récupérer les données d'un fichier excel

ViPHP
ViPHP | 5462 Messages

29 sept. 2010, 01:24

a quel moment s'arrête ton code ?

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 01:31

Mon code s'arrête quant j'ai atteint les maxima des $i et $j qui sont les nombres de colonnes et de lignes.

Mais là je ne fais qu'un traitement sur la première ligne.

ViPHP
ViPHP | 5462 Messages

29 sept. 2010, 01:34

fais
if($existmonmag != 0)
{
    echo $existmonmag;
}
else
{
     echo $montabtrimmed[$i][$j] . 'pas trouvé';
}
par ce que si tu commentes tout il va pas afficher grand chose :wink:

Eléphanteau du PHP | 22 Messages

29 sept. 2010, 01:40

fais
if($existmonmag != 0)
{
    echo $existmonmag;
}
else
{
     echo $montabtrimmed[$i][$j] . 'pas trouvé';
}
par ce que si tu commentes tout il va pas afficher grand chose :wink:
ok et ça fait ce qu'on a dit que ça doit faire :
"nom du magasin" pas trouvé (avec la syntaxe du nom du magasin correct côté front)