I’m here again, with a problem. This is my code:
$sql = "SELECT * FROM paginas WHERE subpagina='0'";
$q = $con->prepare($sql);
$q->execute();
$q->setFetchMode(PDO::FETCH_ASSOC);
$row = $q->fetch();
if (count($row) != "0")
{
echo '<ul>';
while($row = $q->fetch())
{
echo '<li><a href="?page='. $row['ID'] . '">' . $row['pagina'] .'</a></li>';
}
echo '</ul>';
}
The problem is, all the records in the database where subpagina = 0 will be echoed on the page. But, if I use another string like 3 in the database, and in this code, it doesn’t work.
I have done some thing like var_dump $row, var_dump(erroinfo()), but it only returns FALSE.
I hope you can help me.
EDIT: here is my data structure:
CREATE TABLE IF NOT EXISTS `paginas` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`pagina_link` varchar(150) NOT NULL,
`content` varchar(10000) NOT NULL,
`pagina` varchar(100) NOT NULL,
`reactie` varchar(1) NOT NULL,
`subpagina` varchar(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=39 ;
EDIT2: here is the data
INSERT INTO `paginas` (`ID`, `pagina_link`, `content`, `pagina`, `reactie`, `subpagina`) VALUES
(32, '?pagina=Home', '<h1>Welkom!</h1><div>Dit is een demo van het cms combora! Je mag hier op uittesten. Je kan inloggen met als gebruikersnaam demo en paswoord demo. Gelieve deze pagina niet te verwijderen.</div><div><br></div> <a href="?pagina=Home&foto=2&l=j"><img width="250px" height="250px;" src="fotos/foto2.jpg"></a>', 'Home', '1', '0'),
(33, '?pagina=test1', '<br>dslmlmqdhfkqsjdf', 'test1', '1', '0'),
(34, '?pagina=test2', '<br>', 'test2', '0', '0'),
(35, '?pagina=Nice', 'fasdfdsfadsf<br>', 'Nice', '1', '0'),
(36, '?pagina=Foto viewer ', 'Deze pagina is een test van de zelfgemaakt foto viewer:<div><br></div>\r\n<a href=\\"?foto=1&l=j\\"><img width=\\"250px\\" height=\\"250px;\\" src=\\"1.jpg\\"></a>\r\n<a href=\\"?foto=2&l=j\\"><img width=\\"250px\\" height=\\"250px;\\" src=\\"2.jpg\\"></a>\r\n<a href=\\"?foto=3&l=j\\"><img width=\\"250px\\" height=\\"250px;\\" src=\\"3.jpg\\"></a><div><br></div>', 'Foto viewer ', '1', '0'),
(38, 'sdkjfqsdfj', 'sdjmkqjfdmlkqsfdlmkqjsdflkjdlmskfjqslmdkfj', 'test56', '1', '2\r\n');
I’m not sure if you mention this?
You mentioned it is a string. Try
Fiddled a limited set of your table. Added some data and the above SELECT simply works. So that’s not the problem. Are you sure you have other strings than
'0'in thesubpaginafield?See this sqlfiddle
Another thing you can try is
There’s no such thing as subagine = 3 in your data. Only 0 and 2 exist
EDIT
See it only just now: you do a
fetch()assing it to$rowand check the count. Then you start the while loop wiht anohterfetch()which will get the NEXT row of the result. The first one is skipped always because of the firstfetch()use something like this:
if you not want the empty
<ul>tags you should check ifcount($rows) > 0before you echo/foreach/echo