Ik ben bezig met php en mysql in m'n site te voegen. Alleen hoe kan ik nou bij read more een pagina krijgen waar het bericht wordt getoond. Ik kan nu steeds zelf pagina's aanmaken en daar het bericht laten lezen. Maar hoe doe ik bijv. van een bericht met id=1 de vervolg pagina met het hele bericht van id 1, zoals bij. site.com/news.php&id=1.

De site met php en mysql verwerking is http://www.vin-extreme.com/test en nou wil ik dus bij de headlines en read more dat op vervolg pagina het bericht getoond wordt wat je als link op vorige pagina aangeklikt hebt.
Om in deze topic maar even verder te gaan.
Paar kleine vraagjes.

1) In mijn menu-frame op mijn site heb ik een bepaalde regellengte. Ongeveer 18 karakters. Nu wil ik dat als een titel meer dan 18 karakters is de eerste 18 karakters getoond worden. Hoe doe ik dit?
Nu maak ik bij invoeren bericht een extra rij aan voor korte titel met lengte van max 18, maar is wel dubbelop werk bij het invoeren van een bericht.

2) Hoe kan ik een html code op de site weergeven? Als ik nu een html code (in de echo) wil laten printen dan krijg ik dus waar die html code voor staat. Ik wil bijv op de site het volgende te zien kunnen krijgen: <img src="..."> zonder dat er een plaatje geprobeerd wordt te weergeven.

3) Is het omzetten van html naar bbcodes ([ url ][/url][ b ][/b] etc) eenvoudig te doen en zo ja, waar doe je dit, al tijdens invoerformulier of gewoon bij het uitlezen van bericht?
1.
<?
if(strlen($string)>18){
$tinystring=substr($string,0,15).'...';
}else{
$tinystring=$string;
}
?>

2. &lt; &gt; gebruiken
of <textarea>hier de code</textarea>

3. ik doe het altijd bij het uitlezen van het bericht, in de db zet ik de bbcode
Ok, ga het proberen.
Lukt nog niet helemaal. Zo is het als ik gewoon 'titleshort' print, 'title' is volledige titel.


// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM eentabelx ORDER BY date DESC LIMIT 5";

// Voer die query uit
$resultaat = mysql_query($sql);


// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {

// <!-- Content Box //-->
echo "<a href=\"article.php?id=$record->id\">
$record->titelshort...</a><br>";
}

edit: en voor tekstarea, jammergenoeg werkt dit niet bij gewone input, nu blijf je rechts scrollpijltjes behouden en na een spatie maakt ie er een nieuwe regel van:
Dit zijn bijv 3 regels ipv 1.
<textarea rows="1"><img src="test.php"> test</textarea>
en doe eens dit:

<?
// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM eentabelx ORDER BY date DESC LIMIT 5";

// Voer die query uit
$resultaat = mysql_query($sql);


// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {

if (strlen($record->title) > 50) // als $record-title (niet titel ??) groter is dan 50 karakters
{
$title = substr($record->title, 0, 50) . "...";
}
else
{
$title = $record->title;
}

// <!-- Content Box //-->
echo "<a href=\"article.php?id=$record->id\">$title</a><br>";
}
?>
Thnx, hij werkt super. Had de if else niet goed gezet waardoor ik errors kreeg, maar nu werkt ie super! Nu nog even img goed zien te krijgen.
Wil namelijk als plaatje is geupload een link tonen van waar het plaatje staat.
Wil berichten updaten, maar krijg nog errors bij sql code. In de inputs en textareas wil ik dus eerst weer tonen wat er huidig van in database staat om zo dus ook te kunnen bewerken voor hij opnieuw in de database gezet wordt:

// Maak SQL query om toe te voegen (INSERT)

$sql = "UPDATE tabelx SET (titel, kop, bericht) WHERE VALUES =
('".$_POST[titel].", '".$_POST[kop]."', '".$_POST[bericht]."')";


// Voer SQL uit
$res = mysql_query($sql);
if($res===false) die('er zit een fout in deze query:<BR>'.$sql.'<BR>en wel:<BR>'.mysql_error());

else {
// Geef bevestiging
echo "<font size=\"-1\" color=\"#006699\" face=\"Verdana, Arial\">
Cool, het bericht is succesvol toegevoegd.";

include "index.php"; }

?>

<!-- TABEL //-->
<table border="-1" style="border-collapse : collapse" bordercolor="#006699" width="500"
cellpadding="2" cellspacing="0">

<!-- BERICHT //-->
<tr>
<td bgcolor="white" bordercolor="#006699" colspan="2" width="500">
<font size="-1" color="#006699" face="Verdana, Arial">
<p>

<?
// Maak een voorbeeld SQL-query
$sql = "SELECT * FROM article2 WHERE id = $_GET[id]";

// Voer die query uit
$resultaat = mysql_query($sql);


// Maak een lus om alle items te laten zien
while ($record = mysql_fetch_object($resultaat)) {

echo "
<form method=\"post\" action=\" $PHP_SELF \">
Titel:<br>
<input type=\"text\" name=\"titel\" size=\"50\">$record->titel<br>
Kop:<br>
<textarea name=\"kop\" cols=\"50\" rows=\"5\">
$record->kop</textarea><br>
Bericht:<br>
<textarea name=\"bericht\" cols=\"50\" rows=\"5\">$record->bericht</textarea><br>
<input type=\"submit\" name=\"submit\" value=\" Voeg toe \">
</form>
</font>";
}?>
<p>
</table>
Heb trouwens ook die login/register script (http://www.phphulp.nl/php/tutorials/2/105) gedaan en werkt super. Kleine vraagjes, hoe kan ik deze in een site voegen waarbij iedereen gewoon de gehele site kan zien. En als je ingelogd bent, blijf je dan ingelogd en kan ik dus meerdere pagina's gebruiken of moet ik dan boven elke pagina iets neer zetten?
En is het makkelijk om commentsystem te maken (met die members) want het script/tutorial die ik hier probeerde (stond al tijdje op de pc) gaf nog wat errors op.
Je moet dan boven elke page session_start() zetten.
Zorg wel dat dat voor alle output gebeurd: een echo'tje oid ervoor zorgt voor een foutmelding...
UPDATE werkt nog steeds niet. Of ik krijg errors bij update stukje, of ik krijg errors zodra ik op toevoegen heb geklikt:(

Reageren