![]() |
PHP vraag
Ik ben nu dus bezig met een script waarmee ik artikelen in een FAQ-database kan stoppen. Ik heb hem nu dus bijna af maar ik wil graag elke FAQ een uniek ID meegeven in de vorm van een interne link (bijv. <a href=\"$id\">$id</a>).
Ik heb dus gezien dat er in de database al automatisch een ID wordt toegekend en die zou ik dus graag eruit willen halen. Maar hoe krijg ik dat voor elkaar? |
euhm, mensne laten de ID's er inzetten door de databse..
je maakt een nieuwe rij aan die noem je id [ofzo] en die zet je op auto_increment [met phpMyAdmin ofzo] Dan telt ie die automatisch op |
Ik heb nu een nieuwe rij ID gemaakt, dan kan ik nu dus met $id het id uit de database trekken....
|
Citaat:
ik weet niet hoe je je vars noemt :p Ik ben net dit aan het maken, maybe heb je er wta aan PHP-code:
|
Het is al gelukt :D
|
Ik krijg trouwens een Parse-error nu:
Warning: Unexpected character in input: '\' (ASCII=92) state=1 in /home/endoria/freak/public_html/FAQ/index.php on line 76 Parse error: parse error in /home/endoria/freak/public_html/FAQ/index.php on line 76 regel 76 is: PHP-code:
[edit] voor alle "-s staat een \ maar op de een of andere manier wordt die weggehaald :confused: [/edit] |
PHP-code:
wuh.. de php wordt niet correct weergegeven idd |
Ik zou er wat meer \ erbij zetten :D:D
|
Hoe kan ik bijvoorbeeld weergeven hoeveel FAQ-artikelen er in een database staat?
Ik heb dus een tabel van forumonderdeel 1 met de naam "id1". In die tabel staan op dit moment 3 rijen met gegevens, (naam, geplaatst op, titel, bericht). Hoe krijg ik het voor elkaar dat ik bijv. de variabele $totalfaq krijg? |
SELECT count(*) from tabeletje
|
Citaat:
PHP-code:
|
nee :D:D
je moet het wel in een mysql query gooien :p $totalfaq = mysql_query(SELECT count(*) from TABEL); |
Citaat:
|
mijn tabel heet ID1 dus dan wordt de PHP code die ik kan invoegen als volgt
PHP-code:
|
$totalfaq = mysql_query("SELECT count(*) from ID1");
quotjes erbij [was ik zelf ook vergeten] :p |
mijn code is dus nu zo maar volgens mij zit er iets grandioos fout:
PHP-code:
|
Waarom heet die tabel ID1 BTW? Het is beter een tabel een beschrijvende naam te geven. Dus 'user', 'log' of 'faq', en niet 'ID1'.
Verder kun je heel simpel de ID van een nieuw geinserte row opvragen, daar is de functie mysql_insert_id() voor. |
maaaaar die code die ik dus gebruik werkt niet, had ik misschien nog een extra iets moeten draaien in mijn tabel?
|
Citaat:
|
de rij ID heb ik er al wel instaan maar had ik er niet tussen gezet. Met ID geef ik nu elk artikel een uniek nummer die ik ergens anders voor gebruik.
Maar het gaat er dus om dat ik graag wil dat er op de pagina komt te staan hoeveel FAQ`s er aanwezig zijn in de database! |
Citaat:
Dus: $result = mysql_query("SELECT COUNT(id) AS count FROM tabel"); $row = mysql_fetch_object($result); echo $row->count; Das "AS count" is trouwens aan alias, met AS kan je een column een andere naam geven. Dit omdat je anders als columnnaam "COUNT(id)" zou krijgen. COUNT(*) werkt hetzelfde, maar het is normaal dat je de naam van je primary key gebruikt. |
Mijn volgende vraag:
Bij het toevoegen van een artikel krijgt het artikel een nummer dat steeds hoger wordt (1, 2, 3, 4, 5, etc.). Deze nummers staan in de kolom ID. Ik heb nu een voorpagina opgebouwd waarop enkel de naam van het onderwerp te vinden is en de datum van plaatsing. Nu wil ik dus dat als ik op het onderwerp klik dat de FAQ wordt geladen in hetzelfde scherm. Maar ik wil dus niet hebben dat er ineens 13 FAQ`s onder elkaar staan. hoe? |
select * from ID1 where id = '$id'
|
Ik zal het eens even duidelijk vertellen.
Op veel website (zoals phpfreakz.nl en forum.scholieren.com) zie je vaak links zoals artikel.php?id=5421. Ik wil dit ook graag hebben voor de FAQ-database. (Te vinden op http://chatfreak.endoria.net/FAQ/ [TESTFASE!!!!]) Ik heb in mijn tabel waarin alle gegevens staan een rij aangemaakt met de naam ID en heb die auto_increment gegeven. Het gevolg is dus dat er bij elk nieuw artikel een nummer komt dat steeds verder oploopt. Ik heb een voorpagina gemaakt (http://chatfreak.endoria.net/FAQ/index.php). Nu wil ik dat als ik op een link klik dat dat specifieke artikel uit de database wordt gehaald en ALLEEN (zonder de andere artikelen) wordt weergegeven d.m.v. showfaq.php?id=24. Wie kan mij dit duidelijk uitleggen of een voorbeeld geven door midden van een voorbeeldscript? |
Ga eens wat artikelen doorlezen op phpfreakz.nl en stel je n00b-vragen daar, in plaats van hier (daar zijn ze er toch aan gewend). :P De PHP manual kan ook helpen, die vind je op http://nl.php.net/manual/.
|
select * from posts where topic = $id
je moet alleen je select-statement aanpassen... |
Citaat:
|
Citaat:
je geeft je topicid mee met de url (blabla/showfaq?id=2) en in showfaq PHP-code:
|
Citaat:
PHP-code:
|
in je select-statement? :rolleyes:
ja, sorry hoor... moest even... |
Citaat:
ehm, kan jij misschien ff de code er bij tussen zetten en de nieuwe volledige code posten? |
hoe is je database opgebouwd dan?
je hebt neem ik aan 2 tabellen (of meer...): tabel 1: topic id omschrijving datum_laatste_post ... tabel 2: post id topic_id text datum_gepost auteur .. toch? |
Lees dan gewoon die tutorials ff door joh, je kunt niet van mensen verwachten dat ze je constant aan het handje houden.
|
Citaat:
id # een uniek nummer dat per artikel verschilt naam # naam van de faq-plaatser onderwerp # het onderwerp bericht # de inhoud van het artikel datum # de datum van plaatsing |
:eek:
Uhm... dan zou ik je database nog maar eens goed uitdenken... Ik heb al een kleine suggestie gedaan... Ik kan me verder ook weinig voorstellen bij een forum-faq (of faq-forum)... |
Vraagje: Welke PHP versie gebruik je?
Erg simpel dus. Teneerste: Verander die tabelnaam ff van ID1 naar faq, die naam slaat nergens op. Hoofdpagina: //Lijst van FAQs geordend op titel: $query = "SELECT naam, titel FROM faq ORDER BY titel"; Dan d.m.v. een while loop die faqs doorlopen, neem aan dat je zover bent. Print de links als volgt: echo "<a href='showfaq.php?id=".$row->id."'>".$row->titel."</a>"; FAQ-weergave pagina: $query = "SELECT * FROM faq WHERE id=".$id; Zo haal je één FAQ op a.d.v. z'n ID. |
Citaat:
|
Citaat:
|
Citaat:
Ik dacht dat hij het zo wou hebben dat je op een vraag kon reargeren met een opmerking/bericht... |
Citaat:
Scheelt een hoop frustratie van forummers... |
Citaat:
Dan zoals Chimera zei... :) |
Citaat:
Citaat:
Citaat:
Citaat:
Citaat:
PHP-code:
|
Echt erg hoor...
Je weet er echt niks van he? 'Een watte?' Een while loop :rolleyes: 'Waarom staat er "titel" in' Beetje fantasie gebruiken... titel = onderwerp ? :rolleyes: Naja... iedereen moet het leren :) |
Citaat:
|
hmm ik heb alles precies gedaan zoals chimera zei maar ik krijg nu een parse error in mijn index.php op regel 81
REGEL 81: PHP-code:
|
ik denk dat je 2 " teveel hebt... (denken... ik weet het wel zeker :D)
|
While-loop:
http://www.php.net/manual/nl/control...ures.while.php Heb je nodig als je een resultset meerdere rows oplevert, dus in het geval van een lijst met FAQs. Wat is $dbid? Daar komt kennelijk een TABELnaam in te staan, waarom noem je het dan een $dbid? Gebruik alsjeblieft namen (tabellen, rows, variabelen) die slaan op de inhoud, anders kunnen wij er ook geen kaas van maken. Die titel: Duh? Je wilt in je index toch een lijst met FAQs ofniet? Wat geef je dan weer, de titel/onderwerp/whatever toch? Denk a.j.b. eerst even goed na, want antwoorden geven op domme vragen is irritant. include "dbconfig.php"; include "functions.php"; mysql_connect($dbhost, $dbuser, $dbpassword); $query = "SELECT * FROM $dbid order by id DESC"; $query = "SELECT * FROM faq WHERE id=".$id; $result = mysql_db_query($dbname2, $query); Je code: Je maakt 2 keer een string ($query) aan met daarin een SQL query, maar je doet vervolgens niks met de eerste! Maak nu eerst index.php eens af, en laat die ff zien. |
Citaat:
Mijn code is nu als volgt: PHP-code:
|
Citaat:
Je kunt ook varnamen binnen HTML weergeven, maar dan moet je ze tussen <?= en ?> zetten. Dus zo: PHP-code:
|
Mijn index.php bevat nu de volgende tekst:
PHP-code:
|
Alle tijden zijn GMT +1. Het is nu 09:50. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.