In onderstaand script worden bepaalde velden uit de mysql database weergegeven. Nu probeer ik alleen een artikel weer te geven waarbij feed_script='Auto' en waar het image veld niet leeg is. Nu wordt er toch een artikel genomen waarbij het image veld leeg is. Ik krijg vervolgens ook geen title te zien.

Bij if (!empty($image)) heb ik ook if (isset($image)) geprobeerd, de laatste optie geeft dan wel weer een titel.
Moet ik wat veranderen in mijn sqlCommand of if statement?

HOe moet ik mijn script veranderen, opdat mijn script doet wat het mijninziens behoort te doen?

<?php
include_once "scripts/connect_all.php";
mysql_query("SET NAMES utf8");

$sqlCommand = "SELECT * FROM feeds WHERE feed_script='Auto' ORDER BY pubDate DESC LIMIT 1";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());

$html4= "";
while ($row = mysqli_fetch_array($query)) {
$fid1 = $row["id"];
$feed_id = $row["feed_id"];
$image = $row["image"];
$link = $row["link"];
$description = $row["description"];
$feed_script = $row["feed_script"];
$title = $row["title"];
$title = preg_replace("/'/", '', $title);
if (strlen($title)>70) {
$title=substr($title, 0, 70)."...". substr($title,1000);
}

if (!empty($image)) {
$html4.= "<div class='nederlandc2text'>
<div class='nederlandc2bron'>
".$feed_script."
</div>
<div class='nederlandc2title'>
<li><a href='$link'target='_blank' class='nederlandc2filldiv'>".$title."</a></li>
</div>
</div>
<div>
<a href='$link'target='_blank' title=".$title."><img class='centerimg' src=".$image."></a>
</div>";
}
}

?>
Wat John bedoelt is dat je nu de verkeerde werkwijze hebt.
Co de Kraker

Nu probeer ik alleen een artikel weer te geven waarbij feed_script='Auto' en waar het image veld niet leeg is.

Je kan dat dus regelen in de query want dan heb je heel die controle in PHP niet nodig.
Maar als je de reacties maar half leest kom je er nooit uit, want John legt het al heel duidelijk uit,
Er is namelijk een heel verschil tussen:

INSERT INTO tabelletje (col1, col2) VALUES (1, '')

of

INSERT INTO tabelletje (col1, col2) VALUES (1, NULL)

De eerste zet een lege waarde in de kolom, en de tweede zet geen waarde in de kolom.
Dus verander WHERE image IS NOT NULL eens in WHERE image <> ''
Bedankt Ger, ik snap het nu. John D ook bedankt! Het is gelukt.
Mooi.
Overigens, soms is het handiger om een query eerst eens te draaien in bv. PHPMyAdmin. Dan kan je zien wat voor resultaat er uit komt. Ik kan vrij goed overweg met SQL maar ik doe dat ook nog steeds.

Reageren