MySql auslesen & PHP

Malaxo

Erfahrenes Mitglied
ich gebs auf klappt einfach nicht bei mir

habe ein paar Datensätze in der Datenbank immer Name + Preis gehören zusammen. Will die darstellen alles kein problem aber sollte sie nicht untereinander sondern nebeneinander darstellen also immer 3 nebeneinander

PHP:
<?

$result = mysql_query("SELECT name, preis FROM produkt");
while($row = mysql_fetch_object($result)){

$name = $row -> name;
$preis = $row -> preis;

?>
<tr><td align="center">BILD</td></tr>
<tr><td align="left"><font color="#000000" face="verdana,arial" size="-1"><? echo $name ?></font></td></tr>
<tr><td align="left"><font color="#FF0033" face="verdana,arial" size="-1"><b><? echo $preis ?></b></font></td>
</tr>
<?

}
?>

Mir ist bewusst das ich 3 Variablen brauche und 3 spalten um das nebeneinander zu haben. Brings aber nicht fertig.

Tabellen erweitern etc. weiss ich auch aber hab nicht viel aufgeschriben extra....



Weill ich selbst nicht verstehe wie erklären hier ein bildchen evt. hilfts

und was GANZ GENAU macht mysql_fetch_object


sonst hier weiter lesen:

http://www.source-board.ch/board/index.php?showtopic=2035&s=
 
Die Formatierung eines Dokuments ist nicht Aufgabe von PHP. Wende dich mit deinem Anliegen mal an das CSS-Forum.

Ürbigens solltest du auf die Einhaltung der Regeln der deutschen Rechtschreibung achten, denn dein Beitrag ist nur schwer zu verstehen.
 
es geht doch hier um den PHP Code für eine erstellung von Tabellen in 3 Spalten mit jeweils Preis&Name als 1 quasi wie im bild... jedoch wen man aus einer Datenbank etwas ausliest erscheint es in einer Spalte und nicht nebeneinander. Dies mus mit einer schlaufe & for / if oder sonst was durch PHP gelöst werden welchen wert in welche Spalte kommt hat doch nichts mit CSS zu tun.

Name Name2 Name3
Preis Preis2 Preis3

Name4
Preis4 .........
.
.
.
.
immer nach 3mal 2 zusammengehörten Datensätzen sollte eine neue Zeile beginnen.

hat doch nichts mit CSS zu tun?!
 
Du scheinst dich in PHP schon besser auszukennen deswegen nur ein paar kleine Hinweise (weil ich sowas auch schon mal hatte ;) ):

  • Mache für jedes Element eine eigene Tabelle <table>
  • Um alle nebeneinander zu kriegen verwendest du den Style display:inline glaub ich ^^
  • Anhand der Breite kannst du nun nur 3 nebeneinander kriegen oder du musst eine Extra-Variable mitlaufen lassen im While

Viel Spaß,
Zod.
 
Du zaehlst mit jedem Schleifendurchlauf eine Hilfsvariable hoch und modulierst sie mit 3:

PHP:
// ...
$i = 0;
while($row = mysql_fetch_object($result)) {
    if ($i % 3 == 0)
        echo "<tr>";
    echo "<td>Objekt " . $row->name . ": " . $row->preis . "</td>\n";
    if ($i % 3 == 2)
        echo "</tr>";
    }
    $i++;
}
// ...

Siehe Modulo auf de.wikipedia.org.
 
Danke jungs.... mit dem Modulo hat es so weit mal geklappt... Hab das % einfach voll vergässen :-(

PHP:
$i = 0; 
while($row = mysql_fetch_object($result)) { 
    if ($i % 3 == 0) 
        echo "<tr>"; 
    echo "<td>Objekt " . $row->name . ": " . $row->preis . "</td>\n"; 
    if ($i % 3 == 2) 
        echo "</tr>"; 
    } 
    $i++; 
}

Du hast die klammer warscheinlich vergessen?

Jedoch zeigt es mir nun nur noch die 1... 4.... 7... etc. an alle dazwischen nicht mehr :confused: Muss da noch was ins 1. If... ?

wen ich aber die Zeile

PHP:
<td>Objekt " . $row->name . "<br>" . $row->preis . "</td>

noch 2 mal hinzu schreibe damits 3 sind bekomm ich einfach 3mal die 1.... 3mal die 4.... etc.
Ich verstehe den Code und auch die zusammenhänge jedoch keinen plan wie es weiter geht momentan bin ich zu verwirrt wegen diesem problem seit 2 tagen immer gleich weit
 
Zuletzt bearbeitet:
na dann du hattest 1 klammer zu viel in deinem Code

PHP:
$i = 0; 
while($row = mysql_fetch_object($result)) { 
    if ($i % 3 == 0) 
        echo "<tr>"; 
    echo "<td>Objekt " . $row->name . ": " . $row->preis . "</td>\n"; 
    if ($i % 3 == 2) 
        echo "</tr>"; 
    } 
    $i++; 
}

die Fette klammer muss weg... Jetzt klappts...

Ich weiss bin kein PHP crack aber jeder fängt mal klein an

trozdem danke viel mals für deine Hilfe
 
neues problem

PHP:
echo "<td width=\"30%\"><HIER BILD AUS DER DATENBANK><br> " . $row->name . "<br>" . $row->preis . "</td>\n";

in der Datenbank hab ich nun den Pfad hinein gespeichert ganz normal Varchar.

bilder/bild1.jpg

wie krieg ich das jetzt da rein?


Spaltenname der Datenbank für die Bilder
$row ->bild


mit <img ....> hab ichs nicht hin bekommen

NEED HELP
 
Zurück