Text aus DB in "ImageFlow" zu Bild laden

Nappi

Mitglied
Hallo zusammen

Ich hocke seit Stunden an einem Problem und kann es nicht lösen"

Also ich habe mir Imageflow gezogen und möchte nun ganz gerne beim klicken auf ein Bild in das sich öffnende fenstereinen Text aus der MySql Datenbank einfügen.

so weit bekomm ich das ja auch hin - leider steht dann aber in dem Fenster alles was in der entsprechenden row der DB ist und nicht nur das dem Bild zugehörende.

Kann mir da jemand helfen?

das ist die DB abfrage mit der ausbabe

PHP:
<?php
require_once ('config.php');
 
$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

$db_sel = mysql_select_db( MYSQL_DATENBANK )
   or die("Auswahl der Datenbank fehlgeschlagen");

$sql = 'SELECT * FROM news WHERE upload_file = $?';              // hier sollte der Bildname des angeklickten Bildes mit dem DB eintrag verglichen werden

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}

echo '<table border="0">';
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
  echo '<tr>';
  echo '<td rowspan="2"><img src="'. $zeile['upload_file'] . '" /></td>';
  echo '<td>'. $zeile['upload_name'] . '</td></tr>';
  echo '<tr><td>'. $zeile['upload_description'] . '</td>';

  echo '</tr>';

echo '</table>';

}

?>

hier der Link zu Imageflow http://imageflow.finnrudolph.de/

vielen dank im voraus

Edit : Hatte einen Fehler im Script - den ich ausgebessert habe - der aber nichts mir dem eigendlichen Problem zu tun hatte
 
Zuletzt bearbeitet von einem Moderator:
Du hast Probleme mit Queries in PHP? -> PHP MySQL Debug Queries

PHP:
$sql = 'SELECT * FROM news WHERE news_title = $?';
Du bindest dein titel nicht ins Query. ANstelle von $? kannst du die Varable setzen die den Namen beinhaltet. Am besten noch in '
PHP:
$sql = "SELECT * FROM news WHERE news_title = '{$title}';";
 
Das $? habe ich nur als Platzhalter hin geschrieben!

Was hier hin gehört ist der Name des Bildes das angeklickt wurde - aber ich weis nicht wie ich das bewerkstelligen soll!

Ich Imageflow sind mehrere Bilder in einem "Karuesl" wenn ich auf eines Klicke öffnet sich ein kleines Fenster in dem das Bild angezeigt wird. Soweit so gut - nun möchte ich das sich auch ein Text in diesem Fenster befindet!

Das ganze zu bewerkstelligen ist nicht mein Problem das habe ich schon - nur die zuweisung der texte zu den richtigen Bildern die macht mir Probleme.

Wenn ich auf das bild Klicke dann soll nur der Text für genau dieses Bild aus der DB gelesen werden.

ich hoffe ich hab mich halbwegs verständlich ausgedrückt denn mir raucht nur noch der Kopf :)

Danke für die Antwort

Nappi
 
Wie sieht deine Datebankstruktur aus?
Ich würde in die Datenbank id, bild, title, text machen. Dann wird der Bildname gespeichert, falls du einen Inhalt hinzufügst.

Bei der Ausgabe kannst du dann nur den Titel und Text ausgeben, bei dem der Dateiname des Bildes gleich der in der Datenbank ist.
Gruß
Matze

Wobei ich das jetzt nicht als elegante Lösung beschreiben würde. Ich kanns mir nochmal anschauen.
 
na ja im großen und ganzen ist es ja so wie du schreibst

upload_file = bildname

upload_name = überschrift

upload_description = text

nun soll der Bildname in der DB mit dem angeklickten Bild verglichen werden und dann Bild - Überschrift und Text ausgegeben werden

klingt total einfach - komm dennoch nicht dahinter :/

LG NAppi
 
So ich hab jetzt ein bischen rumgebastelt

Also die variable wird mir jetzt übergeben problem - am Monitor wird mir nur ein Bild angezeigt und das Fenster das sich beim anklicken öffnet bleibt leer

Bilder in Imageflow laden

PHP:
<?php
require_once ('config.php');

$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

$db_sel = mysql_select_db(MYSQL_DATENBANK)
   or die("Auswahl der Datenbank fehlgeschlagen");

$sql = 'SELECT * FROM upload';

$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}
while ($zeile = mysql_fetch_array($db_erg))
{

		echo '<div id="myImageFlow" class="imageflow">';
		echo	"\n".'<img src="'. $zeile['upload_file'] . '" longdesc="window.php?id='. $zeile['upload_file'] . '" alt = "'. $zeile['upload_file'] . '"/></div>';
		
}
echo '<script type="text/javascript" src="imageflow.js"></script>';
?>

Variable übernehmen, Bild sowie Text aus DB lesen und ausgeben

PHP:
<?php
require_once ('config.php');

    if(isset($_GET['id']))  
      {     $load_id =$_GET['id'];
 
$db_link = mysql_connect (MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT);

$db_sel = mysql_select_db( MYSQL_DATENBANK )
   or die("Auswahl der Datenbank fehlgeschlagen");

$sql = 'SELECT * FROM upload WHERE upload_file = $load_id';             


$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysql_error());
}

echo '<table border="0">';
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
  echo '<tr>';
  echo '<td rowspan="2"><img src="'. $zeile['upload_file'] . '" /></td>';
  echo '<td>'. $zeile['upload_name'] . '</td></tr>';
  echo '<tr><td>'. $zeile['upload_description'] . '</td>';

  echo '</tr>';

echo '</table>';

}
    }
?>

Wo habe ich jetzt den Fehler gemacht?

Danke für Eure Hilfe im Voraus

Nappi
 
Danke yaslaw für deine Antwort

Leider würde ich beim ersten Link von dir nicht schlau aus dem was du mir damit sagen wolltest und bei diesem jetzt auch nicht - sorry :/

Durch " while " läuft es doch durch und wird auch wiederholt - und im Quelltext kommen auch alle Bilder vor - nur angezeigt werden sie nicht - zumindest nicht so wie vorgesehen.

Sichtbar ist nur ein Bild, von allen die ich an Imageflow übergebe.

Mein 2. Problem ist das im Fenster das sich öffnet wenn man auf ein Bild Klickt nichts befindet - es kommt auch keine Fehlermeldung so das ich einen Anhaltspunkt hätte.

Nappi
 
ersetze
PHP:
$sql = 'SELECT * FROM upload WHERE upload_file = $load_id';
durch
PHP:
$sql = "SELECT * FROM upload WHERE upload_file = '$load_id'";
//oder
$sql = 'SELECT * FROM upload WHERE upload_file = "'.$load_id.'"';
//oder
$sql = "SELECT * FROM upload WHERE upload_file = '{$load_id}'";
//oder
$sql = "SELECT * FROM upload WHERE upload_file = '". $load_id ."'";

1) dein String mit einfachen ' wird nicht geparst.
2) der Vergleichstring selber muss in ' gesetzt werden.

!Ich habe dir ein Tutorial verlinkt. Wenn du dieses durchgearbeuitet hättest, würdest du sehen was nicht geht!
Zudem habe ich dich bereits einmal aufgefordert es durchzugehen um selber den Fehler zu finden - aber fragen scheint einfacher zu sein.

Kein Weiterer Kommentar dazu, ich klinke mich hier aus der Diskusion aus.
Tschüss.
 
Nun das habe ich ja auch gemacht!

PHP:
$sql = "SELECT * FROM upload WHERE upload_file = '{$load_id}'";

In jeder von dir beschriebenen Art und weis - ändert aber leider nichts.

Das porblem ist nach wie vor das selbe.

Sorry ich wollte dich nicht verärgern - und ich bin echt an jedem Tut interesiert und arbeite sie auch durch.

In diesem Fall hat es noch nicht zum Ziel geführt.

Nappi
 
Zurück