Door
Pierre Web
op 05-01-2017 22:05
gewijzigd op 05-01-2017 22:08
7.872 views
Hallo
Hallo,
Ik probeer de volgende rij uit tabel te halen met:
<?php
$id = $_GET['id'];
$id = ($id+1);
<a href="nieuws.php?id='.$id.'">volgende</a>
$query_nieuws = ("SELECT *
FROM `nieuws` WHERE id = '$id' ORDER BY id DESC LIMIT 1
");
?>
Maar nu komt het ook voor dat een id er niet meer is bijv. id 1 , 2 , 4 (id 3 bestaat niet meer),
en wat als het de laatste of eerste id betreft.
Er moet ook nog een vorige komen
SELECT * FROM nieuws
WHERE ( id = IFNULL((SELECT MIN(id) FROM nieuws WHERE id > $id),0)
OR id = IFNULL((SELECT MAX(id) FROM nieuws WHERE id < $id),0)
)
Dit geeft de vorige en/of volgende records aan als die bestaan.
Twee vliegen in één klap gelijk.
Ik krijg fout
Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in../nieuws-test2.php:40 Stack trace: #0 {main} thrown in ../nieuws-test2.php on line 40
$id = $_GET['id'];
$query_nieuws = ("SELECT
* FROM `$tabelnaam` WHERE ( id = IFNULL((SELECT MIN(id) FROM `$tabelnaam` WHERE id > $id),0)
OR id = IFNULL((SELECT MAX(id) FROM `$tabelnaam` WHERE id < $id),0)
");
$result = $mysqli->query($query_nieuws);
while ($row = $result->fetch_assoc() ) { // regel 40
#1064 -You have an error in your SQL syntax; check the manual that corresponds to your Maria DB server version for the right syntax to use near at line 3
SELECT
* FROM `nieuws` WHERE ( id = IFNULL((SELECT MIN(id) FROM `nieuws` WHERE id > $id),0)
OR id = IFNULL((SELECT MAX(id) FROM `nieuws` WHERE id < $id),0) //line 3
Opmerking: code zoals in mijn 1e post gaf geen fout
Kopieer foutje hier , veranderd dus niks aan foutmelding
$query_nieuws_next = ("SELECT
* FROM `nieuws` WHERE ( id = IFNULL((SELECT MIN(id) FROM `nieuws` WHERE id > 14),0)
OR id = IFNULL((SELECT MAX(id) FROM `nieuws` WHERE id < 14),0)
SELECT
* FROM `nieuws` WHERE ( id = IFNULL((SELECT MIN(id) FROM `nieuws` WHERE id > $id),0)
OR id = IFNULL((SELECT MAX(id) FROM `nieuws` WHERE id < $id),0)
fout blijft
[size=xsmall]Toevoeging op 06/01/2017 11:41:56:[/size]
alle code:
<?php
$database_host = 'localhost';
$database_username = 'xxx';
$database_password = 'xxx';
$database_name = 'xxx';
//open mysql connection
$mysqli = new mysqli($database_host, $database_username, $database_password, $database_name);
//output error and exit if there's an error
if ($mysqli->connect_error) {
die('Error : ('. $mysqli->connect_errno .') '. $mysqli->connect_error);
}
?>
<?php
$id= mysqli_real_escape_string($mysqli, $_GET['id']);
$query_nieuws = ("SELECT
* FROM `nieuws` WHERE ( id = IFNULL((SELECT MIN(id) FROM `nieuws` WHERE id > $id),0)
OR id = IFNULL((SELECT MAX(id) FROM `nieuws` WHERE id < $id),0) ");
$result = $mysqli->query($query_nieuws);
while ($row = $result->fetch_assoc() ) {
$id = $row['id'];
}
?>