Beste PHP vrienden,
Ik heb een tabel in mijn database genaamd superfoods. Ik heb daar een aantal artikelen(posts) in staan.
De velden van de tabel zijn ID, naam, URL en datum.
Nu toont via MySQL onderaan mijn artikelen, 5 andere artikelen die in dezelfde tabel zitten.
Maar het probleem is dat hij ook het artikel toont die nu geopend is.

Andere artikeln uit de categorie : ("en hij toont het artikel dat reeds geopend is")
Hoe kan ik dat fixen?
Ergens zal ik de desbetreffende ID van dit artikel moeten noteren in mijn artikel en dan die id="1" uitsluiten in MySQL maar hoe doe ik dat?
id="PHP_SELF" ???
Want ik werk ook met 2 tabellen die op hun beurt 5 artikelen geven. Dus ik heb ook nog een lijstje met 5 artikelen uit de tabel gezondheid. Artikel met ID1 uit de tabel superfood is niet dezelfde als ID1 uit de tabel gezondheid.

Kan iemand mij de code geven om het lopende artikel uit te sluiten in de resultaten aub?

Dit is het script:

$sql = "SELECT `url` FROM `superfoods` ORDER BY `id` DESC LIMIT 5";
mysql_query ($sql) or die ($error);
$result=mysql_query($sql);


while($data = mysql_fetch_row($result)){


echo("<b>$data[0]</b><br>");
}


mysql_close($connect);
?>
phpMyAdmin snapt geen PHP, en dus ook geen mysql_real_escape_string(), dus moet je gewoon normale SQL-queries daar invoeren:


SELECT url FROM superfoods WHERE id <> 1 ORDER BY id DESC LIMIT 5
Kan ik die escape string geen variabel $artikel geven en dan dat variabel $artikel gebruiken in de $sql query? Want zowel in mijn phpscript als op myadmin geeft hij een error.
$artikel=mysql_real_escape_string($_GET['id']);


$sql = "SELECT `url` FROM superfoods WHERE `id` <> $artikel ORDER BY `id` DESC LIMIT 4";


Hij is nu toch variabel via de URLbalk met $_GET?

En welke error krijg je? Want die error die je net vertelde heeft te maken met het connecten met je MySQLserver en database.
Ik begrijp het niet. Als ik de id <> 1 query gebruik werkt het. Als ik die escape string gebruik zegt ie "couldn't connect"

Maar bij deze id <> 1 zal hij bij artikel id 2 ook id 1 uitsluiten. En daar moet hij id2 dus uitsluiten. Dus ik kan niet anders dan die $_GET id gebruiken.

Begrijp niet waarom die $sql niet kan connecten met deze query. Daarom dacht ik om die Mysql_real_escape_string buiten de $sql te plaatsen en een $artikel eraan te geven.
Gebruik je soms MySQLi en MySQL door elkaar? Hoe connect je precies?
Laat daarvan eens wat meer over zien.


<?PHP 

//connect
$error = "couldn't connect";
$connect = mysql_connect ("host", "username", "pass") or die ($error);
mysql_select_db("database", $connect) or die ($error);


$sql = "SELECT url FROM superfoods WHERE id <> ".mysql_real_escape_string($_GET['id'])." ORDER BY id DESC LIMIT 5";


mysql_query ($sql) or die ($error);
$result=mysql_query($sql);



while($data = mysql_fetch_row($result)){

 





echo("<b>$data[0]</b><br>");
}  

mysql_close($connect);
?>


Pas die connect aan naar:

<?php
$connect = mysql_connect ("host", "username", "pass") or die (mysql_error());
mysql_select_db("database", $connect) or die (mysql_error());
?>

En gebruik ook mysql_error() op lijn 12.

Als je het nog netter wilt doen,w at ik je aan kan raden. Lees dan deze tutorial eens door:
http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/
Maar ik krijg die error niet van voor de $sql want als ik id <> 1 gebruik werkt alles naar behoren. Die error moet komen van de mysql_query denk ik
Daarom moet je ook mysql_error() gebruiken, i.p.v. een eigen stukje string wat niet veel spannends zegt.
Pas gewoon goede foutafhandeling toe. Zie ook mijn link ^.
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'ORDER BY id DESC LIMIT 5' at line 1

Reageren