Werde wahnsinnig: Bild aus Ordner auslesen

Für die wirklich Harten, die alles selber machen.
Antworten
Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Mi 25.Mai, 2011 16:04

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
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Mi 25.Mai, 2011 18:26

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.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Do 26.Mai, 2011 07:36

Kriege nur eine weisse Seite! Ich kapier das nicht!
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Do 26.Mai, 2011 13:25

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) {
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Do 26.Mai, 2011 13:41

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!
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Do 26.Mai, 2011 13:57

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.
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Do 26.Mai, 2011 19:21

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 ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Fr 27.Mai, 2011 07:46

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?
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Fr 27.Mai, 2011 17:27

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.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Mo 30.Mai, 2011 10:01

Hm, habe mal in mysql_fetch_assoc geändert.
Ändert nichts. :!:
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Mo 30.Mai, 2011 15:57

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...
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Mo 30.Mai, 2011 16:21

Sieht erstmal gut aus!

Wahrscheinlich habe ich einen ganz doofen Fehler gemacht!
Dateianhänge
verzeichnis.jpg
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Mo 30.Mai, 2011 18:11

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 ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Di 31.Mai, 2011 07:46

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.
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Di 31.Mai, 2011 16:28

Liegt neben der Bilddatei noch eine andere Datei in dem Verzeichnis?
Wenn ja, dann dieses bitte mal zum Test entfernen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Di 31.Mai, 2011 19:06

Nein, nur die Bilddatei!
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Di 31.Mai, 2011 19:14

Hm, führ doch mal ein

Code: Alles auswählen

echo $verzeichnis_datei;
durch. Ob da überhaupt etwas angezeigt wird.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Mi 01.Jun, 2011 09:58

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
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29107
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von oxpus » Mi 01.Jun, 2011 16:26

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) . "%')
?
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Fr 03.Jun, 2011 08:24

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!
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Do 09.Jun, 2011 08:10

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');
    }
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Do 09.Jun, 2011 09:15

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
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Holger
User
User
Beiträge: 2253
Registriert: Mi 17.Mär, 2004 18:09

Re: Werde wahnsinnig: Bild aus Ordner auslesen

Beitrag von Holger » Do 09.Jun, 2011 09:41

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++;
			}
		}
	}
Real men don’t back up, they learn data recovery. ;-)
http://www.mysqldumper.de
http://www.mysqldumper.se

Antworten