2016-06-21 11 views
1

Im Grunde mache ich digitale Beschilderung und ich versuche, Namen aus einer MySQL-Datenbank auf eine PHP-Seite gezogen werden. Im Moment ist alles in einer Spalte zentriert, aber ich möchte, dass die Ergebnisse in zwei Spalten nebeneinander liegen. Wie kann ich das machen?Wie erstellt man eine PHP-Seite mit zwei "Spaltenbereichen"?

$sql = "SELECT * FROM donor WHERE DonationAmount = 5000 AND Category = '1' or DonationAmount = 5000 AND Category IS NULL ORDER BY LastName ASC"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    while($row = mysqli_fetch_assoc($result)) { 

      // test if the DisplayName field is empty or not 
      if(empty($row['DisplayName'])) 
      { 
       // it's empty! 
        if(empty($row['FirstName'])){ 
         echo $row['LastName']. "<br>"; 
        } 

        else{ 
         echo $row["LastName"]. ", " . $row["FirstName"]. "<br>"; 
        } 

      }else{ 
       // Do stuff with the field 
        echo $row["DisplayName"]. "<br>"; 
      } 

    } 
} else { 

} 

Grundsätzlich möchte ich diese Daten auf zwei Spalten statt 1 einzelne Seite verteilt werden.

+0

Können Sie angeben, wie die Ausgabe sein sollte? – fucethebads

+0

So sieht es derzeit aus: http://imgur.com/bj17wjv - Ich möchte, dass die Betragsüberschrift zentriert bleibt, aber die Namen in dieser Kategorie müssen sich über zwei Spalten erstrecken: –

+0

, also müssen Sie div und/oder umschlage Tags, um Ihren Ausgang zu stylen. das ist eher eine frage zu html/css und nicht zu php ... – fucethebads

Antwort

0

Sie können Tabellen verwenden und die Zeilen zählen, um festzustellen, ob Sie eine neue Tabellenzeile starten müssen.

$i = 0; 
$total_rows = $result->num_rows; 
echo "<table><tr>"; 
while($row = mysqli_fetch_assoc($result)) { 

    // test if the DisplayName field is empty or not 
    echo "<td>"; 
    if(empty($row['DisplayName'])) 
    { 
     // it's empty! 
     if(empty($row['FirstName'])){ 
      echo $row['LastName']; 
     } 

     else{ 
      echo $row["LastName"]. ", " . $row["FirstName"]; 
     } 

    }else{ 
     // Do stuff with the field 
     echo $row["DisplayName"]. ""; 
    } 
    echo "</td>"; 
    $i++; 
    if($i % 2 == 0 && $i != $total_rows) { 
     echo "</tr><tr>"; 
    } 

} 
echo "</tr></table>"; 
+0

dies tat den Trick, danke! –

0

Ausgabe die Saiten wie folgt aus:

echo "<span style=\"width:50%;float:left;\">".$row['LastName']."</span>"; 

vergessen Sie nicht <br /> von jeder Ausgabe zu entfernen

+0

kann ich sowas im kopf des documents angeben oder sowas so, dass es das automatisch für jeden ausgang macht? –

+0

müssen Sie mindestens um es herumspannen. etwas zum Stil haben –

+0

Leider weiß ich nicht, was das bedeutet, ich bin ein SQL-Typ, nicht PHP, also ist das ein ziemlicher Kampf für mich. –

0

wenn Ihr Inhalt in <div id="myDiv"> Verwendung ist JS diese Funktion und rufen sie nach dem Inhalt Lasten

function splitValues() { 
    var output = ""; 
    var names = document.getElementById('myDiv').innerHTML.split("<br>"); 
    for(var i in names) { 
    output += "<span style=\"width:50%;float:left;display:inline-block;text-align:center;\">"+names[i]+"</span>"; 
    } 
    document.getElementById('myDiv').innerHTML = output; 
}