Problème affichage résultat [PHP]

Résolu
Kitty-cat Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   -  
Kitty-cat Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à vous, chers ccmistes.

Je vous demande de l'aide suite à un problème d'affichage de résultats d'un mysql_fetch_array(). En effet, alors que je l'utilise comme je le fais tout le temps d'habitude, ce couillon oublie toujours de m'envoyer un résultat, en l'occurence mon premier résultat. Il prend ensuite les autres correctement. C'est ma foi un peu gênant, car je souhaiterais utiliser les résultats récupérés pour faire ensuite une requête de delete. Or s'il me manque un des fichiers à supprimer, ca peut etre gênant (Je n'ai pas encore codé la partie du delete par contre).

Voici le code :

[code]

<?php
session_start();

$dsn='localhost';
$username='root';
$password='';


$sqlconnect=mysql_connect($dsn,$username,$password);

mysql_select_db('Intranet',$sqlconnect);


$tab = array();
$resultat = array();

foreach($_POST as $key => $value)
{
array_push($tab,$value);
}

$select = " select NomOriginalFichier From IdFich ";

$counttab = count($tab);

if ($counttab == 1) {
$where = " where idfichiers = ".$tab[0]."";
}
else {
$where = " where idfichiers = ".$tab[0]."";
for ($i=0;$i<=($counttab - 1);$i++) {
$where .= " or idfichiers = ".$tab[$i]."";
}
}



$select .= $where;

$res = mysql_query($select);
$resultat = mysql_fetch_array($res);

$NomFichier = array();

while($resultat=mysql_fetch_array($res)){
array_push($NomFichier, $resultat['NomOriginalFichier']);
}

echo $NomFichier[0];
echo "<br />";
echo $NomFichier[1];

?>

[/code]

Cela fait bien une heure que je cherche la solution au problème, mais pour l'instant rien n'a marché. Je vais continuer à chercher, mais j'espère, si d'aventure je ne trouvais pas, que l'un de vous saura m'aider à corriger. D'avance, je vous remercie.

Cordialement,

Kitty-Cat
A voir également:

5 réponses

Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Bonjour,

Je pense que le code suivant n'est pas correct

else { 
$where = " where idfichiers = ".$tab[0].""; 
for ($i=0;$i<=($counttab - 1);$i++) { 
$where .= " or idfichiers = ".$tab[$i].""; 
} 


en effet, ta boucle For devrait commencer avec la valeur $i=1 car tu as déjà utilisé l'élement 0 de ton array

else { 
$where = " where idfichiers = ".$tab[0].""; 
for ($i=1;$i<=($counttab - 1);$i++) { 
$where .= " or idfichiers = ".$tab[$i].""; 
} 


A plus et Joyeuses Fêtes
0
Kitty-cat Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   10
 
Pas bête effectivement.

Mais la requête renvoyée, marche si on teste sous mysql directement.
0
Christounet Messages postés 1264 Date d'inscription   Statut Membre Dernière intervention   1 392
 
Rebonjour

As-tu déjà essayè avec le code suivant

$NomFichier = array();

$res = mysql_query($select);

if(mysql_num_rows($res))
{
  while($resultat = mysql_fetch_assoc($res))
  {
    array_push($NomFichier, $resultat['NomOriginalFichier']); 
  }
}


ou sinon celà
$NomFicher = array();

$resultat = mysql_fetch_array($res);

array_push($NomFichier, $resultat['NomOriginalFichier']);

while($resultat=mysql_fetch_array($res))
{ 
  array_push($NomFichier, $resultat['NomOriginalFichier']); 
} 


De cette façon tu sauves aussi ton premier $resultat

A plus
0
Alain42
 
Bonjour,

à la place de:

$tab = array();
$resultat = array();

foreach($_POST as $key => $value)
{
array_push($tab,$value);
}

$select = " select NomOriginalFichier From IdFich ";

$counttab = count($tab);

if ($counttab == 1) {
$where = " where idfichiers = ".$tab[0]."";
}
else {
$where = " where idfichiers = ".$tab[0]."";
for ($i=0;$i<=($counttab - 1);$i++) {
$where .= " or idfichiers = ".$tab[$i]."";
}
}
$select .= $where;


simplifies et mets:

$tab = array();

foreach($_POST as $key => $value)
{
array_push($tab,$value);
}

$select = "SELECT NomOriginalFichier FROM IdFich WHERE ";

for ($i=0;$i<sizeof($tab);$i++) {
	if($i>0){ $where .=" OR ";}
	$where .= "idfichiers = ".$tab[$i]."";
}

$select .= $where;



Ca réglera ton pb de premiere ligne extraite.

Le foreach($_POST...
n'est pas trop réglo car tu empile dans ton array tout ce que t'envoie le formulaire y compris le bouton Submit
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Kitty-cat Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   10
 
Merki, ca a résolu mon problème ^^.

Pour le foreach, je sais qu'il n'est pas très réglo, mais je n'ai pas utilisé de submit, et je l'utilise simplement pour récupérer l'id des cases à cocher qui sont cochées justement.
0