2 Daten nebeneinander aus einer datenbank auslesen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
album
anklicken
anordnung
auslese
befehl
beschreiben
bild
code
datum
einsetzen
ergebnis
exportieren
leer code
not
null
schleife
tabelle
test
verbindung
-
Hallo
ich habe vor ein bilderalbum auf meiner homepage zu machen.
die bilder sollen wie folgt angezeigt werden: Bild1 Bild2
Bild3 Bild4
.........
ich habe aber keine anung wie das gehen soll.
mein script bis jetzt:<?php $AlbumID = $_GET['Album']; $UserID = $_SESSION['user_id']; $sql = "SELECT ". " * ". "FROM ". "Bilder ". "WHERE ". "(UserID like '$UserID' AND Album like '$AlbumID')"; $result = mysql_query ($sql); if (mysql_num_rows($result) > 0) { while ($data = mysql_fetch_array ($result)) { $BilderZahl = $data['Bilder']; echo "$BilderZahl"; }else{ echo "Das Album ist leer.<br><br>"; } ?>
Ich hoffe ihr könnt mir helfen.
LG:ChatVz
Beitrag zuletzt geändert: 29.3.2009 1:29:33 von chatvz -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hallo,
wie sieht den deine Datenbank aus? Kannst Du mal den Aufbau beschreiben.
Am besten phpmyadmin aufrufen, die Tabelle anklicken und dann davon ein Bild machen, oder sich die Tabelle exportieren lassen
und dann nur die Tabellenbeschreibung posten.
Momentan gibst Du ja nur die Anzahl der Bilder aus. Das wäre mit der dem Befehl
SELECT count(*) FROM Bilder WHERE UserID like '$UserID' AND Album like '$AlbumID')";
wobei ich eventuell das like durch ein = ersetzten würde. Weiß war nicht ob es wirklich etwas schneller und
sicherer ist, aber eventuell. Außer Du eilst in den Variablen Dinge wie "user%" oder "album%" speichern
SELECT count(*) FROM Bilder WHERE UserID = '$UserID' AND Album = '$AlbumID')";
Hier ein Beispiel:
Meine Tabelle:
CREATE TABLE IF NOT EXISTS `test_table_bilder` ( `id` int(11) NOT NULL auto_increment, `album` varchar(20) NOT NULL, `user` varchar(20) NOT NULL, `bild` varchar(30) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
Meine Seite:
<html> <head><title>Test</title></test> <body> <?php $link = mysql_connect('SERVERNAME', 'USERNAME', 'PASSWORT'); if (!$link) { die('keine Verbindung möglich: ' . mysql_error()); } else { echo 'Verbindung erfolgreich'; $sql = 'SELECT * FROM `DATENBANKNAME`.`test_table_bilder`'; $ergebnis = mysql_query($sql); if (!$ergebnis) { die('Ungültige Abfrage: ' . mysql_error()); } else { while($row = mysql_fetch_object($ergebnis)) { echo "<br>"; echo $row->id; echo "<br>"; echo $row->album; echo "<br>"; echo $row->user; echo "<br>"; echo $row->bild; echo "<br>"; } } mysql_close($link); } ?> </body> </html>
Die Ausgabe
Verbindung erfolgreich 1 Urlaub2009 user1 bild1.jpg
Gruß
Beitrag zuletzt geändert: 29.3.2009 9:42:28 von urlaub-buchen -
wie das geht weiß ich aber ich hab keine ahnung wie er die daten dann nebeneinander ausgibt (es soll nur aus der spalte "Bilder" ausgelesen werden und dann so aussehen)
1 2
3 4
5 6
.........
das auslesen funktioniert schon aber die anordnung nicht.
Beitrag zuletzt geändert: 29.3.2009 10:34:15 von chatvz -
Hi,
wenn ich dich richtig verstanden habe, gibt er die Bilder schon aus, aber alle nebeneinander. Dann musst du einfach folgendes am Ende der While-Schleife einfügen:
´$i++; if ($i == 2) { echo "<br />"; $i = 0;
Dann setzt er alle 2 Zeilen einen Zeilenumbruch!
MfG
Steffen
-
wo genau muss ich den das einsetzen?
-
<html> <head><title>Test</title></test> <body> <?php $link = mysql_connect('SERVERNAME', 'USERNAME', 'PASSWORT'); if (!$link) { die('keine Verbindung möglich: ' . mysql_error()); } else { echo 'Verbindung erfolgreich'; $sql = 'SELECT * FROM `DATENBANKNAME`.`test_table_bilder`'; $ergebnis = mysql_query($sql); if (!$ergebnis) { die('Ungültige Abfrage: ' . mysql_error()); } else { while($row = mysql_fetch_object($ergebnis)) { echo "<br>"; echo $row->id; echo "<br>"; echo $row->album; echo "<br>"; echo $row->user; echo "<br>"; echo $row->bild; $i++; if(!$i%2) { echo '<br />'; } } } mysql_close($link); } ?> </body> </html>
-
mein script siet so aus:
<?php $AlbumID = $_GET['Album']; $UserID = $_SESSION['user_id']; $sql = "SELECT ". " * ". "FROM ". "Bilder ". "WHERE ". "(UserID like '$UserID' AND Album like '$AlbumID' AND geloescht like '0')"; $ergebnis = mysql_query($sql); if (!$ergebnis) { die('Ungültige Abfrage: ' . mysql_error()); } else { while($row = mysql_fetch_object($ergebnis)) { echo $row->Bilder; $i++; if(!$i%2) { echo '<br>'; } } } ?>
die bildnamen werden immernoch untereinander angezeigt und es wird nirgends ein zusätzlicher zeilenumbruch gemacht.
is das so richtig eingesetzt?? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage