MySQL Ausgabe mit LIMIT innerhalb einer Tabelle?

preko

Erfahrenes Mitglied
Hi,

ich habe eine Seite, auf der Namen von Mitgliedern eines Vereines aufgelistet sind mit der Verlinkung auf weitergehende Daten zu dieser Person, wie z.B. Anschrift, Telefon, etc., die dann jeweils in einem PopUp Fenster eingeblendet werden, sobald der Link angeklickt wird. So weit so gut.

Nun möchte ich, dass die Namen nach 20 Einträgen stoppen (links auf der Webseite) und ab 21 aufwärts rechts auf der Seite eingeblendet werden. Es wäre schade die Seite nicht komplett in der Breite zu nutzen. Ich habe überlegt eine Tabelle mit zwei Spalten zu erstellen, in der in der ersten Spalte links die o. g. ersten 20 Einträge auftauchen und in der rechten Spalte die weiteren (ab 21 aufwärts). Jedoch weiss ich leider keinen Lösungsansatz, wie ich die Trennung vollziehen soll. Mittels LIMIT kann ich zwar nach dem 20sten Eintrag stoppen, doch wie stelle ich ab dem 21 Eintrag in der rechten Spalte dar?

Hat jemand vielleicht einen Lösungsvorschlag oder eine bessere Idee wie ich es umsetzen kann?

Vielleich hilft ein Blick auf das Script (noch ohne Tabelleneinteilung):

PHP:
 <?php
include ("pass.php");
$a = 1;
$db = @mysql_connect($host, $user, $password)
	or die ("Verbindung mit MySQL-Server fehlgeschlagen!");
@mysql_select_db($database, $db)
	or die ("Verbindung mit Datenbank fehlgeschlagen!");
$sql_query = "SELECT 
            `id`,
            `vorname`, 
            `name`
      FROM 
            `mitglieder`
      ORDER BY
            name ASC
    "; 
  if( !$result = mysql_query($sql_query, $db) ) { 
    echo "<p><strong>Fehler ".mysql_errno($db)."</strong><br />\nFehler-Ausgabe:<strong>".mysql_error($db)."</strong>"; 
    exit; 
  } 
  while( $row = mysql_fetch_array($result, MYSQL_ASSOC) ) {  	 
    echo "<center><table width='100%' border='0' cellpadding='2' cellspacing='2'><tr>";
    echo "<td width='15'>".$a++."</td>";    
    echo '<td><a href="javascript:PopUp(\'mitgliederabfrage.php?id='.$row['id'].'\')">'.$row['name'].'</a>,<a href="javascript:PopUp(\'mitgliederabfrage.php?id='.$row['id'].'\')">'.$row['vorname'];    
    echo "</td></tr></table></center>"; 
  }
mysql_close($db);
?>
 
Schau dir mal die LIMIT Funktion von mySQL genauer an.

LIMIT START,STOP
(also bei dir dann "LIMIT 21,50" wenn 50 dein letzter Eintrag ist).

sers!
 
Schau dir mal die LIMIT Funktion von mySQL genauer an.

LIMIT START,STOP
(also bei dir dann "LIMIT 21,50" wenn 50 dein letzter Eintrag ist).

sers!

Ich denke, das hat er schon verstanden...

Sein Problem ist, wie er eine Tabelle (mit allen tags <tr><td>...) erzeugen soll, die nach dem alle erwünschten Einträge LINKS erzeugt wurden, umbricht und dann rechts weiter macht.

Nun da hätte ich eine Empfehlung.

Du musst zwei Abfragen machen: einmal LIMIT 0,20 und einmal 21,40.

Das ganze lädst du in Objekte und frägst sie abwechselnd ab (MODULO-Operation)

auf Syntax pfeif ich jetzt - ich muss weiter...
for(i=1; i<=50; i++)
{
count = 1

if(count % 2 != 0)
{
while(daten1=mysql_fetch_object(abfrag1))
{
/*und dann erzeugen*/
count++;
break; //wichtig, sonst macht er alle durch!
}
}
else
{
while(daten2=mysql_fetch_object(abfrag2))
{
/*und dann erzeugen*/
count++;
break; //wichtig, sonst macht er alle durch!
}
}
}


Ungetestet, aber ich denke es funktioniert...

cu shutdown
 
Lass mal nachdenken ...

mehrdimensionales Array und dann so :
PHP:
$i = 0;

$sql = SELECT * FROM table LIMIT 0,20
$result = mysql_query($sql)
while($array = mysql_fetch_assoc($result)
{
$html[$i][1] = $array[name]
$i++
}

$i = 0

$sql = SELECT * FROM table LIMIT 21,20
$result = mysql_query($sql);
while($array = mysql_fetch_assoc($result)
{
$html[$i][2] = $array[name]
$i++
}

table

foreach($html as $value)
echo '<tr><td>'.$value[1].'</td><td>'.$value[2].'</td></tr>';

Syntaktisch am A**** aber passt
 
Zurück