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
Waar moeten die quote precies komen, leren over veiligheid is altijd meegenomen

  $id = $mysqli->real_escape_string($_GET['id']);
Zo hoort het dus:

$query_prefnext = "SELECT * FROM `news`
         WHERE ( id = IFNULL((SELECT MIN(id) FROM `news` WHERE id > '".$id."'),0)
            OR id = IFNULL((SELECT MAX(id) FROM `news` WHERE id < '".$id."'),0))
    ";

- Ariën - op 07/01/2017 15:16:49

@Ger: Die query is ook tof, alleen kan je daarmee geloof ik niet de data van die vorige/volgende records ophalen, en alleen het ID ermee ophalen.

Dat klopt, de query geeft alleen de id's van het vorige en volgende record, maar dat is volgens mij ook voldoende.
Voor de topicstarter wel, tenzij je een titel wilt gebruiken.
  $query_news = "SELECT * ,
	   DATE_FORMAT(datum,'%d-%M-%Y') as datum_eu
	    FROM ..


PHP v7

Ik krijg nu als maand january (Engels)
kan ik in de query iets meegeven zodat de maand in Nederlands wordt geprint?(soort van Set locale)
nu zet ik ze alle 12 met en conditie om naar Nederlands.

Wat de titel betreft , was oorspronkelijk niet de bedoeling , maar is wel een leuke optie.
Ik heb die in een <span class="hidden-xs"> gezet , op kleine schermen laat ik die weg en gebruik alleen < >


Bedankt voor jullie reacties.







$mysqli->query("SET lc_time_names = 'NL_nl'");
setlocale(LC_ALL, 'NL_nl');


Dit gebruik ik om voor MySQL de juiste locale te gebruiken, en de andere voor PHP (bijv. strftime()). Ik geloof dat Windows er niet mee kan omgaan, althans, dat merk ik.
Bij mijn weten is het nl_NL, niet NL_nl.
Overigens kan Windows er wel mee omgaan, maar de naamgeving is anders. Iets als nld_nld zou moeten werken.
Klopt moet zijn

$mysqli->query("SET lc_time_names = 'nl_NL'");

Ik had het al gezien in een andere post , maar werkte dus niet omdat NL verkeerd stond
Hmmm.... Ik zal eens kijken hoe dit zit. Naar mijn weten heeft het ook zo gewerkt. Toch eens controleren zo. ;-)
En die 'nld_nld' wist ik nog niet.
Bedankt!

	$content1 = substr($row['content'], 0, 200); // 1e print 1e 200tekens
	$content2 = $content1; //2e (test regel)
	$content3 = preg_replace("/<img[^>]+\>/i", " ", $content2);  //3e Haal img tag uit content.

echo $content3:


de 1e haalt alleen de 1e 200 tekens uit content.
de 3e verwijder de IMG tag
Solo werkt het wel , maar zoals code hierboven alleen de 1e 200 tekens , de IMG wordt er niet uitgehaald.
iemand een idee hoe deze te combineren , zodat de 1e 200 tekens worden geprint EN de img tag verwijderd.

Reageren