PHP Problem beim Daten Filtern [MySQL + PHP]

volcem

Lieutenant
Registriert
Dez. 2007
Beiträge
1.021
Guten,

hab da ein kleines Problem und komme gerade nicht auf eine Lösung, mein testcode geht nicht wirklich -.-

Es geht um folgendes:

Ich lade Dateien auf dem Server per File_Upload, speicher den Namen in der Datenbank, zwecks Stats und Namen Ausgabe.

Nun, es sind zwei Daten typen gepeichert:

pdf,
doc


Nun will ich zwei Tabellen haben, eine für doc und eine für pdf.

Habe dann folgendes versucht:

PHP:
$result = mysql_query("SELECT `file` FROM `doc`") or die(mysql_error());
//Typen checken -> ->
$pdf = "application/pdf"; 
$doc = "application/msword";
$rows = mysql_fetch_assoc($result);
$file_check = $rows["file"];
//Path from file´s
$path_to_file = "C:\\Dokumente und Einstellungen\\KF\\Desktop\\Bestellsystem Welling\\xampp\\htdocs\\files\\doc\\";
//Jaaa, das echt scheiße auf Windows :D 
//Leider kein anderen Server in dem Bunker gerade verfügbar ^^

//Checke Welche Datentypen in der Datenbank liegen ->

if(mime_content_type($path_to_file.$file_check) == $doc) {
echo '<br /><p align="center"><b>In der Datenbank befindliche Mircosoft Word Dokumente:</b></p>';
$res = mysql_query("SELECT `file`, `stats` FROM `doc`") or die(mysql_error());
echo '<table cellpadding="3" cellspacing="3" align="center" id ="boxinhalt" width="500px" height="100%">
<tr valign="top" class="box1"><td width="70%"><b>Datei</b></td><td width="30%"><b>Statistik</b></td></tr>';
while($row = mysql_fetch_array($res)) {
//anfang
$file_doc = $row["file"];
$doc_stats = $row["stats"];
echo '<tr valign="top" class="box2"><td width="70%">'.$file_doc.'</td><td width="30%">'.$doc_stats.'</td></tr>';

//ende
}
echo '</table>';
}

if(mime_content_type($path_to_file.$file_check) == $pdf) {
echo '<br /><p align="center"><b>In der Datenbank befindliche Adobe PDF Dokumente:</b></p>';
$res2 = mysql_query("SELECT `file`, `stats` FROM `doc`") or die(mysql_error());
echo '<br /><br />';
echo '<table cellpadding="3" cellspacing="3" align="center" id ="boxinhalt" width="500px" height="100%">
<tr valign="top" class="box1"><td width="70%"><b>Datei</b></td><td width="30%"><b>Statistik</b></td></tr>';
while($row2 = mysql_fetch_array($res2)) {
//anfang
$file_pdf = $row2["file"];
$pdf_stats = $row2["stats"];
echo '<tr valign="top" class="box2"><td width="70%">'.$file_pdf.'</td><td width="30%">'.$pdf_stats.'</td></tr>';

//ende
}
echo '</table>';
}

Nun wie man sieht, habe ich es versucht über mime_content_type() die Daten zu filtern.
Nurn irgend wie gehtd as nicht wirklich, er zeigt zwar eine Tabelle an, jedoch nur die erste und dort sind auch PDF files.

Wie kann ich es anders filtern?
 
Zuletzt bearbeitet:
PHP:
if(mime_content_type($path_to_file.$file_check) == $doc) {
echo '<br /><p align="center"><b>In der Datenbank befindliche Mircosoft Word Dokumente:</b></p>';
$res = mysql_query("SELECT `file`, `stats` FROM `doc`") or die(mysql_error());
Du prüfst zwar auf den Datentyp, aber trotzdem holst du dann wieder alle Daten aus der Datenbank? Du holst doch ganz am Anfang schon alle Daten, da könntest du auch gleich die stats mit abfragen und dann einfach nur noch das ausgeben was du brauchst und nicht nochmal die Datenbank kontaktieren.

Edit:
Außerdem prüfst du nur von einer Datei den Datentyp.
 
Hmm hätte ich sehen sollen :(

Nun geht es, einfach am Anfang alle Daten in ein Array geschrieben und überprüft.

Danke fürs aufmerksam machen, irgend wie hatte ich es den ganzen Vormittag über nicht gesehen.
Blöd ey.

Dankeschön :)
 
Zurück
Oben