Behöver hjälp med att infoga min kod från databasen, alltså utskrift av resultatet. Vad får du för felmeddelande? Utskrifter? Är det där giltig php-kod om du använder mysqli? Har för mig att du måste ange länken i varje funktionsanrop? Ja det är giltig kod, för den funkar precis som den ska när jag lägger denna utanför den vänstra kolumnen som jag vill ha min utskrift i. Texten skrivs alltså ut, men formateras fel? Kanske är enklare att se vad som blir fel om du visar den genererade HTML-koden. Dessutom vore det bra om du berättade om klassen du använder för att skapa sidorna. Här kommer den andra filen som sköter uppbyggnaden av strukturen på sidorna. Fick det att funka med denna lösning, får bara snygga till det lite.Problem med att infoga kod.
Har en sida som är uppbyggd av en 2-kolumnlayout via css och jag vill infoga mitt svar från databasen på den ena kolumnen, men det vill inte bli något här.
Lägger jag koden och utskriften utanför kolumnena så kommer utskriften precis som jag vill, så det funkr både med frågan och svaret men inte när jag stoppar in det i den andra koden på sidan.
koden för sidan som det gäller.
<?php
// ===========================================================================================
//
//
//
//-------------------------
//
// Create the resulting page object, set title, style and so on
//
require_once('CHTMLPage.php');
$title = "PTemplate2Columns";
$style = "2kolumns.css";
$page = new CHTMLPage($style);
//--------------------------
//
// Page specific code
//
$html = <<<EOD
<p>Byt utseende</p>
<h2>Senaste blogg-inläggen</h2>
***** HÄR VILL JA HA MIN UTSKRIFT (något i denna still)*******
<h2><center>Senaste blogg-inläggen</center></h2>
<p>Rubrik</p>
<p>Text</p>
<p>Författare</p>
<p>Datum</p>
<?php
$row->rubrik
$row->text
$row->forfattare $row->datum
?>
EOD;
echo $rubrik;
$page->addPageBodyLeft($html);
$html = <<<EOD
<p>Logga in</p>
<h2>Meny</h2>
<p>
</p>
EOD;
$page->addPageBodyRight($html);
// -------------------------------------------------------------------------------------------
//
// Print out the resulting page
//
$page->printPage($title);
?>
Nedan kommer den kod som jag vill ha infogad ovan: Fast det är bara utskriften som är intressant att ha i addPageBodyLeft.
Har bara lekt och kladdat i denna kod, men den funkar som tänkt på sidan men på fel ställe.
<?php
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (mysqli_connect_error()) {
echo "Connect failed: ".mysqli_connect_error()."<br>";
exit();
}
$query = "SELECT * FROM blogg;";
$res = $mysqli->query($query)
or die("Could not query database");
echo "<p>Query={$query}</p><p>Antal inlägg som visas: {$res->num_rows}</p>";
$html = <<< EOD
<table border='1'>
<tr>
<th>Rubrik</th>
<th>Text</th>
<th>Författare</th>
<th>Datum</th>
EOD;
while($row = $res->fetch_object()) {
$html .= <<< EOD
$row->rubrik<br>
$row->text<br>
$row->forfattare
$row->datum<br><br>
<tr>
<td>{$row->rubrik}</td>
<td>{$row->text}</td>
<td>{$row->forfattare}</td>
<td>{$row->datum}</td>
</tr>
EOD;
}
$html .= "</table>";
echo $html;
$res->close();
$mysqli->close();
exit;
?>
Någon som vet hur jag skall skriva detta för att få det att fungera.Sv: Problem med att infoga kod.
Sv:Problem med att infoga kod.
Får inga felmeddelande utan bara att jag inte kan få ut resultatet.
Alltså det är i denna kodsnutt som jag vill ha utskriften(svaret från databasen).
$html = <<<EOD
<p>Byt utseende</p>
<h2>Senaste blogg-inläggen</h2>
EOD;
$page->addPageBodyLeft($html);
Vet att det är heredoc som jag inte får till, men resten av sidorna är kopplade till denna struktur.
och lägger jag db. kopplingen och den andra koden som ovan funkar det, men utskriften blir utanför kolumnerna.
Sv: Problem med att infoga kod.
Sv:Problem med att infoga kod.
<?php
// ===========================================================================================
//
// Class CHTMLPage
//
// Creating and printing out a HTML page.
//
class CHTMLPage {
// ------------------------------------------------------------------------------------
//
// Internal variables
//
protected $iMenu;
protected $iStylesheet;
protected $iPageBodyLeft;
protected $iPageBodyRight;
// ------------------------------------------------------------------------------------
//
// Constructor
//
public function __construct($aStylesheet = WS_STYLESHEET) {
$this->iStylesheet = $aStylesheet;
$this->iMenu = unserialize(WS_MENU);
$this->iPageBodyLeft = "";
$this->iPageBodyRight = "";
}
// ------------------------------------------------------------------------------------
//
// Destructor
//
public function __destruct() {
;
}
// ------------------------------------------------------------------------------------
//
//
//
public function printHTMLHeader($aTitle) {
$html = <<<EOD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-16;" />
<title>{$aTitle}</title>
<link
rel='stylesheet'
href='{$this->iStylesheet}'
type='text/css'
media='screen'
/>
</head>
EOD;
echo $html;
}
// ------------------------------------------------------------------------------------
//
//
//
public function getLoginLogoutInfo() {
$htmlMenu = "";
if(isset($_SESSION['idUser'])) {
$htmlMenu = <<<EOD
{$_SESSION['nameUser']} |
Logga ut
EOD;
} else {
$htmlMenu = <<<EOD
<!--Logga in-->
EOD;
}
$html = <<<EOD
<div class='login'>
{$htmlMenu}
</div>
EOD;
return $html;
}
// ------------------------------------------------------------------------------------
//
//
//
public function printPageHeader($aHeader = WS_TITLE) {
$menu = "";
foreach($this->iMenu as $key => $value) {
$menu .= "{$key} | ";
}
$menu = substr($menu, 0, -3);
$htmlLogin = $this->getLoginLogoutInfo();
$html = <<<EOD
<body>
<div class='page'>
{$htmlLogin}
<div class='pageHeader'>
<h1>{$aHeader}</h1>
<div class='pageHeaderMenu'>
{$menu}
</div> <!-- End Of pageHeader -->
</div> <!-- End Of pageHeaderMenu -->
EOD;
echo $html;
}
// ------------------------------------------------------------------------------------
//
//
//
public function getErrorMessageFromSession() {
$html = "";
if(!empty($_SESSION['errorMessage'])) {
$html = <<<EOD
<div class='errorMessage'>
{$_SESSION['errorMessage']}
</div>
EOD;
unset($_SESSION['errorMessage']);
}
return $html;
}
// ------------------------------------------------------------------------------------
//
//
//
public function addPageBodyLeft($aBody) {
$this->iPageBodyLeft .= $aBody;
}
// ------------------------------------------------------------------------------------
//
//
//
public function addPageBodyRight($aBody) {
$this->iPageBodyRight .= $aBody;
}
// ------------------------------------------------------------------------------------
//
//
//
public function printPageBody($aBodyBefore="", $aBodyAfter="") {
$htmlErrorMessage = $this->getErrorMessageFromSession();
$pageBodyLeft = empty($this->iPageBodyLeft) ? "" : "<div class='pageBodyLeft'>{$this->iPageBodyLeft}</div>";
$pageBodyRight = empty($this->iPageBodyRight) ? "" : "<div class='pageBodyRight'>{$this->iPageBodyRight}</div>";
$html = <<<EOD
{$htmlErrorMessage}
<div class='pageBody'>
{$aBodyBefore}
{$pageBodyLeft}
{$pageBodyRight}
<div class='clear'> </div>
{$aBodyAfter}
</div> <!-- End Of pageBody -->
EOD;
print $html;
}
// ------------------------------------------------------------------------------------
//
//
//
public function printPageFooter($aFooter = WS_FOOTER) {
$refToThisPage = "http://" . $_SERVER['HTTP_HOST'] . ":" . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI'];
$linkToCSSValidator = "CSS";
$linkToMarkupValidator = "XHTML";
$linkToCheckLinks = "Links";
$html = <<<EOD
<div class='pageFooter'>
<p class='small'>
{$aFooter}
{$linkToCSSValidator}
{$linkToMarkupValidator}
{$linkToCheckLinks}
</p>
</div> <!-- End Of pageFooter -->
</div> <!-- End Of page -->
</body>
</html>
EOD;
echo $html;
}
// ------------------------------------------------------------------------------------
//
//
//
public function printPage($aTitle) {
$this->printHTMLHeader($aTitle);
$this->printPageHeader();
$this->printPageBody();
$this->printPageFooter();
}
} // End of Of Class
?>
Försökte med detta, men då skrivs bara det ut som står som SENASTE BLOGG-INLÄGG och BYT UTSEENDE.
$html = <<<EOD
<p>Byt utseende</p>
<h2>Senaste blogg-inläggen</h2>
EOD;
$html .= $row->rubrik; // Lägg märke till punkten före likamedstecknet
echo $html;
$page->addPageBodyLeft($html);
alltså det är i detta kod block som jag vill ha min utskrift från db.och lägger jag det så här så kommer det utanför kolumnen.
Hoppas att ni förstår hur jag menar.Sv: Problem med att infoga kod.
<?php
// ===========================================================================================
//
//
//
//-------------------------
//
// Create the resulting page object, set title, style and so on
//
require_once('CHTMLPage.php');
$title = "PTemplate2Columns";
$style = "2kolumns.css";
$page = new CHTMLPage($style);
//--------------------------
//
// Page specific code
//
$html = <<<EOD
<p>Byt utseende</p>
<h2><center>Senaste blogg-inläggen</center></h2>
EOD;
$mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_DATABASE);
if (mysqli_connect_error()) {
echo "Connect failed: ".mysqli_connect_error()."<br>";
}
$query = "SELECT * FROM blogg;";
$res = $mysqli->query($query)
or die("Could not query database");
while($row = $res->fetch_object()) {
$html .= <<< EOD
$row->rubrik<br>
$row->text<br>
$row->forfattare
$row->datum<br><br>
<tr>
<td>{$row->rubrik}</td>
<td>{$row->text}</td>
<td>{$row->forfattare}</td>
<td>{$row->datum}</td>
</tr>
EOD;
}
$res->close();
$page->addPageBodyLeft($html);
$html = <<<EOD
<h2>Meny</h2>
<p>
</p>
EOD;
$page->addPageBodyRight($html);
// -------------------------------------------------------------------------------------------
//
// Print out the resulting page
//
$page->printPage($title);
?>