Seite 1 von 1

Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mi 25.Mai, 2011 17:04
von Holger
Hallo!

Ich habe ein Script mit dem ich problemlos mehrere Bilder auslesen und anzeigen kann.

Hier sieht der Code so aus:
http://www.maskinisten.net/mat/detail.php?id=1

Code: Alles auswählen

<br /><b>Bilder</b><br />
<?php
$verzeichnis = "bilder/"; // Pfad zum Verzeichnis (Hier ist es ein Unterverzeichnis)
$verzeichnis_id = $verzeichnis . $r['id'] . "/";
$handle = openDir($verzeichnis_id); // Verzeichnis öffnen
$i=0;
while ($datei = readDir($handle)) { // Verzeichnis auslesen
 if ($datei != "." && $datei != ".." && !is_dir($datei)) { // Verzeichnisse filtern
  if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg")) { // Bilder filtern
   $verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
   $info = getImageSize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
   if ($info[0] > 400)
	{
	$info[1] = (400 / $info[0]) * $info[1];
	$info[0] = 400;
	}
    // Bild anzeigen
   echo "<br /><a href=\"$verzeichnis_datei\" target=\"new\"><img src=\"$verzeichnis_datei\" width=\"$info[0]\" height=\"$info[1]\" border=\"0\"></a><br />";
  }
 }
 $i++;
}
closeDir($handle); // Verzeichnis schließen
if($i==0) {
 echo "<br />Inga bilder än";
}
?>
Klappt wunderbar!


Hier versuche ich das Gleiche, will aber nur ein Bild anzeigen:
http://www.maskinisten.net/mat/index.php
Ich bekomme dann nur eine weisse Seite (habe den jetzt Code auskommentiert, damit die Seite angezeigt wird)!
Was mache ich falsch?

Code: Alles auswählen

$result = mysql_query("SELECT * FROM mat_restaurant WHERE ort like '%$term%' AND activated='1' ORDER BY created DESC");

if ( $db->sql_numrows($result) > 0 )
{
  while ($r = mysql_fetch_array($result))
  {
	if($r['mattider'] == "1") $r['mattider']="Frukost";
	if($r['mattider'] == "2") $r['mattider']="Lunch";
	if($r['mattider'] == "4") $r['mattider']="Kvällsmat";
	if($r['mattider'] == "3") $r['mattider']="Frukost/Lunch";
	if($r['mattider'] == "5") $r['mattider']="Frukost/Kvällsmat";
	if($r['mattider'] == "6") $r['mattider']="Lunch/Kvällsmat";
	if($r['mattider'] == "7") $r['mattider']="Frukost/Lunch/Kvällsmat";
    echo('<tr>');
    echo('<td valign="top">');


$verzeichnis = "bilder/"; // Pfad zum Verzeichnis (Hier ist es ein Unterverzeichnis)
$verzeichnis_id = $verzeichnis . $r['id'] . "/";
$handle = openDir($verzeichnis_id); // Verzeichnis öffnen
$i=0;
while ($i=0 && $datei = readDir($handle)) { // Verzeichnis auslesen
 if ($datei != "." && $datei != ".." && !is_dir($datei)) { // Verzeichnisse filtern
  if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg")) { // Bilder filtern
   $verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
   $info = getImageSize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
   if ($info[0] > 50)
	{
	$info[1] = (50 / $info[0]) * $info[1];
	$info[0] = 50;
	}
    // Bild anzeigen
   echo('<br /><a href=\"$verzeichnis_datei\" target=\"new\"><img src=\"$verzeichnis_datei\" width=\"$info[0]\" height=\"$info[1]\" border=\"0\"></a><br />';
  }
 }
 $i++;
}
closeDir($handle); // Verzeichnis schließen
if($i==0) {
 echo('<br />Inga bilder än');
}


    echo('Mini-<br />bild</td>');
    echo('<td valign="top"><b><a href="detail.php?id=' . $r['id'] . '">');
    echo( $r['name'] );
    echo('</a></b>&nbsp;Värdering här<br />i ' . $r['ort'] . '<br />' . $r['mattider'] . '<br /><class="gen"><i>rekommenderad av ');
    echo( $r['createdby'] );
    echo('</i></span><br /></td>');
    echo('</tr>');
    echo('<tr><td colspan="2" style="border-top: 1px dotted #ccc;"><br /></td></tr>');
  }
}
else
{
    echo('Inga rekommenderade restauranger för närvarande');
}
?>


:wall:
Gruss
Holger

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mi 25.Mai, 2011 19:26
von oxpus
Soweit ich erkennen kann, sollte der Code eigentlich funktionieren...
Ich habe ihn aber mal verbessert:

Code: Alles auswählen

    $result = mysql_query("SELECT * FROM mat_restaurant WHERE ort like ('%" . $term . "%') AND activated='1' ORDER BY created DESC");

	$results = $db->sql_numrows($result);
    if ( $results )
    {
      while ($r = mysql_fetch_array($result))
      {
       $mattider = $r['mattider'];
       switch (intval($mattider))
       {
       	case 1:
       		$r['mattider']="Frukost";
       		break;
       	case 2:
       		$r['mattider']="Lunch";
       		break;
       	case 3:
       		$r['mattider']="Kvällsmat";
       		break;
       	case 4:
       		$r['mattider']="Frukost/Lunch";
       		break;
       	case 5:
       		$r['mattider']="Frukost/Kvällsmat";
       		break;
       	case 6:
       		$r['mattider']="Lunch/Kvällsmat";
       		break;
       	case 7:
		   	$r['mattider']="Frukost/Lunch/Kvällsmat";
			break;
		}

        echo('<tr>');
        echo('<td valign="top">');

    $verzeichnis = 'bilder/'; // Pfad zum Verzeichnis (Hier ist es ein Unterverzeichnis)
    $verzeichnis_id = $verzeichnis . $r['id'] . "/";
    $handle = opendir($verzeichnis_id); // Verzeichnis öffnen
    $i=0;
    while ($i=0 && $datei = readdir($handle)) { // Verzeichnis auslesen
    if ($datei != "." && $datei != ".." && !is_dir($datei)) { // Verzeichnisse filtern
      if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg")) { // Bilder filtern
       $verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
       $info = getimagesize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
       if ($info[0] > 50)
       {
       $info[1] = (50 / $info[0]) * $info[1];
       $info[0] = 50;
       }
        // Bild anzeigen
       echo('<br /><a href="' . $verzeichnis_datei . '" target="new"><img src="' . $verzeichnis_datei . '" width="' . $info[0] . '" height="' . $info[1] . '" border="0" /></a><br />';
      }
    }
    $i++;
    }
    closedir($handle); // Verzeichnis schließen
    if($i==0) {
    echo('<br />Inga bilder än');
    }


        echo('Mini-<br />bild</td>');
        echo('<td valign="top"><b><a href="detail.php?id=' . $r['id'] . '">');
        echo( $r['name'] );
        echo('</a></b>&nbsp;Värdering här<br />i ' . $r['ort'] . '<br />' . $r['mattider'] . '<br /><class="gen"><i>rekommenderad av ');
        echo( $r['createdby'] );
        echo('</i></span><br /></td>');
        echo('</tr>');
        echo('<tr><td colspan="2" style="border-top: 1px dotted #ccc;"><br /></td></tr>');
      }
    }
    else
    {
        echo('Inga rekommenderade restauranger för närvarande');
    }
    ?>
Hinweise dazu:
Wenn du verschiedene "Werte" einer Variablen prüfst und damit unterschiedliche Aktionen auslöst, wäre ein switch() besser und übersichtlicher dafür, anstelle ettliche if() zu notieren.
Auch werden php-Funktionen in der Regel klein geschrieben, nicht mit Großbuchstaben.
Das macht nicht immer jede PHP-Installation mit.

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 26.Mai, 2011 08:36
von Holger
Kriege nur eine weisse Seite! Ich kapier das nicht!

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 26.Mai, 2011 14:25
von Holger
Hm ich habe ja zweimal drin "wenn i=0 ist", gibt es da kein Konflikt?

Code: Alles auswählen

while ($i=0
und

Code: Alles auswählen

if($i==0) {

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 26.Mai, 2011 14:41
von Holger
Oh mann! Hier fehlte eine Klammer! :wall:

Code: Alles auswählen

echo('<br /><a href="' . $verzeichnis_datei . '" target="new"><img src="' . $verzeichnis_datei . '" width="' . $info[0] . '" height="' . $info[1] . '" border="0" /></a><br />';
Danke für die Verbesserungsvorschläge Karsten!

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 26.Mai, 2011 14:57
von Holger
Ich habe jetzt

Code: Alles auswählen

$result = mysql_query("SELECT * FROM mat_restaurant WHERE ort like '%$term%' AND activated='1' ORDER BY created DESC");

if ( $db->sql_numrows($result) > 0 )
{
  while ($r = mysql_fetch_array($result))
  {
	if($r['mattider'] == "1") $r['mattider']="Frukost";
	if($r['mattider'] == "2") $r['mattider']="Lunch";
	if($r['mattider'] == "4") $r['mattider']="Kvällsmat";
	if($r['mattider'] == "3") $r['mattider']="Frukost/Lunch";
	if($r['mattider'] == "5") $r['mattider']="Frukost/Kvällsmat";
	if($r['mattider'] == "6") $r['mattider']="Lunch/Kvällsmat";
	if($r['mattider'] == "7") $r['mattider']="Frukost/Lunch/Kvällsmat";
    echo('<tr>');
    echo('<td>');

	$verzeichnis = "bilder/"; // Pfad zum Verzeichnis (Hier ist es ein Unterverzeichnis)
	$verzeichnis_id = $verzeichnis . $r['id'] . "/";
	$handle = openDir($verzeichnis_id); // Verzeichnis öffnen
	$i=0;
	while ($i<2 && $datei = readDir($handle))
	{ // Verzeichnis auslesen
		if ($datei != "." && $datei != ".." && !is_dir($datei))
		{ // Verzeichnisse filtern
			if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg"))
			{ // Bilder filtern
				$verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
				$info = getImageSize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
				if ($info[0] > 75)
				{
					$info[1] = (75 / $info[0]) * $info[1];
					$info[0] = 75;
				}
				// Bild anzeigen
				echo('<a href="' . $verzeichnis_datei . '" target="new"><img src="' . $verzeichnis_datei . '" width="' . $info[0] . '" height="' . $info[1] . '" border="0" /></a>');
			}
		}
	$i++;
	}
	closeDir($handle); // Verzeichnis schließen
    if($i==0)
    {
    	echo('Inga bilder än');
    }
    echo('</td>');
    echo('<td valign="top"><b><a href="detail.php?id=' . $r['id'] . '">');
    echo( $r['name'] );
    echo('</a></b> i ' . $r['ort'] . '<br />' . $r['mattider'] . '<br /><class="gen"><i>rekommenderat av ');
    echo( $r['createdby'] );
    echo('</i></span><br /></td>');
    echo('</tr>');
    echo('<tr><td colspan="2" style="border-top: 1px dotted #ccc;"><br /></td></tr>');
  }
}
else
{
    echo('Inga rekommenderade restauranger för närvarande');
}
Leider wird mir nur bei ID=1 ein Bild angezeigt, obwohl in bilder/2/ auch ein Bild liegt.
http://www.maskinisten.net/mat/
Irgendwie habe ich einen Fehler in der while?

Macht echt Spass ein bisschen Coding zu lernen.

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 26.Mai, 2011 20:21
von oxpus
Naja, du sagst ja auch $i<2. Somit kann $i negativ, 0 oder 1 sein, um die Bedingung zu erfüllen.
Entweder notierst du also $i<3 oder $i<=2 ;)

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Fr 27.Mai, 2011 08:46
von Holger
Ja, aber i ist ja nur für das durchgehen der Dateien im Ordner. Nicht die ID des Eintrages.
Wenn ich also eine Datei im Ordner habe, dann sollte i<2 doch reichen oder?

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Fr 27.Mai, 2011 18:27
von oxpus
Klar, sorry, da hatte ich falsch geschaut.

Öhm, ich denke, es liegt vielleicht an der Methode, wie du die Datensätze abfragst.
Mit mysql_fetch_array ist das wohl etwas unglücklich, mysql_fetch_assoc wäre da doch wohl etwas besser, da damit der Datensatz als ein eindeutig assoziertes Array in $r abgelegt wird.
Vielleicht ist das schon einmal ein Fehler, da mit mysql_fetch_array ohne Angabe des Ergebnistyps in $r sowohl $r[0] = 'id' als auch $r['id'] = --- enthalten sein kann.
Das führt dann ggf. in der weiteren Auswertung zu Verwerfungen.
Stelle also bitte zunächst von mysql_fetch_array auf mysql_fetch_assoc um, um dieses auszuschliessen.

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mo 30.Mai, 2011 11:01
von Holger
Hm, habe mal in mysql_fetch_assoc geändert.
Ändert nichts. :!:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mo 30.Mai, 2011 16:57
von oxpus
Prüf doch mal, was mit

Code: Alles auswählen

echo $verzeichnis_id;
nach der Zeile

Code: Alles auswählen

       $verzeichnis_id = $verzeichnis . $r['id'] . "/";
raus kommt.
Da müsste dann doch auch /bilder/2/ stehen, sonst wäre hier etwas falsch...

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mo 30.Mai, 2011 17:21
von Holger
Sieht erstmal gut aus!

Wahrscheinlich habe ich einen ganz doofen Fehler gemacht!

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mo 30.Mai, 2011 19:11
von oxpus
Naja, damit haben wir das Debugging gerade erst einmal begonnen ;)

Also:
Das Verzeichnis ist korrekt, kommt nun die Abfrage des Verzeichnisses.
Füge mal ein

Code: Alles auswählen

echo 'Hello World';
nach

Code: Alles auswählen

         if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg"))
         { // Bilder filtern
ein.
Wenn dieses angezeigt wird, hat das Script eine Bilddatei im Verzeichnis gefunden.
Dann wird weiter geprüft, ob die Bildabmessungen ausgelesen werden können:

Code: Alles auswählen

$info = getImageSize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
Und das geht auch nur, wenn das Bild als solches auch von PHP erkannt werden kann.
Du hast dabei .gif, .jpg und .png angegeben, aber ist überhaupt ein solches Bild vorhanden?
Bzw. anders herum gefragt: Gibt es in dem Verzeichnis auch andere Dateien ausser Bilder und das Script findest diese Datei anstelle eines Bildes als erstes?
Dann kann es auch nicht angezeigt werden.
Bedenke:
Das Verzeichnis wird so, wie du das ausliest, in einer ggf. anderen Art und Weise sortiert ausgelesen, als es z. B. unter Windows geschieht!
Daher wäre es ggf. geschickter, $i++; erst dann zu setzen, wenn auch tatsächlich ein Bild vorhanden ist, also die Bedingung

Code: Alles auswählen

if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg"))
auch tatsächlich wahr ist und nicht bereits nach der ersten gefundenen Datei, ausgenommen "." und "..".

Schau dir also mal die allgemeine Logik im Script an und versuche nachzuvollziehen, was ich meine.
Hier wäre dann ein klassischer Gedankenfehler deinerseits enthalten, wenn die vom Script vorausgesetzte "Ordnung" so nicht physisch im Ordner vorhanden wäre ;)

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Di 31.Mai, 2011 08:46
von Holger
oxpus hat geschrieben:Naja, damit haben wir das Debugging gerade erst einmal begonnen ;)
^2
oxpus hat geschrieben:Also:
Das Verzeichnis ist korrekt, kommt nun die Abfrage des Verzeichnisses.
Füge mal ein

Code: Alles auswählen

echo 'Hello World';
nach

Code: Alles auswählen

         if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg"))
         { // Bilder filtern
ein.
Wenn dieses angezeigt wird, hat das Script eine Bilddatei im Verzeichnis gefunden.
Es wird nur "Hello World" bei ID=1 ausgegeben.

Es liegt eine gültige JPG-Datei im Verzeichnis 2. Ich weiss, dass sie gültig ist, weil sie ja in details.php?id=2 angezeigt wird.
Mit dem gleichen Skript.

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Di 31.Mai, 2011 17:28
von oxpus
Liegt neben der Bilddatei noch eine andere Datei in dem Verzeichnis?
Wenn ja, dann dieses bitte mal zum Test entfernen.

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Di 31.Mai, 2011 20:06
von Holger
Nein, nur die Bilddatei!

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Di 31.Mai, 2011 20:14
von oxpus
Hm, führ doch mal ein

Code: Alles auswählen

echo $verzeichnis_datei;
durch. Ob da überhaupt etwas angezeigt wird.

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mi 01.Jun, 2011 10:58
von Holger
Nach

Code: Alles auswählen

			{ // Bilder filtern
				$verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
?

Das gibt wieder nur ein Echo bei id=1

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Mi 01.Jun, 2011 17:26
von oxpus
Es scheint also auch nur ein Datensatz aus der Abfrage zurück zu kommen...
Was steckt denn hinter der SQL-Bedingung

Code: Alles auswählen

WHERE ort like '%$term%'
?
Ist denn im 2. (erwarteten) Datensatz das Feld "ort" auch dem $term entsprechend vorhanden?
Dazu sei zu beachten, dasss in dieser Art und Weise die Groß- und Kleinschreibung berücksichtigt wird.
Ich würde daher diese Bedingung besser so notieren:

Code: Alles auswählen

WHERE lower(ort) like ('%" . strtolower($term) . "%')
?

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Fr 03.Jun, 2011 09:24
von Holger
Oben auf der Seite ist ein Suchfeld. Dort wird "term" eingegeben.
Dazu sei zu beachten, dasss in dieser Art und Weise die Groß- und Kleinschreibung berücksichtigt wird.
Hm, das habe ich so noch nicht erlebt.
Ich habe den Ort "Bissendorf", der Datensatz wird mit "bissendorf" und "Bissendorf" gefunden.

Echt mysteriös das Problem mit den Bildern!

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 09.Jun, 2011 09:10
von Holger
Ich muss das nochmal aufrollen.
Bastele immer noch dran rum ...
Weiterhin wird nur ein einziges Bild angezeigt.
Mit der index.php wird nur das erste Bild (für den Eintrag mit der niedrigsten ID) angezeigt:
http://www.maskinisten.net/mat/index.php
Mit details.php werden alle angezeigt:
http://www.maskinisten.net/mat/detail.php?id=1
http://www.maskinisten.net/mat/detail.php?id=2

In index.php habe ich dies:

Code: Alles auswählen

$result = mysql_query("SELECT * FROM mat_restaurant WHERE ort like '%$term%' AND activated='1' ORDER BY id DESC");

$NumberOfResults=mysql_num_rows($result);
$NumberOfPages=ceil($NumberOfResults/$Limit);

//Create the Navigation bar
$Nav="";
for($i = 1 ; $i <= $NumberOfPages ; $i++) {
	if($i == $page) {
		$Nav .= "<span class=\"nav\">$i</span>&nbsp;";
		}else{
//		$Nav .= "<A HREF=\"index.php?page=" . $i . "&Limit=" . $Limit . "&Sortorder=" . $Sortorder . "&language=" . $language . "\" class=\"nav\">$i</A>&nbsp;";
		$Nav .= "<A HREF=\"index.php?page=" . $i . "&Limit=" . $Limit . "\" class=\"nav\">$i</A>&nbsp;";
	}
}

if ( $db->sql_numrows($result) > 0 )
{
  while ($r = mysql_fetch_assoc($result))
  {
	if($r['mattider'] == "1") $r['mattider']="Frukost";
	if($r['mattider'] == "2") $r['mattider']="Lunch";
	if($r['mattider'] == "4") $r['mattider']="Kvällsmat";
	if($r['mattider'] == "3") $r['mattider']="Frukost/Lunch";
	if($r['mattider'] == "5") $r['mattider']="Frukost/Kvällsmat";
	if($r['mattider'] == "6") $r['mattider']="Lunch/Kvällsmat";
	if($r['mattider'] == "7") $r['mattider']="Frukost/Lunch/Kvällsmat";
    echo('<tr>');
    echo('<td>');

	$verzeichnis = "bilder/"; // Pfad zum Verzeichnis (Hier ist es ein Unterverzeichnis)
	$verzeichnis_id = $verzeichnis . $r['id'] . "/";
	$handle = openDir($verzeichnis_id); // Verzeichnis öffnen
	$i=0;
	while ($i<2 && $datei = readDir($handle))
	{ // Verzeichnis auslesen
		if ($datei != "." && $datei != ".." && !is_dir($datei))
		{ // Verzeichnisse filtern
			if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg"))
			{ // Bilder filtern
				$verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
				$info = getImageSize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
				if ($info[0] > 100)
				{
					$info[1] = (100 / $info[0]) * $info[1];
					$info[0] = 100;
				}
				// Bild anzeigen
				echo('<a href="detail.php?id=' . $r['id'] . '"><img src="' . $verzeichnis_datei . '" width="' . $info[0] . '" height="' . $info[1] . '" border="0" /></a>');
			}
		}
	$i++;
	}
	closeDir($handle); // Verzeichnis schließen
    if($i==0)
    {
    	echo('Inga bilder än');
    }
    echo('</td>');
    echo('<td valign="top" class="gen"><b><a href="detail.php?id=' . $r['id'] . '">');
    echo( $r['name'] );
    echo('</a></b> i ' . $r['ort'] . '<br />' . $r['mattider'] . '<br /><i>rekommenderat av ');
    echo( $r['createdby'] );
    echo('</i><br /></td>');
    echo('<td valign="top">');
	echo rating_bar('' . $r['id'] . '','5','static');
    echo('</td>');
    echo('</tr>');
    echo('<tr><td colspan="3" style="border-top: 1px dotted #ccc;"><br /></td></tr>');
  }
}
else
{
    echo('Inga rekommenderade restauranger för närvarande');
}
$term wird weiter oben mit

Code: Alles auswählen

$term = $_POST['term'];
abgegriffen.
term wird aus einem Suchfeld genommen

Code: Alles auswählen

<input type="text" name="term" />
und mit

Code: Alles auswählen

<form action="index.php" method="post">
dann als Filter eingesetzt.
Das funktioniert auch bestens.

Nur die Bildanzeige nicht.

Ah, aber dieser Teil wird auf index.php noch berücksichtigt (id=16):

Code: Alles auswählen

    if($i==0)
    {
    	echo('Inga bilder än');
    }

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 09.Jun, 2011 10:15
von Holger
Holger hat geschrieben:Ah, aber dieser Teil wird auf index.php noch berücksichtigt (id=16):

Code: Alles auswählen

    if($i==0)
    {
    	echo('Inga bilder än');
    }
Das heisst ja, dass er sieht, dass der Ordner bilder enthält, nur werden sie nicht dargestellt.
Von unten auf index:
ID=1, Bild gefunden, Bild dargestellt - korrekt
ID=2, Bild/Ordner gefunden?, Bild nicht dargestellt
ID=16, kein Bild/Ordner gefunden, Ersatztext wird dargestellt - korrekt
ID=17, Bild/Ordner gefunden?, Bild nicht dargestellt

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Verfasst: Do 09.Jun, 2011 10:41
von Holger
HURRAAAAAAAA!
das i++ war an der falschen Position!
Alt:

Code: Alles auswählen

	while ($i<2 && $datei = readDir($handle))
	{ // Verzeichnis auslesen
		if ($datei != "." && $datei != ".." && !is_dir($datei))
		{ // Verzeichnisse filtern
			if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg"))
			{ // Bilder filtern
				$verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
				$info = getImageSize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
				if ($info[0] > 100)
				{
					$info[1] = (100 / $info[0]) * $info[1];
					$info[0] = 100;
				}
				// Bild anzeigen
				echo('<a href="detail.php?id=' . $r['id'] . '"><img src="' . $verzeichnis_datei . '" width="' . $info[0] . '" height="' . $info[1] . '" border="0" /></a>');
			}
		}
	$i++;
	}
Neu:

Code: Alles auswählen

	while ($i<1 && $datei = readDir($handle))
	{ // Verzeichnis auslesen
		if ($datei != "." && $datei != ".." && !is_dir($datei))
		{ // Verzeichnisse filtern
			if (strstr($datei, ".gif") || strstr($datei, ".png") || strstr($datei, ".jpg"))
			{ // Bilder filtern
				$verzeichnis_datei = $verzeichnis_id . $datei; // Pfad zur aktuellen Datei
				$info = getImageSize($verzeichnis_datei); // Bildinfos ermitteln (Breite, Höhe)
				if ($info[0] > 100)
				{
					$info[1] = (100 / $info[0]) * $info[1];
					$info[0] = 100;
				}
				// Bild anzeigen
				echo('<a href="detail.php?id=' . $r['id'] . '"><img src="' . $verzeichnis_datei . '" width="' . $info[0] . '" height="' . $info[1] . '" border="0" /></a>');
				$i++;
			}
		}
	}