Bilder und Namen aus Verzeichnis

  • #1
M

maria2

Mitglied
Themenersteller
Dabei seit
11.10.2006
Beiträge
6
Reaktionspunkte
0
Hallo zusammen. Bin jetzt wieder mal an meine Grenzen gekommen und hoffe das ihr mir helfen könnt. HAb kein entsprechendes Tut oder Howto gefunden.

Meine Frage wie kann man die ermittelten Bildernamen aus dem Verzeichnis dem Namen zuordnen der aus einer Datenbank Tabelle kommt, damit die Bilder passend zum Namen über Seiten ausgegeben werden können ???

Bitte helft mir doch etwas auf die Spünge.

Vielen Grüsse aus Berlin
 
  • #2
maria2 schrieb:
.... wie kann man die ermittelten Bildernamen aus dem Verzeichnis dem Namen zuordnen der aus einer Datenbank Tabelle kommt, damit die Bilder passend zum Namen über Seiten ausgegeben werden können ???.....

Sorry, kann ja sein das ich manchmal ein bissle langsam denke, aber kannste den Satz für mich nochma im Klartext wiederholen? :?
 
  • #3
Ja gern.

Also bei mir ist das so nich:

Ich lege einen neuen Namen in der Tabelle an zb.Maik. Mit dem Anlegen wird ein Bild hochgeladen in ein Verzeichnis und erhält mithilfe des PhpCodes den erwähnten Namen und eine eindeutige Nummer damit das Bild immer zur Tabellenzeile passt,dachte ich. Das hochgeladene Bild heißt dann zb.Maik_6.jpg.
Jedesmal wenn ein User sein Passbild hochladen will. werden die Bilder in dem Verzeichnis gespeichert und auch ausgeben in einer langen Liste passend zur Tabellenzeile.

Damit die Liste nicht zu lang wird versuch ich nun zu blättern. Das blättern geht dank deines Codes. Grosses Lob !
Aber ich kriegs nicht hin die Bildernamen dem Tabelleneintrag zuzuordnen, weil das Verzeichnis nur einmal ausgelesen wird,wenn ich das richtig verstanden habe.
Wo könnte ich da ansetzen?
 
  • #4
maria2 schrieb:
Wo könnte ich da ansetzen?

Indem du mal deinen Ansatz in Form eines Quellcodes hier postest ;)

Nachtrag:

Was spricht eigentlich dagegen den KOMPLETTEN Pfad zum Bild in die DB zu schreiben und die Sache von einer anderen Seite her anpacken ;)

- Hole Userdaten aus der Tabelle
- erstelle Paging mit der Gesamtzahl der User
- gebe pro Seite z.B. 10 Userinfos mit Bild (Link steht ja in der Tabelle) aus

würde sich doch eher anbieten als erst ein Verzeichnis einzulesen und dann die Daten aus der DB zu holen ;)
 
  • #5
Poste morgen wie ich deinen Nachtrag umsetzen würde. Vielleicht gehts ja dann.
 
  • #6
  • #7
Wer wird denn gleich aufgeben wollen, ich hab mal schnell ein Beispiel gebaut :°



An der Paging-Klasse ändert sich nix, der ist es egal wo die Zahlen herkommen, Datenbank oder eingelesenes Verzeichnis.
Es brauch nur die Ausgabe angepasst werden.

In meinem Beispiel würde es so aussehen:
Code:
<h2 align=center>Beispiel zum Paging</h2>
<?php
require_once(db_config.php);
require_once(paging.php);

// Link zum blättern
$link = index.php?paging=1;
// max. Anzahl pro Anzeige
$max = 3;

/**
* Anzahl der Einträge
*/
$sql = SELECT count(id) as id FROM tbl_user;
$refID = mysql_query($sql);
$count = mysql_fetch_row($refID);
$count = $count[0];

$limitstart = intval( $_REQUEST[limitstart] );
$limit = $limit ? $limit : $max ;
if( $limitstart == $count ) $limitstart -= $limit;
if( $count <= $limit ) $limitstart = 0;

/**
* Betroffene Datensätze holen und ausgeben
*/
$sql = SELECT * FROM tbl_user LIMIT . $limitstart ., . $limit;
$refID = mysql_query($sql);
?>
<table align=center width=500px cellpadding=0 cellspacing=1>
	<tr>
		<th width=100px align=center>Bild</th>
		<th width=200px align=left>Name, Vorname</th>
		<th width=200px align=left>Anschrift</th>
	</tr>
<?php
while($row = mysql_fetch_array($refID, MYSQL_BOTH)) {
?>
	<tr>
		<td valign=top>
			<img src=<?php echo $row[bild]; ?> width=100% />
		</td>
		<td valign=top>
		<?php echo $row[nachname]., .$row[vorname]; ?>
		</td>
		<td valign=top>
		<?php echo $row[strasse].<br />.$row[plz]. .$row[ort]; ?>
		</td>
	</tr>
	<tr>
		<td colspan=4><hr /></td>
	</tr>
<?php
}
?>
	<tr>
		<td colspan=4>
<?php
/**
* Ab hier ist das Paging
*/
$pageNav = new PageNav( $count, $limitstart, $limit );
// Anzeige Ergebnis von - bis
echo $pageNav->writePagesCounter().<br />;
// Anzeige Paging
echo $pageNav->writePagesLinks($link).<br />;
?>
		</td>
	</tr>
</table>
 
  • #8
Geil danke und gleich mit Download. Da gibt sich jemand richtig Mühe. Musste lachen als ich die Donald Bilder gesehen hab. Echt süss.Bin entzückt. :D

Sag mal ich versuch jetzt seit wie ich gerade festgestellt habe 4 Stunden ,daraus 2 Spalten zu machen. Bitte erklär mir doch die For Schleife die du geschrieben hast oder besser wie man das dann hier macht. Es ist zum :| :knuppel2: Mäuse melken. :)
Passiert ist entweder die Bilder kommen mehrfach oder Blättern ging nicht mehr oder wie jetzt er geht nicht in die For Schleife rein.

Nich das du denkst ich mach hier nichts, nich :)

Meine Gedanken sind Ich glaub ja das mit der Forschleife ist so:

Code:
<?php
function Ausgabe(){
// Link zum blättern
global $conf;
$link = index.php?paging=1;
// max. Anzahl pro Anzeige
$max = 4;

/**
* Anzahl der Einträge
*/
$sql = SELECT count(id) as id FROM tbl_user;
$refID = mysql_query($sql);
$count = mysql_fetch_row($refID);
$count = $count[0];

$limitstart = intval( $_REQUEST[limitstart] );
$limit = $limit ? $limit : $max ;
if( $limitstart == $count ) $limitstart -= $limit;
if( $count <= $limit ) $limitstart = 0;

/**
* Betroffene Datensätze holen und ausgeben
*/
$sql = SELECT * FROM tbl_user LIMIT . $limitstart ., . $limit;
$refID = mysql_query($sql);
$eimer.=->
<table align=center width=500px cellpadding=0 cellspacing=1 border=>
	<tr>
		<th width=100px align=center colspan=2>Bildspalte 1</th>
		<th width=100px align=center colspan=2>Bildspalte 2</th>
	</tr>';
while($row = mysql_fetch_array($refID, MYSQL_BOTH)) {
	$eimer.=-><tr><td valign=top><img src='.$row[bild].' /></td>
		<td valign=top>'.$row[strasse].' <br>'.$row[plz].'->.$row[ort].'
		</td>	</tr>	';	
		}	
/**
* Jetzt Ausgabe in 2 Spalten 
*/	
		#i ist 0
		#i ist kleiner als 0+4; 4+4, .....
		#start um 4 erhoehen
	for($i = $limitstart; $i < ($limitstart + $limit); $i++) {
		//brich ab und gehe zum naechsten	
		if(!$refID[$i]) break; 
	# true = i in der Forschleife >0 und i geteilt durch 2 dasselbe wie 0 ergibt
	# dann beginne mit einer neuen zeile 
		if($i > 0 && $i % 2 == 0) $eimer.=-></tr><tr>s';
		$eimer.=-><td width=50%><p align=center><img src='.$row[bild].' /></p></td>';	
	}
	$eimer.=-><tr>
		<td colspan=4>';
$pageNav = new PageNav( $count, $limitstart, $limit );
// Anzeige Ergebnis von - bis
$eimer.= $pageNav->writePagesCounter().'<br />';
// Anzeige Paging
$eimer.= $pageNav->writePagesLinks($link).'<br />

		</td>
	</tr>
</table>


<br /><a href=paging.rar>Hier</a> kann Beispiel downgelodet werden.';
return $eimer;
}
print Ausgabe();
?>

Bitte Bitte helf mir mal noch mal. Ausserhalb der While Schleife geht er auch nicht in die Forschleife.
 
  • #9
Bitte erklär mir doch die For Schleife die du geschrieben hast oder besser wie man das dann hier macht
Bei mir gibbets gar keine for-Schleife ;)

Sorry, wie meinst du 2 Spalten, 2 Datensätze nebeneinander oder wie?

Wenn ja, dann z.B. so:



Code:
<style type=text/css>
.data {
	border:1px solid #000000;
}
.name {
	margin-bottom:5px;
	margin-top:5px;
	font-weight:bold;
}
.adress {
	font-style:italic;
}
</style>

<h2 align=center>Beispiel zum Paging</h2>
<?php
require_once(db_config.php);
require_once(paging.php);

// Link zum blättern
$link = index2.php?paging=1;
// max. Anzahl pro Anzeige
$max = 4;

/**
* Erstellt die Ausgabe für einen Datensatz
*/
function Prototype($data=false) {
	# Wenn keine Daten kommen, gehts gleich wieder zurück
	if(!$data) return false;
	$re =->
	<table align=center width=350px style=table-layout:fixed>
		<tr>
			<td width=100px valign=top>
				<img src='. $data[bild] .' width=100% />
			</td>
			<td width=250px valign=top>
				<p class=name>'. $data[nachname] .',->. $data[vorname] .'</p>
				<p class=adress>'. $data[strasse] .'<br />'. $data[plz] .'->.$data[ort] .'</p>
			</div>
		</tr>
	</table>
	';
	return $re;
}
/**
* Anzahl der Einträge
*/
$sql = SELECT count(id) as id FROM tbl_user;
$refID = mysql_query($sql);
$count = mysql_fetch_row($refID);
$count = $count[0];

$limitstart = intval( $_REQUEST[limitstart] );
$limit = $limit ? $limit : $max ;
if( $limitstart == $count ) $limitstart -= $limit;
if( $count <= $limit ) $limitstart = 0;

/**
* Betroffene Datensätze holen und ausgeben
*/
$sql = SELECT * FROM tbl_user LIMIT . $limitstart ., . $limit;
$refID = mysql_query($sql);
?>
<table align=center width=700px cellpadding=1 cellspacing=1>
	<tr>
<?php
$i = 0;
while($row = mysql_fetch_array($refID, MYSQL_BOTH)) {
		echo ($i % 2 == 0 && $i > 0) ?-></tr><tr>' :->';
?>
		<td class=data valign=top width=350px>
			<?php echo Prototype($row); ?>
		</td>
<?php
	++$i;
}
?>
	</tr>
	<tr>
		<td colspan=2>
<?php
/**
* Ab hier ist das Paging
*/
$pageNav = new PageNav( $count, $limitstart, $limit );
// Anzeige Ergebnis von - bis
echo $pageNav->writePagesCounter().<br />;
// Anzeige Paging
echo $pageNav->writePagesLinks($link).<br />;
?>
		</td>
	</tr>
</table>
 
  • #10
Sorry das ich mich erst wieder melde. Möcht moch mal sehr bedanken. Danke Danke. :) Hat mir viel Zeit erspart. Wär ich nicht drauf gekommen die Tabelle =) zu verschachteln.
Weiter so. :laola:
 
Thema:

Bilder und Namen aus Verzeichnis

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben