Problème affichage résultat [PHP]

Résolu/Fermé
Kitty-cat Messages postés 141 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 - 28 déc. 2007 à 11:53
Kitty-cat Messages postés 141 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 - 28 déc. 2007 à 13:58
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 mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
28 déc. 2007 à 12:08
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 vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 10
28 déc. 2007 à 12:38
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 mercredi 26 septembre 2007 Statut Membre Dernière intervention 29 juillet 2010 1 388
28 déc. 2007 à 12:54
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
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 vendredi 9 novembre 2007 Statut Membre Dernière intervention 6 août 2008 10
28 déc. 2007 à 13:58
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