Archiv verlassen und diese Seite im Standarddesign anzeigen : hmm *knotenimkopf*
space4092 08-03-2004, 04:44 habe ne kleine frage und vieleicht weiss ja jemand was.
ich möchte ne kleine datenbank machen wo man fotos hochladen kann usw, ist ja auch kein problem, bis jetzt hat alles geklappt was ich machen wollte, jedoch wenn ich die fotos anzeigen lasse durch :
$events = mysql_query( "SELECT * FROM foto WHERE event='".$aevent."' ");
while ($eventz = mysql_fetch_array($events)) {
$event = $eventz["event"];
$jahr = $eventz["jahr"];
$picurl = $eventz["fotourl"];
include("templates/anzeigen-foto.php");
und dann anzeigen lasse :
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<td width="10%">
<a href="<? echo $picurl; ?>" target="blank"><img src="<? echo $picurl; ?>" width="50" height="70"></a>
</td>
</table>
werden die bilder ja nur untereinander angezeigt, wäre bei ca 30 fotos etwas unübersichtlich, aber so möchte ich das auch nicht, wie bekommt man das hin das durch die abfrage die fotos sowohl nebeneinander als auch untereinander angezeigt werden sagen wir 6 fotos in jeder reihe und 5 reihen. wäre um hilfe dankbar, habe schon im forum danach gesucht, jedoch nichts gefunden. mir fällt einfach nichts ein wie ich das machen könnte, wenn man die daten erst alle abrufen könnte und dann anzeigen wäre das kein prob aber wenn das geht wie ? wäre um hilfe dankbar.
danke im vorraus.
mfg
kill_bill 08-03-2004, 09:32 generell macht man sowas mit <tr> und </tr> (sollte bestandteil einer jeden tabelle sein).
mit einem zähler kannst du dann bestimmen, wann diese tags ausgegeben werden sollen ...;)
schmalle 08-03-2004, 09:48 ich würde dir mal sehr dringend einen html kurs empfehlen :) hier ist der anfang: www.teamone.de/selfhtml <-- einfach mal lesen
MaxP0W3R 08-03-2004, 10:02 Original geschrieben von kill_bill
generell macht man sowas mit <tr> und </tr> (sollte bestandteil einer jeden tabelle sein).
LOL
Zur ihrer eigenen Sicherheit und vor allem die euer Mitsurfer empfehlen wir dringendst das benutzen der <tr > tags
space4092 08-03-2004, 16:58 da möchte wohl jemand schlau sein, oder versteht das problem einfach nicht, denn wenn ich die datei in die schleife einfüge gehen die fotos entweder nach rechts oder nach links, ich brauche aber 6 in einer reihe und 6 reihen.
uhu, welch böse worte!
ist dann aber denke ich wirklich ein HTML-Problem, oder?
Poste mal den HTML-Code.
Wenns doch ein PHP-Problem ist, dann bitte HTML-Code wie er ist und wie er soll.
//eine Standarttabelle sieht so ungefähr aus:
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td></td>
</tr>
</table>
//6x rechts 6x nach unten
<table border="2" cellspacing="2" cellpadding="1">
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
So jetzt mach dir mal gedanken wie du dein Script dazu bekommst solche Tabellen aufzubauen.
Tip:
if(anzahl == 6)
{
</tr>
<tr valign="top">
//anzahl = reset;
}
space4092 08-03-2004, 17:13 hier der code, aber es geht nunmal nur entweder oder ? untereinander oder nebeneinander.....
<td width=3%>
<tr>
<td>
<a href="<? echo $picurl; ?>" target="blank"><img src="<? echo $picurl; ?>" width="50" height="70"></a>
</td>
</tr>
</td>
mfg
space4092 08-03-2004, 17:16 oder nach 6 einfach ein <br> und fertig, aber was soll ich da zählen lassen und wie ?
hatte ich nicht irgendwas von HTML-Code gesagt? das sieht mir eher wie PHP und nem echo mit HTML drin aus. :(
ob du ein br machst, oder ein zeile zu, zeile auf. ist das so ein großer unterschied?
//nur zur Info
<td width=3%>
//<td width...> erwartet hier ein </td> und kein <tr>
<tr>
<td>
<a href="<? echo $picurl; ?>" target="blank"><img src="<? echo $picurl; ?>" width="50" height="70"></a>
</td>
</tr>
</td>
Startwert halt $count = "0";
zählen in der Schleife
z.B.
$count++;
space4092 08-03-2004, 18:05 hmm danke für den anstoß mit dem counten, habe einfach noch ne schleife eingefügt die bis 6 zählt.
$i = $i+1;
if ($i == 6) {
include("templates/anzeigen-foto2.php");
$i = "0";
}
else
{
include("templates/anzeigen-foto.php");
}
und foto2 ist eine mit nem <br> drin :)
danke leute....
mfg
btw: seltsames templatesystem hast du ;)
space4092 08-03-2004, 18:09 warum ? hauptsache funzt..
bin halt ein kleiner blutiger anfänger...
müsstest mal mein login sehen :p
*fg*
kill_bill 08-03-2004, 18:12 aber den tipp von marc75 (das mit diesen komischen <tr>´s) hast du dir zu herzen genommen, oder ???;)
space4092 08-03-2004, 18:19 nö ich fands einfacher einfach noch nen <br> in das 2te template reinzuschreiben :)
warum welchen unterschied macht das ?
schmalle 08-03-2004, 18:21 Original geschrieben von space4092
warum welchen unterschied macht das ? ist diese frage ernst gemeint?
kill_bill 08-03-2004, 18:23 Original geschrieben von space4092
nö ich fands einfacher einfach noch nen <br> in das 2te template reinzuschreiben :)
warum welchen unterschied macht das ?
:confused:
dann zeig uns doch mal, was das ergebnis deines scriptes ist (also die html - ausgabe als quelltext), denn ich vermute mal ganz stark, dass du einen fehlerhaften tabellenaufbau hast.
schmalle 08-03-2004, 18:27 Original geschrieben von kill_bill
einen fehlerhaften tabellenaufbau hast. das halte ich für eine starke untertreibung :D
space4092 08-03-2004, 18:42 hier :p
<td width=3%>
<tr>
<td>
<a href="fotos/test/karate1.jpg" target="blank"><img src="fotos/test/karate1.jpg" width="50" height="70"></a>
</td>
</tr>
</td>
<td width=3%>
<tr>
<td>
<a href="fotos/test/karate2.jpg" target="blank"><img src="fotos/test/karate2.jpg" width="50" height="70"></a>
</td>
</tr>
</td>
<td width=3%>
<tr>
<td>
<a href="fotos/test/karate4.jpg" target="blank"><img src="fotos/test/karate4.jpg" width="50" height="70"></a>
</td>
</tr>
</td>
<td width=3%>
<tr>
<td>
<a href="fotos/test/karate3.jpg" target="blank"><img src="fotos/test/karate3.jpg" width="50" height="70"></a>
</td>
</tr>
</td>
<td width=3%>
<tr>
<td>
<a href="fotos/test/karate5.jpg" target="blank"><img src="fotos/test/karate5.jpg" width="50" height="70"></a>
</td>
</tr>
</td>
<td width=3%>
<tr>
<td>
<a href="fotos/test/karate6.jpg" target="blank"><img src="fotos/test/karate6.jpg" width="50" height="70"></a>
</td>
</tr>
</td>
<br>
<td width=3%>
<tr>
<td>
<a href="fotos/test/karate7.jpg" target="blank"><img src="fotos/test/karate7.jpg" width="50" height="70"></a>
</td>
</tr>
</td>
witz ?
Damian1984 08-03-2004, 18:47 aua
so werden Tabelen aufgebaut:
<table> Tabelle öffnen
<tr> Neue Zeile
<td> neue Spalte
</td> Spalte schliessen
</tr> Zeile schliessen
</table> tabelle schliessen
kill_bill 08-03-2004, 18:48 Dann versuche doch mal, deinen Quellcode so umzubauen, dass diese Regeln befolgt werden:
//eine Standarttabelle sieht so ungefähr aus:
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td></td>
</tr>
</table>
//6x rechts 6x nach unten
<table border="2" cellspacing="2" cellpadding="1">
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr valign="top">
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
space4092 08-03-2004, 20:17 habbich gemacht, habe aber noch anderes problem,
wenn ich jetzt die jahre abrufen möchte, zeigt er mir ja für jeden eintrag das jahr an, ich möchte aber jedes jahr nur einmal da stehen haben, wie gehtn das ?
ich habe das mal probiert mit 2 abfrageschleifen, aber wenn die eine abgerufen wurde und die nächste gestartet ist das ergebnis ja weg, hatte das ungefähr so
if($jahr != $old_jahr) {
include("test.php");
}
jedoch wie gesagt so ging das nicht, wäre um hilfe dankbar.
mfg
habbich gemacht, habe aber noch anderes problem, wers glaubt :D
Dein neues Problem verstehe ich net so ganz.
space4092 08-03-2004, 20:29 also hier mal die dateien,
<?
$do = $_GET['do'];
$do = "go";
if ($do != "") {
$events = mysql_query( "SELECT * FROM foto");
while ($eventz = mysql_fetch_array($events)) {
$old_event = $eventz["event"];
$old_jahr = $eventz["jahr"];
$old_picurl = $eventz["fotourl"];
$old_id = $eventz["id"];
include("templates/anzeigen-jahr.php");
}
}
?>
anzeigen-jahr ist dann
<tr width=3%>
<td>
<a href="index.php?jahr=<? echo $old_jahr ?>"><? echo $old_jahr; ?><br></a>
</td>
</tr>
jetzt bekomme ich wenn ich sagen wir für jahr 2004 10 fotos habe, 10 mal den das jahr nochmals verlinkt, ich möchte den aber nur einmal das jahr da stehen haben....
mfg
schreib doch einfach jedes mal, wenn du ein jahr ausgegeben hast, das jahr in ein array und vor der nächsten ausgabe prüfst du, ob das jahr schon im array ist. wenn ja dann nichts, wenn nein dann von vorne.
Dein Templatesystem hat den Sinn von Templates gänzlich verfehlt :)
space4092 08-03-2004, 20:37 wie mache ich das mit "das jahr in ein array scheiben" ?
damit habe ich glaube ich noch nicht gearbeitet ....
danke schonma
dann solltest du dir mal ein paar grundlagen ansehen...
space4092 08-03-2004, 21:15 irgendwie klappt das mit dem array net ....
siehe :
if ($do != "") {
$events = mysql_query( "SELECT * FROM foto");
while ($eventz = mysql_fetch_array($events)) {
$old_event = $eventz["event"];
$array1[] = $eventz["jahr"];
$old_picurl = $eventz["fotourl"];
$old_id = $eventz["id"];
}
if($array1[0] == $array1[1]) {
array_pop($array1[]);
}
else {
include("templates/anzeigen-jahr.php");
}
}
help, büdde
mfg
kannst du mir das was du da machst mal in pseudocode übersetzen? also mal ausformulieren, warum du welche variable wo zuweist.
space4092 08-03-2004, 21:22 if ($do != "") {
$events = mysql_query( "SELECT * FROM foto");
while ($eventz = mysql_fetch_array($events)) {
$old_event = $eventz["event"];
$array1[] = $eventz["jahr"]; // Damit das jahr bei der 2ten abfrage gespeichert bleibt komt es in ein array.
$old_picurl = $eventz["fotourl"];
$old_id = $eventz["id"];
}
if($array1[0] == $array1[1]) { // das wenn bei der abfrage nicht jedes jahr 10 mal angezeigt wird sondern wenn es doppelt ist das array geleert wird und die schleife fortgesetzt....
array_pop($array1[]);
}
else {
include("templates/anzeigen-jahr.php");
}
}
das array geleert wird
warum willst du das array leeren. hätte zur folge, dass beim 1. mal 2004 das datum angezeigt wir, beim zweiten mal nicht, dafür beim dritten mal wieder, weils ja geleert wurde das array.
die allergrößte frage ist allerdings warum
$array1[0] == $array1[1]
du vergleichst den 0. index mit dem 1. warum??? bringt das irgendwas? vorallem ist das 1. doch gar nicht immer gesetzt?
ich gib dir mal nochmal nen tipp: in_array()
Und jetzt versuch halt nochmal das was ich eben geschrieben habe 1:1 zu übersetzen.
space4092 08-03-2004, 21:50 verstehe da was mit der array funktion nicht so ganz bin schon die ganze zeit die tut´s am durchsuchen hilft aber auch nicht viel weiter,
wenn ich das so mache :
$events = mysql_query( "SELECT * FROM foto");
while ($eventz = mysql_fetch_array($events)) {
$old_event = $eventz["event"];
$oldjahr[] = $eventz["jahr"];
$old_picurl = $eventz["fotourl"];
$old_id = $eventz["id"];
}
dann wird ja die daten in $oldjahr[1], $oldjahr[2], 3 usw. geschrieben, wie
aber soll ich dann mit der in_array alle durchsuchen ?
möglichkeit wäre so :
if(in_array(2004,$oldjahr[1] {
echo "gefunden";
}
else {echo "nicht gefunden"; }
jedoch wäre das ja nur möglich wenn in der ersten abfrage das jahr 2004
in das array eingetragen worden wurde, was jedoch wenn man fotos über
50 jahre eintragen möchte ? dann müsste man doch das von $oldjahr[1]
bis $oldjahr[50] machen jedoch nur wenn jedes jahr ein foto hätte.... was
ist wenn jedes jahr mehrere 1000 fotos haben ?
oder habe ich was falsch verstanden ?
mfg
die überprüfung war ja schon richtig. Bis auf die fehlende Klammer.
du willst also jedesmal das datum in das array speichern? Warum? brauchst doch nur speichern, wenns noch nicht drin ist.
space4092 09-03-2004, 01:46 ja aber wie soll mir das denn in meinem fall weiterhelfen ?
$events = mysql_query( "SELECT * FROM foto");
while ($eventz = mysql_fetch_array($events)) {
$old_event = $eventz["event"];
$jahr = $eventz["jahr"];
$old_picurl = $eventz["fotourl"];
$old_id = $eventz["id"];
}
If(!isset($oldjahr[1])){
$oldjahr[1] = $jahr;
}
elseif(in_array($jahr,$oldjahr[1])) {
}
wie soll das gehen das er die arrays fortführt und dann die jahre ausließt ohne das diese doppelt sind ?
mfg
socket_shock 09-03-2004, 03:55 Hi,
waaaarum muss man newbies immer so zur Lösung führen?
Bei den meißten die in dieses Thread gepostet haben wei ich ja
das sie eine richtige Lösung des Problems kennen, aber bei dem ein oder anderen der sich hier mit-kustig macht bin ich mir da nicht so sicher
*böseguck*
Aber mal im Ernst.. *g*
Problem 1
echo('<table blah sülz border null und so><tr>');
$spaltenzähler = 0;
for($i=1;$i <= $anzahl_bilder;$i++)
{
if($spaltenzähler == 6)
{
echo('</tr><tr>');
$spaltenzähler = 0;
}
echo('<td>mein Kram</td>');
$spaltenzähler ++;
}
echo('</tr></table>');
sollte so funzen.....
Problem 2
if(!in_array($diesesjahr,$allejahre))
{
$allejahre[] = $diesesjahr;
}
echo('Hier ist jetzt jedes Jahr nur einmal drinn:<br><pre>'.print_r($allejahre,true).'</pre>');
sollte auch zu machen sein.....
[ Frage nicht was der newbie für Dich tun kann, sondern was Du für den newbie tun kannst ] ;-)
Bei den meißten die in dieses Thread gepostet haben wei ich ja das sie eine richtige Lösung des Problems kennen, aber bei dem ein oder anderen der sich hier mit-kustig macht bin ich mir da nicht so sicher sehe ich ähnlich.
waaaarum muss man newbies immer so zur Lösung führen?du meinst die "ich zeig dir den Weg, aber nicht das Ziel"-Methode?
Dazu suche ich dir gerne nen aktuellen Thread.
|