Die Funktion printResult() erhält über das Argument $res unterschiedliche Datenbankresultate, von daher sind die Inhalte ja schonmal verschieden. Wenn auch der Tabellen-Aufbau sich unterscheiden soll, kannst du dies über ein weiteres Argument steuern:
function printResult($res, $type) {
/**/
echo "
<td> {$val["wochentag"]} </td>
<td> {$newDate} </td>
<td> {$val["heimmannschaft"]} </td>
<td> {$val["gastmannschaft"]} </td>";
if ($type = 'rueckschau') {
echo "
<td align=center> {$val["heimergebnis"]} </td>
<td align=center> <b>:</b></td>
<td align=center> {$val["gastergebnis"]} </td>";
}
/**/
}
Die Aufrufe sind dann entsprechend:
printResult($pdo->query($sql)->fetchAll(), 'rueckschau');
printResult($pdo->query($sql)->fetchAll(), 'vorschau');
Du kannst die Funktion als Quickfix auch unterschiedlich benennen, so dass du dann zwei unterscheidliche Funktionen hast. Dann stellt sich allerdings die Frage, warum du überhaupt Funktionen verwendest, wenn du diese nur einmal aufrufst. Funktionen sind ja dazu da, damit der darin enthaltene Code mehrfach aufgerufen werden kann.