php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.03.2009, 16:34  
Benutzer
 
Registriert seit: 21.03.2009
Beiträge: 36
Octavian befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Datenbank abfrage geordnet anzeigen

Hallo, ich dachte immer ich kann HTML, aber irgendwie werd ich nicht schlüssig.

ich möchte 9 Bilder aus meiner Datenbank lesen. diese Werden zufällig angezeigt. Damit keine Doppelt kommen, wollte ich sie alle mit einer Anfrage anzeigen lassen. Leider bekomme ich aber das Schema nicht hin:

Bild 3 Bild 1 Bild 2
Bild 4 Bild 6 Bild 8
Bild 5 Bild 7 Bild 9

zum Beispiel.

Wie kann ich denn den Code umformulieren, damit das mit einer Abfrage funktioniert?

PHP-Code:
<?php
session_start
();
include 
'php/connect.inc.php';
?>
<table width="600" cellpadding="0" cellspacing="0" border="0">


<?
$abfrage 
"SELECT dateiname, kommentar FROM picture ORDER BY RAND(NOW()) LIMIT 3";
$ergebnis mysql_query($abfrage);
while(
$row mysql_fetch_array($ergebnis))
   {
   echo 
"<tr><td><img src=\"" $row['dateiname'] . "\" alt=\"Bildchen\" width=\"200\" height=\"150\"/></td>";
   echo 
"$row->kommentar";
   }
 
while(
$row mysql_fetch_object($ergebnis))
   {
   echo 
"$row->kommentar";
   }


?>


</table>
<a href="?seite=galerie/upload" title="bilderupload"><div class="galerie"></div></a>
Es muss doch mit der Ausgabe echo "<tr><td><img src=\"" . $row['dateiname'] . "\" alt=\"Bildchen\" width=\"200\" height=\"150\"/></td>"; möglich sin die Tabellen so zu ordnen, oder?

Momentan werden sie nur untereinander angezeigt und sind auf 3 beschränkt.

Danke für eure Hilfe, ganz lieben Gruß aus dem Norden!
Octavian ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.03.2009, 16:38  
Erfahrener Benutzer
 
Benutzerbild von Lumio
 
Registriert seit: 12.10.2007
Beiträge: 149
PHP-Kenntnisse:
Fortgeschritten
Lumio ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hä? Wie willst du sie jetzt ordnen bzw nach was?
Und
Code:
ORDER BY RAND(NOW())
macht irgendwie keinen Sinn.
RAND gibt einen Wert zurück zwischen 0 und 1. Schau dir das mal an: MySQL :: MySQL 5.0 Reference Manual :: 11.5.2 Mathematical Functions

Wenn du das Bild nach Dateinamen ordnen willst machst du
Code:
ORDER BY dateiname
//edit...
ups... scheinbar geht das doch. Aber es führt nicht ganz zu der Ausgabe.

Naja was du machen kannst ist, die bekommenen Bilder in einen Array zu speichern und dann mit sort oder ksort zu ordnen.
Also beispielsweise
PHP-Code:
//SQL-Abfrage
while ($rowmysql_fetch_assoc($result))
   
$array[$row['dateiname']] = $row['kommentar'];
ksort($array);
foreach (
$array as $datei => $kommentar)
{
    
//und jetzt kannst du $datei und $kommentar verwenden.

__________________
www.citrosaft.com

Geändert von Lumio (21.03.2009 um 16:44 Uhr).
Lumio ist offline  
Alt 21.03.2009, 16:45  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
diese Werden zufällig angezeigt
@Octavian:

Tipp 1: Gar keine Tabelle, sondern Image-Floating und ein äußeres Blockelement benutzen, in das nur 3 Images nebeneinander passen
Tipp 2: Im Wiki mal den Gruppenbruch-Artikel durchlesen
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 21.03.2009, 17:18  
Benutzer
 
Registriert seit: 21.03.2009
Beiträge: 36
Octavian befindet sich auf einem aufstrebenden Ast
Standard

Danke für eure schnelle Hilfe.
Ich habe deine Änderung einmal ausprobiert @Lumio. Ich versuche gerade noch nachzuvolluziehen wie da was funktioniert xD, auf jden Fall ist es eine Art des Gruppenbruchs von nikosch auf der wiki Seite. Ich habe sie mir angeschaut und werde gleich einmal veruschen es einzubinden.. ich hoffe es gelingt mir ^^
denn bei deinem skript Lumio, bekomme ich folgende Fehlemeldungen:

Warning: ksort() expects parameter 1 to be array, null given in /Applications/xampp/xamppfiles/htdocs/page/php/galerie/galerie.php on line 20

Warning: Invalid argument supplied for foreach() in /Applications/xampp/xamppfiles/htdocs/page/php/galerie/galerie.php on line 21

und ich habe

while ($row= mysql_fetch_assoc($result))

in

while ($row= mysql_fetch_assoc($ergebnis))

angepasst. aber leider funktioniert das nicht.

Und bei der rand(Now()) sache, wollte ich keine geordnete Ausgabe, sondern einfach eine zufallswidergabe, weil ich mir dadurch eine kleine galerie zusammenstellen wollte, die nur auf einer seite zu sehen ist, ohne blätterfunktion.

und images floating ist in verbindung mit css, oder?
Octavian ist offline  
Alt 21.03.2009, 17:20  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
und images floating ist in verbindung mit css, oder?
Ja. Und eine sehr schnelle und prägnante Lösung, sofern die Images halbwegs einheitliche Größen haben. Was ja so zu sein scheint.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 21.03.2009, 17:55  
Benutzer
 
Registriert seit: 21.03.2009
Beiträge: 36
Octavian befindet sich auf einem aufstrebenden Ast
Standard

und wie realisiere ich das mit den containern? wie kann ich denn die Ausgabe der Tabelle in 3 x3 Käschen einbringen? Oder ist es ein div container, der die bilder selbst ordnen kann?

Geändert von Octavian (21.03.2009 um 18:09 Uhr).
Octavian ist offline  
Alt 21.03.2009, 18:13  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ausgehend davon:
Zitat:
<img src=\"" . $row['dateiname'] . "\" alt=\"Bildchen\" width=\"200\" height=\"150\"/>
geht es (grob) einfach so (ungetestet):

Im Head Style / CSS-File
Code:
.pictureBlock {
  width:610px;
  }
.pictureBlock img {
  float:left;
  width:200px;
  width:150px;
  margin:2px;
  }
PHP-Code:
<div class = "pictureBlock">
<?php
for ($i 0$i 9$i++) { 
  
$rowmysql_fetch_assoc ($result)
  echo 
'<img src="' $row['dateiname'] . '" alt="Bildchen" />';
  }
?>
</div>
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (21.03.2009 um 18:17 Uhr).
nikosch ist offline  
Alt 21.03.2009, 19:04  
Benutzer
 
Registriert seit: 21.03.2009
Beiträge: 36
Octavian befindet sich auf einem aufstrebenden Ast
Standard

Hey super, die Schleife verstehe ich. ich habe result mit ergebnis ausgetausch und den Stylsheet Code in meien Haupt css gepackt, die ja von meiner index datei eingebunden wird, welche wiederum diese galerie inlcudet.

Aber er gibt mir den Fehler bei dem echo aus.

PHP-Code:
?>
<div class = "pictureBlock">
<?php
for ($i 0$i 9$i++) { 
  
$rowmysql_fetch_assoc($ergebnis)
   echo 
"<img src=\"" $row['dateiname'] . "\" alt=\"Bildchen\" />";
  }
?>
</div>
Fehler:
Parse error: syntax error, unexpected T_ECHO in /Applications/xampp/xamppfiles/htdocs/page/php/galerie/galerie.php on line 25

Ich habe gegooglet und bin nur auf das Ergebnis gekommen, das es an den code vorher liegen müsste. aber viele Foren kommen meist nie zum wahren Ergebnis ^^
Ich habe alles unabhängige weg gelassen. aber der Fehler ist noch da.

des weiteren habe ich es mit meinem main.container gelöst. Da ich alle php Seiten in einen container generell include, war es möglich so viele Bilder wie möglich einzubinden. Immer drei nebeneinander =) aber ich vermute da ich es mit em style, dass es nur bei meiner Auflösung so ist?

Nichts desto trotz würde ich trotzdem gerne deine Variante ausprobieren @ nikosch.
Octavian ist offline  
Alt 21.03.2009, 19:18  
Erfahrener Benutzer
 
Registriert seit: 14.08.2008
Beiträge: 157
Hexe befindet sich auf einem aufstrebenden Ast
Standard

In der Zeile davor fehlt das Semikolon.
Hexe ist offline  
Alt 21.03.2009, 19:49  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.989
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Stimmt, sorry. Hatte ich nachträglich ergänzt.
Korrektur:
Zitat:
for ($i = 0; $i < 9; $i++) {
$row= mysql_fetch_assoc($ergebnis);
echo "<img src=\"" . $row['dateiname'] . "\" alt=\"Bildchen\" />";
}
@Octavian: Das Prinzip funktioniert auch für 1000 Bilder. Solange sichergestellt ist, dass die Summer der Breiten und Margins der Bilder immer nur 3 Bilder pro gesetzter Breite des umgebenden Elements zuläßt.

Zitat:
aber ich vermute da ich es mit em style
Kommt daruf an. Entweder Du gibst die Bilder auch als em-Breite an (natürlich werden Bilder nicht wirklich hübsch skaliert). Oder Du verwendest ein zusätzliches outer div mit px-basierte Breitenangabe. Dann entsteht natürlich Weißraum in größerer Skalierung, weil ein em-basiertes Lauout dann ja größere Pixelbreite erzeugt.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--

Geändert von nikosch (21.03.2009 um 19:53 Uhr).
nikosch ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Formular Problem (Datenbank Abfrage) halekin PHP Tipps 2009 2 14.01.2009 12:45
OOP - Datenbank Abfrage ... 7Style PHP Tipps 2008 5 13.02.2008 13:28
Ergebnis aus Abfrage in Datenbank einfügen BBieniek PHP Tipps 2008 1 11.01.2008 02:51
Datenbank abfrage mal gehts mal nicht themonk PHP Tipps 2005-2 8 04.10.2005 15:34
Daten aus Datenbank auslesen und in PHP-Seite anzeigen PHP Tipps 2005-2 1 28.08.2005 20:16
Datenbank abfrage Thunderstorm PHP Tipps 2005-2 3 22.08.2005 19:07
datenbank abfrage PHP Tipps 2005-2 1 21.08.2005 17:33
datenbank Abfrage in Var schreiben web2 PHP Tipps 2005-2 3 22.07.2005 12:59
doppelte Einträge aus Datenbank anzeigen Lia PHP Tipps 2005 9 24.05.2005 14:49
Abfrage einer Datenbank PHP Tipps 2005 18 15.05.2005 13:15
[Erledigt] MYSQL Abfrage (mit Optimierter Datenbank) -&gt; PhP Datenbanken 2 02.03.2005 18:50
Größe einer Datenbank und Datentypen anzeigen Klaus Datenbanken 2 18.12.2004 16:21
bilder aus ordner lesen und geordnet anzeigen Beitragsarchiv 9 01.12.2004 10:06
[Erledigt] Bildlink aus Datenbank als Bild auf der Homepage anzeigen.. PHP Tipps 2004 5 25.07.2004 20:08
[Erledigt] Bildurl aus Datenbank auf der Homepage als Bild anzeigen HTML, Usability und Barrierefreiheit 4 25.07.2004 20:05

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datenbankabfrage foreach, xampp php datenbankabfrage, php datenbankabfrage beispiel, div container bei datenbankabfrage, php datenbank zufall keine doppelten ausgabe, nur 3 ergebnisse nebeneinander in tabelle php, php datenbankabfrage ergebnis ausgeben, datenbankabfrage als resultat zur html seit ausgeben, foreach php datenbankabfrage, xampp php für datenbankabfrage testen, geordnete php ausgabe, php foreach datenbankabfrage, datenbankabfrage nur einmal anzeigen, while datenbank abfrage, datenbank abfragen anzeigen, mysql geordnete ausgabe, php datenbankabfrage mit foreach, daumen abfrage bilder, php ergebnis datenbankabfrage nebeneinander, datenbank ergebnisse nebeneinander ausgeben php

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:30 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum