Maina
Hey.
Ich wusste nicht, nach was ich suchen soll...
Ich hab eine MySQL Ausgabe, die mehrere Datensätze ausgibt, und ich möchte jetzt, dass nach z.B. 4 Datensätzen eine neue Zeile angefangen wird, in denen weiter die Datensätze ausgegeben werden.
Wäre für 'ne schnelle Hilfe dankbar (:
lg
Sidney
Ich gehe mal davon aus, dass du über ein mysql_fetch_row in Verbindung mit einer while-Schleife arbeitest - aber egal wie du es realisierst, mach dir doch einfach einen Hilfscounter und setze den ab einer bestimmten Durchlaufszahl wieder auf 0
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
|
<?
// Initialisierung des Counters
$c=0;
// Deine Query (ich vermute mal, dass es so oder so ähnlich aussieht)
$res = "SELECT * FROM table WHERE id ORDER BY id ASC";
while($row = mysql_fetch_row($res)) {
$c++;
// Ausgabe der Row
echo $row[1]; // oder welche Spalte auch immer dein Content ist
echo " "; // als Abstand
if($c==4)
{ echo "<br />"; }
// alternativ kannst du natürlich auch \n verwenden
// row end
}
?>
|
|
Das dürfte reichen um zu testen, ob das Skript funktioniert.
Danach sind natürlich sämtliche sonstigen Code-Modifikationen möglich, seien es Sätze die du ausgibst oder was auch immer ^.~
Maina
Klappt nicht =& Bin mal wieder zu blöd dafür.
| php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
|
<?php
include('config.inc.php');
// Wie heißt die übernommene Variable?
$c=0;
// Aus der Datenbank holen
$sql = mysql_query("SELECT * FROM pferde WHERE pferdestat = 'schulpferd'");
// Ausgeben
while($row=mysql_fetch_assoc($sql)){
// Ausgabe der Row
echo "<img src='http://web52.server10.greatweb.de/spzmares/pferde/vorschau_$row[id].jpg'><br>
<a href='steckbrief_1_w.php?id=$row[id]'>$row[name]</a><br>
$row[age]<br>
$row[rasse]<br>"; // oder welche Spalte auch immer dein Content ist
echo " "; // als Abstand
if($c==4)
{ echo "<br />"; }
// alternativ kannst du natürlich auch \n verwenden
// row end
}
?> |
|
Sidney
| php: |
1:
2:
3:
4:
5:
|
if($c==4)
{
echo "<br />";
$c=0;
} |
|
Sorry, der Counter muss natürlich wieder auf Null gesetzt werden^^ Ich weiß ja nicht, wie du meine MySql-daten ausgibst, ich weiß ja nicht, wie deine Felder und die Datenbank strukturiert sind, also musst du schon noch deine eigenen Tabellenverbindungen angeben, sonst kanns natürlich nicht klappen.
Sidney
Gib mal den Quelltext plz
Sidney
hey,
du musst in deinem Code noch zwischen Zeile 26 und 27
setzen. Außerdem kann es nicht funktionieren, wenn du selbst nach jeder Zeile n Zeilenumbruch setzt.
Wenn du die ersten vier Datensätze in einer Zeile ausgegeben haben willst, solltest du vlt mit Div-Containern arbeiten.
Maina
Ähm... Sid... ich wills so ausgeben lassen:
& Mordi, red deutsch. Das ich das Buch durchhabe, heißt nicht, dass ichs auch kann!
Maina
Das ist mir klar - aber wie soll ichs einsetzen?
Sidney
| Zitat: |
Original von Mordred
Modulo?
<klugscheiß>
<br /> und /n sind nicht das selbe. <br /> erzeugt einen Sichtbaren Zeilenbruch und /n einen Zeilenbruch im Quellcode
ist ein geschütztes Leerzeichen (erfolgt also unter KEINEN Umständen ein Umbruch an dieser Stelle.. Also echo " ";
</klugscheiß>
Beispiel zum Modulo:
if($x % 4 == 0) {
$x ist durch 4 Teilbar somit 4
}
ganze lässt sich dann noch verfeinern.. |
Mordred, das is mir auch klar, aber bei manchen Dingen isses einfach so, dass man die evtl nicht weitergeben will, weil andere mit ein wenig nachdenken selbst drauf kommen würden (Nix für ungut Maina, war nicht böse gemeint).
Es steht ja letzten Endes jedem frei, wie er arbeitet...
Maina
| Zitat: |
Original von Epona
man hexe du pflaume oo du hast gekonnt meinen post ignoriert. wenn du das nich inner tabell hast sondern einfach so und da noch zeilenumbrüche is es doch keinw under das die untereinander ausgegebn werdn und nich 4 nebeneinander. das musst du per tabelle machn ^^ und mordi hat recht. wenn x durch 4 teilbar is dann machst du ein </tr><tr>. so einfach so glänzend ^^ |
ich hab ihn nich ignoriert, ich hab nich gewusst, was ich damit anfangen sollte

mit tabelle hab ichs auch probiert, ging nich - hab aber jetzt 'ne lösung gefunden