Har haft något liknande vid ett annat tillfälle, men har nu kört fast och ser inte felet med denna kod eller vad jag missat. Det är säkerligen den här SQL-satsen som ställer till det: Gör en uppdatering med mina tabeller i db. Jag kan fortfarande inte ge dig en exakt lösning. Men varför har du med två tabeller i den SQL-satsen som jag pekade på, utan att du har någon koppling mellan dem? Har testat med en del olika lösningar, en var att lägga idUser i blogg tabellen och koppla ihop dessa två Dubbla poster vid utskrift
Har en 2-kolumns sida som jag plockar fram inlägg och kommentarer på vänstra sidan, och på högra sidan vill jag ha fram namnen på de som är registrerade och kunna klicka på länken för att komma till deras respektive inlägg med kommentarer.
Som jag har det nu så kommer det en upprepning av antal inlägg på höger sida, alltså om det finns tre inlägg av olika personer på denna sida så kommer det på höger sida
bosse
bosse
bosse
nisse
nisse
nisse
olle
olle
olle
det som ska sägas är att jag plockar fram inlägg och kommentarer via $nid i koden, så det borde vara ett namn av varje istället. Varje inlägg får ett nid i koden t.ex 4,5,6 och via länken så ser det ut så här på vänstrar sidan där det funkar ?p=read&nid=5, men på höger blir det ?p=readUser&nid=
read och readUser ser likadana ut bara två olika sidor.
Så här ser sidan ut.
<?php
// ===========================================================================================
// Create and print out the resulting page
//
require_once('CHTMLPage.php');
$page = new CHTMLPage();
$title = "PTemplate2Columns";
$style = "step14_twocolumns.css";
$page = new CHTMLPage($style);
// -------------------------------------------------------------------------------------------
//
// Page specific code
//
$html = <<<EOD
Byt utseende
<h2>Senaste blogg-inläggen</h2>
EOD;
$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 ORDER BY datum DESC;";
$res = $mysqli->query($query)
or die("Could not query database");
while($row = $res->fetch_object()) {
if ($qkom = $mysqli->query("SELECT * FROM kommentarer WHERE nid = '{$row->id}' ORDER BY nid DESC")) {
/* determine number of rows result set */
$count = $qkom->num_rows;
/* close result set */
$qkom->close();
}
$html .= <<< EOD
<h2>$row->rubrik<br></h2>
$row->text<br><br>
Skrivet av\n $row->forfattare
$row->datum<br>
<!--<p>Antal inlägg som visas: {$res->num_rows}</p> -->
<p>Antal kommentarer: ($count)\nKommentera\nLäs mer</p>
EOD;
}
$res->close();
$page->addPageBodyLeft($html);
$html = <<<EOD
<h4>Andvändare</h4>
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, membersmembers ORDER BY id;";
//$query = "SELECT namnUser, ansvarsomrade FROM membersmembers";
$res = $mysqli->query($query)
or die("Could not query database");
/* execute multi query */
if ( $mysqli -> multi_query ( $query )) {
do {
/* store first result set */
if ( $result = $mysqli -> store_result ()) {
while ( $row = $result -> fetch_row ()) {
}
$result -> free ();
}
/* print divider */
if ( $mysqli -> more_results ()) {
printf ( "-----------------\n" );
}
} while ( $mysqli -> next_result ());
}
/* close connection */
//$mysqli -> close ();
while($row = $res->fetch_object()) {
if ($qkom = $mysqli->query("SELECT * FROM kommentarer WHERE nid = '{$row->id}' ORDER BY nid DESC")) {
/* determine number of rows result set */
$count = $qkom->num_rows;
/* close result set */
$qkom->close();
}
$html .= <<< EOD
<p>$row->namnUser\n<br> $row->ansvarsomrade\nLäs inlägg</p>
EOD;
}
$res->close();
$page->addPageBodyRight($html);
// -------------------------------------------------------------------------------------------
//
// Print out the resulting page
//
$page->printPage($title);
?>
använder jag queryn som tar fram membersmembers så kommer det fram endast ett namn som det borde men får inte fram $nid i länken, och kör jag som det visas i koden nu så kommer det som jag visar ovan alltså tre namn av varje med t.ex
bosse = nid 4
bosse = nid 5
bosse = nid 6
borde vara bosse nid 4, nisse nid 5, olle nid 6.
Hur löser jag detta, behöver ni mer kod eller info säg till.
Sv: Dubbla poster vid utskrift
<b>SELECT * FROM blogg, membersmembers ORDER BY id</b>
Varje post i blogg kombineras med varje post i membersmembers.
Du vill nog ha dit ett JOIN-villkor, typ:
<b>SELECT * FROM blogg, membersmembers WHERE blogg.members_id=membersmembers.members_id ORDER BY id</b>
Jag vet inte hur dina tabeller ser ut, så jag kan inte ge en exakt lösning.Sv:Dubbla poster vid utskrift
Det kanske blir lättare att se mitt fel.
CREATE TABLE IF NOT EXISTS `blogg` (
`id` int(11) NOT NULL auto_increment,
`rubrik` varchar(300) NOT NULL default '',
`text` varchar(10000) NOT NULL default '',
`forfattare` varchar(50) NOT NULL default '',
`datum` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
CREATE TABLE IF NOT EXISTS `kommentarer` (
`id` int(11) NOT NULL auto_increment,
`nid` int(11) NOT NULL default '0',
`titel` varchar(255) NOT NULL,
`namn` varchar(255) NOT NULL,
`datum` varchar(255) NOT NULL,
`innehall` text NOT NULL,
PRIMARY KEY (`id`),
KEY `nid` (`nid`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
CREATE TABLE IF NOT EXISTS membersmembers (
idUser int(11) NOT NULL auto_increment,
namnUser varchar(30) NOT NULL,
passwordUser varchar(32) NOT NULL,
ansvarsomrade varchar(32) NOT NULL,
emailUser varchar(100),
PRIMARY KEY (idUser)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2;Sv: Dubbla poster vid utskrift
Sv:Dubbla poster vid utskrift
men då kunde jag inte posta till databasen fick bara fel.
Men har nu ändrat och gjort så att jag plockar ut medlemmar för sig och inlägg för sig, men det var inte det som jag hade som ide från början. Tanken var att jag skulle kunna få fram namn och id och kunna klicka på detta och komma till respektive inlägg som denna har skrivit.
Men kör så här och lägger tråden som löst på detta sätt.
Detta blir att jag visar alla namn med ansvarsområde i en lista och under dessa de senaste inläggen, funkar för tillfället som det bör med detta.
Men tack för svaren.