---
title: "Problem med att loopa ut"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/155973-problem-med-att-loopa-ut"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Tulork"
published: "2007-01-14T20:27:52.000Z"
updated: "2007-01-14T22:54:09.000Z"
replies: 8
views: 278
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/155973-problem-med-att-loopa-ut"
---

# Problem med att loopa ut

## #1 — Tulork, 2007-01-14T20:27Z

```php
//Mappen med filerna
$upload_dir = 'download';
//Hämtar och Visar de tillgängliga filerna
$dir_handle = opendir($upload_dir) or die("Unable to open $upload_dir");
if ($dir_handle){
	while ($file = readdir($dir_handle)) {
		if($file == $col_value) {
			//$filesize = filesize($upload_dir.$file);
			echo "<a href=\"$upload_dir/$file\">$file</a><br>";

} 		
}

closedir($dir_handle);
}
```

Har lite problem att ersätta if satsen som matchar filerna mot filnamnen i databasen, vill ju gärna kunna visa alla filer som tillhör användaren.

Permalänk: https://www.webforum.nu/p/155973

## #2 — emission, 2007-01-14T20:34Z

Berätta gärna lite mer. Om filnamnen finns lagrade i databasen finns det ju ingen anledning att låta filsystemet lista upp dem.

Permalänk: https://www.webforum.nu/p/1923727

## #3 — Tulork, 2007-01-14T20:39Z

filnamnet finns i databasen..men jaha, hur skulle jag annars göra? I övrigt, kan inte du/någon visa hur jag loopar ut dem ändå?

Permalänk: https://www.webforum.nu/p/1923729

## #4 — Tulork, 2007-01-14T20:44Z

Så här ser hela scriptet ut, tanken är att jag bara ska länka filer åt de användarna jag valt i för väg när jag uploadade

```php
<?php
ob_start();
session_start();
// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
  header("Location: index.php");
  exit;
}
if (isset($_GET['logout'])){
  session_unset();
  session_destroy();
  header("Location: index.php");
  exit;
}
?>
<html>
<head>
<link rel=StyleSheet href="setts/style.css" TYPE="text/css">
</head>
<body class="back">
<?php
include "conn.php"; // Databasanslutningen

// Performing SQL query sh
$query = "SELECT user FROM $mem_table WHERE id = ".$_SESSION['sess_id']."";
$result = mysql_query($query) or die('Query failed: ' . mysql_error());

// Printing results in HTML
echo "<p><strong>Välkommen</strong><p>";
//echo "$_SESSION['sess_userlevel'];";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
   echo "\t<tr>\n";
   foreach ($line as $col_value) {
       echo "\t\t<td>$col_value</td>\n<br><br>";
   }
   echo "\t</tr>\n";
//echo "test $sess_userlevel";
}
echo "</table>\n";
// $query = mysql_query("SELECT id FROM UserFiles WHERE refID = ".$_SESSION['sess_id']."");
//while ($pic = mysql_fetch_array($query)){
 // echo "<a href=\"bild.php?Id=".$pic['id']."\">mmmm</a>";
//} 
// Free resultset
//mysql_free_result($result);

//---------------------------------------------------------------------------------------------------------
?>
<?
echo "<p><strong>Dina filer</strong><p>";

//#####################################################
//Hämtar filnamnet som valdes vid inläggning av filen##
//#####################################################
$query2 = "SELECT filename FROM UserFiles WHERE RefID = ".$_SESSION['sess_id']."";
$result2 = mysql_query($query2) or die('Query failed: ' . mysql_error());
//echo "<br>";
while ($line2 = mysql_fetch_array($result2, MYSQL_ASSOC)) {
 //  echo "\t<tr>\n";
   foreach ($line2 as $col_value) {
 //      echo "\t\t<td>$col_value</td>\n";
   }
  // echo "\t</tr>\n";
}
//echo "</table>\n";
//echo "<br>";
//echo "<br>";

//Mappen med filerna
$upload_dir = 'download';
//Hämtar och Visar de tillgängliga filerna
$dir_handle = opendir($upload_dir) or die("Unable to open $upload_dir");
if ($dir_handle){
	while ($file = readdir($dir_handle)) {
		if($file == $col_value) {
			//$filesize = filesize($upload_dir.$file);
			echo "<a href=\"$upload_dir/$file\">$file</a><br>";

}	
}

}closedir($dir_handle);

ob_end_flush();
?>
<?php
echo "<br><a href=\"index.php?logout=\">Logga ut</a>\n<br><br>";
?>
<a href="admin.php">Tillbaka </a><br><br>
</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1923731

## #5 — Duffer, 2007-01-14T22:02Z

Som ovan talare sagt så är det väl dumt att gå igenom mappen med filer eftersom de redan finns i databasen där du hämtar filnamnen till en/flera specifik/a användare.

din if-sats: if($file == $col_value) kan endast bli true en gång (om äns det?) eftersom den sätts i en loop innan som spinner igenom utan att du gör något, det är ju inte direkt så att $col_value är en array()...

Om du vill använda din ganska otaktiska teknik som ovan är det bättre du sparar alla filnamnen i en array och kollar mot den om den filen du vill visa (if($file == $col_value)) är med i den.

Mitt förslag är att du bara helt enkelt hämtar filnamnen ur databasen till den eller de användare du vill ha

sen kör du:

while($resultRow = mysql_fetch_array($dinSqlSats) {
    // För lite extra säkerhet så kollar vi att filen finns i verkligheten också
    if(file_exists($resultRow\['fileName'\])
        echo "\<a href='$upload_dir/".$resultRow\['fileName'\]."'\>".$resultRow\['fileName'\]."\</a\>";
}

Det där grejjar du fint ;-) komihåg att min kod ovan inte är plug n play utan du får ändra variablerna så det passar din databas.

Mvh

Permalänk: https://www.webforum.nu/p/1923757

## #6 — Tulork, 2007-01-14T22:25Z

ska jag vara ärlig så har jag inte den blekaste hur jag loopar ut alla rätta filnamn med samma RefID och sparar dem i en array...PHP är inte mitt "native" kodnings språk..skiljer sig inte så mkt va, men vissa saker är ??? för mig..  men det du/ni säger låter väldigt vettigt och så var väl tanken från början..

Permalänk: https://www.webforum.nu/p/1923769

## #7 — Duffer, 2007-01-14T22:32Z

Men skit i att stoppa det i en ny array, kör på mitt sista förslag, är dumt att lagra något i en till array när det redan finns i ett mysql resultat ;-)

Jag menar har du hyfsad kontroll vid upladdning av filer så sparar du ju ingen fil i databasen som verkligen inte finns på servern, och alltså blir mitt sista förslag kanon ;-)

mvh

Permalänk: https://www.webforum.nu/p/1923772

## #8 — Tulork, 2007-01-14T22:45Z

hehe, det funkade perfa..men inte if satsen file_exists, den böka till det...

tack ska du ha!!

Permalänk: https://www.webforum.nu/p/1923776

## #9 — Duffer, 2007-01-14T22:54Z

Oj sorry, glömde ju tamed hela söksträngen till filen, man måste ju ha med så man kommer till rätt mapp, det var mitt fel där!

if(file_exists($uploadFolder."/".$resultRow\['fileName'\]))

Alltid bra att göra en extra koll ;-)

Permalänk: https://www.webforum.nu/p/1923779

---

Tråden på webben: https://www.webforum.nu/amne/php/155973-problem-med-att-loopa-ut
