Tabelle Spalten anordnen

wopu

Mitglied
Hallo rundum,

Ich habe da im Internet etwas gefunden für eine Wettervorhersage das macht mir eine Tabelle von 10 Spalten leider werden die Spalten der Reihe nach angezeigt (alle 10 in einer Wurst).
Ich möchte aber die 10 Spalten die erzeugt werden mittels css positionieren (zb. 5 inder ersten Reihe und die restlichen 5 in der zweiten Reihe).
Würde das mit diesem Aufbau funktionieren??


PHP:
<?php 

$tag[0] = "Sonntag"; 
$tag[1] = "Montag"; 
$tag[2] = "Dienstag"; 
$tag[3] = "Mittwoch"; 
$tag[4] = "Donnerstag"; 
$tag[5] = "Freitag"; 
$tag[6] = "Samstag"; 

//aktuelles Wetter 
    $xmlWetter = file_get_contents("http://api.wunderground.com/api/xxxx/forecast10day/q/OS/xxxx.xml"); 
         
    $xml = simplexml_load_string($xmlWetter); 
    $html = "<table > 
                <tr>"; 
   
    // Vorhersage 
    foreach($xml->forecast->simpleforecast->forecastdays->forecastday as $name=> $day){ 
        if( isToday($day->date->epoch)){ 
            $Wochentag = "Heute"; 
        } else { 
            $Wochentag =$tag[date("w",intval($day->date->epoch))]; 
        } 
        $html.= '<td align="center" valign="top"  style="width:110px;padding-left:0px;"> 
                        '.$Wochentag.'<br> 
                        <img src="'.$day->icon_url.'" style="float:left;"> 
                        <div style="float:right;padding-right:10px"> 
                        '.$day->low->celsius.'°C<br> 
                        '.$day->high->celsius.'°C 
                        </div> 
                        <div style="clear:both; font-size: 10px;">Ø Wind: '.$day->avewind->kph.' km/h<br> 
                        Niederschlag: '.($day->qpf_allday->mm).' mm 
                        </div> 
                    </td>'; 
    } 
    $html .= "</tr> 
                </table>"; 
   
   echo $html;


function isToday($time) 
{ 
  $begin = mktime(0, 0, 0); 
  $end = mktime(23, 59, 59); 
  // check if given time is between begin and end 
  if($time >= $begin && $time <= $end) 
  { 
    return true; 
  } else { 
    return false; 
  } 
} 


?>
 
Schöner sieht es so aus:
PHP:
<?php
  $weekdays = array(
    "Sonntag",
    "Montag",
    "Dienstag",
    "Mittwoch",
    "Donnerstag",
    "Freitag",
    "Samstag"
  );

  $xml      = simplexml_load_file("http://api.wunderground.com/api/xxxx/forecast10day/q/OS/xxxx.xml");
  $forecast = $xml->forecast->simpleforecast->forecastdays->forecastday;
  $days     = array();
  $current  = array();

  foreach( $forecast as $name => $day ) {
    if ( is_today( $day->date->epoch ) ) {
      $current["weekday"] = "Heute";
    } else {
      $current["weekday"] = $weekdays[ date("w", (int) $day->date->epoch ) ];
    }

    $current["icon_url"]      = $day->icon_url;
    $current["low"]           = $day->low->celsius;
    $current["high"]          = $day->high->celsius;
    $current["wind"]          = $day->avewind->kph;
    $current["precipitation"] = $day->qpf_allday->mm;

    array_push( $days, $current );
    $current = array();
  }
?>

<ul class="forecast-list">
  <? foreach( $days as $day ): ?>
  <li class="forecast-day">
    <p class="forecast-weekday"><?= $day["weekday"] ?></p>
    <p class="forecast-icon"><img src="<?= $day["icon_url"] ?>" /></p>
    <div class="forecast-temperature">
      <p class="forecast-temperature-low"><?= $day["low"] ?></p>
      <p class="forecast-temperature-high"><?= $day["high"] ?></p>
    </div>
    <div class="forecast-atmospheric-condition">
      <p class="forecast-wind">Ø Wind: <span><?= $day["wind"] ?></span></p>
      <p class="forecast-precipitation">Niederschlag: <span><?= $day["precipitation"] ?></span></p>
    </div>
  </li>
  <? endforeach ?>
</ul>
CSS:
.forecast-list {
  list-style-type: none;
  margin: 0;
  padding: 0;
}

.forecast-list li {
  display: inline;
}

.forecast-list li:nth-child(4n+1):after {
  content: "\A";
  white-space: pre;
}

Nachtrag: Ich habe das Skript nicht getestet und kann daher nur davon ausgehen, dass es funktioniert.
 
Zuletzt bearbeitet:
Ich habe versucht das umzubauen und bekomme jetzt folgende Fehlermeldung "Call to undefined function is_today()"
 
Ich habe versucht das umzubauen und bekomme jetzt folgende Fehlermeldung "Call to undefined function is_today()"
Wie's aussieht, hat @einfach nur crack in seinem Code diese Funktionsdefinition außer Acht gelassen:
PHP:
function isToday($time)
{
  $begin = mktime(0, 0, 0);
  $end = mktime(23, 59, 59);
  // check if given time is between begin and end
  if($time >= $begin && $time <= $end)
  {
    return true;
  } else {
    return false;
  }
}
Nachtrag: Ich habe das Skript nicht getestet und kann daher nur davon ausgehen, dass es funktioniert.
 
Zuletzt bearbeitet:
Ich habe die Funktion weggelassen, da sie bereits definiert wurde. Jedoch habe ich sie so umbenannt, wie es üblich für PHP-Funktionen ist: mit Unterstrichen und nicht Camel-Case
 
Ja leider hab ich wenig Ahnung davon aber ich konnte die Zeile umbauen und jetzt bekomme ich auch schon Daten!!

So kam die Fehlermeldung und Daten waren auch keine Verfügbar
PHP:
if( is_today($day->date->epoch))

Mit der Version ist die Fehlermeldung weg und es kommen auch schon Daten.
PHP:
if (isset($_POST['is_today']) && $_POST['is_today'] == '$day->date->epoch')

Nun werde ich einmal versuchen die Daten in Form zu bringen.
 
Bin drauf gekommen die Zeile ist auch falsch. "Heutiger Tag" Auswertung funktioniert nicht aber die Daten sind einmal da.
 
Zurück