Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   PHP vraag (https://forum.scholieren.com/showthread.php?t=135002)

chatfreak2002 21-06-2002 13:13

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?

Triloxigen 21-06-2002 13:19

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

chatfreak2002 21-06-2002 13:24

Ik heb nu een nieuwe rij ID gemaakt, dan kan ik nu dus met $id het id uit de database trekken....

Triloxigen 21-06-2002 13:52

Citaat:

chatfreak2002 schreef:
Ik heb nu een nieuwe rij ID gemaakt, dan kan ik nu dus met $id het id uit de database trekken....
euhm..
ik weet niet hoe je je vars noemt :p

Ik ben net dit aan het maken, maybe heb je er wta aan

PHP-code:

        $result mysql_query("SELECT * FROM klanten WHERE $where order by 'name' DESC");
        while(
$row mysql_fetch_array($result)) {
             echo 
"<a href=\"bedrijf.php?id=$row[id]\">$row[naam]</a><br>";
             
        } 


chatfreak2002 21-06-2002 13:54

Het is al gelukt :D

chatfreak2002 21-06-2002 13:57

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:

        <td bgcolor=\"#EAC840\"><font class=\"nf"\><a href=\"#$id\">$site</a></font><font class=\"sf\"></font></td> 

wat is er fout?

[edit] voor alle "-s staat een \ maar op de een of andere manier wordt die weggehaald :confused: [/edit]

Harrie 21-06-2002 13:59

PHP-code:

        <td bgcolor=\"#EAC840\"><font class=\"nf\"><a href=\"#$id\">$site</a></font><font class=\"sf\"></font></td> 

een \ stond achter de " ..

wuh.. de php wordt niet correct weergegeven idd

Triloxigen 21-06-2002 14:35

Ik zou er wat meer \ erbij zetten :D:D

chatfreak2002 21-06-2002 14:35

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?

Triloxigen 21-06-2002 14:37

SELECT count(*) from tabeletje

chatfreak2002 21-06-2002 14:39

Citaat:

McLaren schreef:
SELECT count(*) from tabeletje
dat wordt mijn code dus:

PHP-code:


$totalfaq 
SELECT count(*) from id1 

klopt dat?

Triloxigen 21-06-2002 14:41

nee :D:D

je moet het wel in een mysql query gooien :p

$totalfaq = mysql_query(SELECT count(*) from TABEL);

chatfreak2002 21-06-2002 14:42

Citaat:

McLaren schreef:
nee :D:D

je moet het wel in een mysql query gooien :p

$totalfaq = mysql_query(SELECT count(*) from TABEL);

heb te lang achter de comp gezeten vrees ik :P

chatfreak2002 21-06-2002 14:46

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); 


Triloxigen 21-06-2002 14:48

$totalfaq = mysql_query("SELECT count(*) from ID1");



quotjes erbij [was ik zelf ook vergeten] :p

chatfreak2002 21-06-2002 14:58

mijn code is dus nu zo maar volgens mij zit er iets grandioos fout:

PHP-code:

    <?
include "dbconfig.php";
include("functions.php");
mysql_connect($dbhost, $dbuser, $dbpassword);
$query = "SELECT * FROM $dbid order by id DESC";
$result = mysql_db_query($dbname2, $query);
$totalfaq = mysql_query("SELECT count(*) from $dbid"); 

 echo "

$totalfaq

";
        }

}
?>


Chimera 21-06-2002 15:00

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.

chatfreak2002 21-06-2002 15:02

maaaaar die code die ik dus gebruik werkt niet, had ik misschien nog een extra iets moeten draaien in mijn tabel?

Chimera 21-06-2002 15:02

Citaat:

chatfreak2002 schreef:

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).

Waarom mist de id? Zelfs met de naam als primary key, is een index op een integer waarde sneller dan een index op een varchar o.i.d. Verder is het ook maar de vraag of een naam ubarhaupt uniek gaat zijn.

chatfreak2002 21-06-2002 15:06

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!

Chimera 21-06-2002 15:07

Citaat:

chatfreak2002 schreef:
maaaaar die code die ik dus gebruik werkt niet, had ik misschien nog een extra iets moeten draaien in mijn tabel?
Je krijgt een resultset terug van mysql_query. Dit is een 'link' naar een resultaat, en geen gewone variabele. Een resultaat kan namelijk ook een paar miljoen rows met elk 20 columns zijn, en dat stop je niet ff in een var natuurlijk ;)

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.

chatfreak2002 21-06-2002 15:37

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?

Triloxigen 21-06-2002 15:52

select * from ID1 where id = '$id'

chatfreak2002 21-06-2002 17:38

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?

Manuzhai 21-06-2002 17:47

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/.

eddie 21-06-2002 17:49

select * from posts where topic = $id

je moet alleen je select-statement aanpassen...

chatfreak2002 21-06-2002 17:50

Citaat:

eddie schreef:
select * from posts where topic = $id

je moet alleen je select-statement aanpassen...

in mijn index.php of showfaq.php?

eddie 21-06-2002 17:54

Citaat:

chatfreak2002 schreef:


in mijn index.php of showfaq.php?

die laatste...

je geeft je topicid mee met de url (blabla/showfaq?id=2)
en in showfaq
PHP-code:

$result mysql_query"select * from posts where id = $id");

while( 
$row mysql_fetch_array$result ) ){
  
blablabla


:)

chatfreak2002 21-06-2002 17:58

Citaat:

eddie schreef:

tekst

Dit is op dit moment mijn showfaq.php (alleen het php gedeelte)

PHP-code:

<?
include "dbconfig.php";
include "functions.php";
mysql_connect($dbhost, $dbuser, $dbpassword);
$query = "SELECT * FROM $dbid order by id DESC";
$result = mysql_db_query($dbname2, $query);
            echo "
            
            
            
            
           
<table cellpadding=0 cellspacing=0 border=0 bgcolor=#455c92 width=630 align=center>
<tr>

<td>

<table cellspacing=0 border=0 width=630>
<tr>
    <td bgcolor=#455c92 width=18% nowrap><font class=sf color=#FAD850><b>Auteur</b></font></td>
    <td bgcolor=#455c92 width=100%>
    
<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">
<tr>
<td width=\"100%\"><font class=\"nf\" color=\"#FAD850\"><b>$onderwerp</b></font></td><TD><a name=\"$id\"></a> 

</tr>
</table>
</td>
</tr>
</table>
</td>
</tr></table>
</TD>
</TR>
</TABLE>


<table bgcolor=#ababab width=630 cellpadding=0 cellspacing=0 border=0>
<tr><td width=1 bgcolor=#455c92><img width=1 height=1 src=http://forum.scholieren.com/images/space.gif alt=\"\"></td><td width=627>
<table cellpadding=\"4\" cellspacing=\"0\" border=\"0\"  width=\"100%\">
            <tr>
    <td bgcolor=\"#FAD850\" width=\"19%\" valign=\"top\">
    <font class=\"nf\"><b>$name</b></font><br>
    <font class=\"sf\">$status<br><br></font></td>
    
    <td bgcolor=\"#FAD850\" valign=\"top\">
        <table WIDTH=100% BORDER=0 CELLPADDING=0 CELLSPACING=0>
        <tr>    <td><font class=sf><font color=\"#455c92\"><img src=\"http://forum.scholieren.com/images/icons/icon1.gif\" border=\"0\" alt=\"\"> 

gepost op $date</font></font></td>
            <td ALIGN=right VALIGN=bottom><font class=\"sf\"></td>
        </tr>
        </table><font class=\"nf\"><hr>
<br />

$bericht</font>

</td>
    </tr>
    </table>

</td>
<td width=2 bgcolor=#373737>
<img width=2 height=1 src=\"http://forum.scholieren.com/images/space.gif\" alt=\"\">
</td>
</tr>
<tr HEIGHT=1><td bgcolor=\"#455c92\" COLSPAN=2><img width=\"1\" height=\"1\" src=\"http://forum.scholieren.com/images/space.gif\" alt=\"\"></td><td width=2 

bgcolor=#373737><img width=\"2\" height=\"1\" src=\"http://forum.scholieren.com/images/space.gif\" alt=\"\"></td>
</tr>
</table><BR>";
        }

}
?>

waar moet het nu dan tussen?

eddie 21-06-2002 18:00

in je select-statement? :rolleyes:

ja, sorry hoor... moest even...

chatfreak2002 21-06-2002 18:01

Citaat:

eddie schreef:
in je select-statement? :rolleyes:

ja, sorry hoor... moest even...

ja sorry hoor maar ik kom er niet uit :( de rest is me wel gelukt maar als ik hem er tussen zet doet hij het niet....

ehm, kan jij misschien ff de code er bij tussen zetten en de nieuwe volledige code posten?

eddie 21-06-2002 18:03

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?

Chimera 21-06-2002 18:03

Lees dan gewoon die tutorials ff door joh, je kunt niet van mensen verwachten dat ze je constant aan het handje houden.

chatfreak2002 21-06-2002 18:07

Citaat:

eddie schreef:
hoe is je database opgebouwd dan?

Ik heb 1 tabel; ID1. Die tabel is opgebouwd uit de volgende onderdelen:

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

eddie 21-06-2002 18:13

: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)...

Chimera 21-06-2002 18:14

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.

chatfreak2002 21-06-2002 18:14

Citaat:

eddie schreef:
Ik kan me verder ook weinig voorstellen bij een forum-faq...
gewoon een pagina waar leden FAQ`s kunnen raadplegen over verschillende onderwerpen...

Chimera 21-06-2002 18:16

Citaat:

eddie schreef:

Uhm... dan zou ik je database nog maar eens goed uitdenken...

Onzin. Het is een tabel met FAQs. Waar jij post en topic vandaan haalt weet ik niet, maar twee tabellen is overkill voor wat Chatfreak wil.

eddie 21-06-2002 18:17

Citaat:

Chimera schreef:


Onzin. Het is een tabel met FAQs. Waar jij post en topic vandaan haalt weet ik niet, maar twee tabellen is overkill voor wat Chatfreak wil.

Ah.. ik las je reactie ja..

Ik dacht dat hij het zo wou hebben dat je op een vraag kon reargeren met een opmerking/bericht...

chatfreak2002 21-06-2002 18:19

Citaat:

eddie schreef:

Ah.. ik las je reactie ja..

Ik dacht dat hij het zo wou hebben dat je op een vraag kon reargeren met een opmerking/bericht...

nee, het is nou juist de bedoeling dat mensen niet meer de standaard vragen gaan stellen op het forum die al 84290 keer voorbij zijn gekomen maar eerst even in de FAQ kijken.

Scheelt een hoop frustratie van forummers...

eddie 21-06-2002 18:23

Citaat:

chatfreak2002 schreef:


nee, het is nou juist de bedoeling dat mensen niet meer de standaard vragen gaan stellen op het forum die al 84290 keer voorbij zijn gekomen maar eerst even in de FAQ kijken.

Scheelt een hoop frustratie van forummers...

Keej! :D :)

Dan zoals Chimera zei... :)

chatfreak2002 21-06-2002 18:31

Citaat:

Chimera schreef:
Vraagje: Welke PHP versie gebruik je?
Pff geen idee, ik gebruik de server van endoria en weet niet wat ze draaien.

Citaat:

Chimera schreef:
Erg simpel dus. Teneerste: Verander die tabelnaam ff van ID1 naar faq, die naam slaat nergens op.
Done.


Citaat:

Chimera schreef:
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.

Een watte? Dat komt later nog wel, eerst het grove werk.

Citaat:

Chimera schreef:
Print de links als volgt:

echo "<a href='showfaq.php?id=".$row->id."'>".$row->titel."</a>";

Waarom staat er "titel" in. Ik gebruik nergens de variabele titel. "echo" kan ik weglaten omdat ik een heel groot stuk echo (tabel enzo)

Citaat:

Chimera schreef:

FAQ-weergave pagina:
$query = "SELECT * FROM faq WHERE id=".$id;
Zo haal je één FAQ op a.d.v. z'n ID.

Ik heb daar nu de volgende code staan:

PHP-code:

<?
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);


eddie 21-06-2002 18:39

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 :)

chatfreak2002 21-06-2002 18:40

Citaat:

eddie schreef:
'Waarom staat er "titel" in'
Beetje fantasie gebruiken... titel = onderwerp ?

wkej, dan kan ik titel dus veranderen naar onderwerp :D ik d8 al wat doe ik nou weeeeer fout :D

chatfreak2002 21-06-2002 18:44

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:

 <td bgcolor=#EAC840><font class=nf>"<a href='showfaq.php?id=".$row->id."'>".$row->onderwerp."</a>"; </font><font class=sf></font></td> 


eddie 21-06-2002 18:46

ik denk dat je 2 " teveel hebt... (denken... ik weet het wel zeker :D)

Chimera 21-06-2002 18:49

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.

chatfreak2002 21-06-2002 18:50

Citaat:

eddie schreef:
ik denk dat je 2 " teveel hebt... (denken... ik weet het wel zeker :D)
je hebt gelijk ja :) had verkeerd gekopieerd maar nu doet ie het nog niet :(

Mijn code is nu als volgt:

PHP-code:

<a href='showfaq.php?id=".$row->id."'>".$row->onderwerp."</a

(De titels van de FAQ staan achter de variabele $onderwerp)

Chimera 21-06-2002 18:52

Citaat:

chatfreak2002 schreef:
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:

 <td bgcolor=#EAC840><font class=nf>"<a href='showfaq.php?id=".$row->id."'>".$row->onderwerp."</a>"; </font><font class=sf></font></td> 


Waar staat de echo?

Je kunt ook varnamen binnen HTML weergeven, maar dan moet je ze tussen <?= en ?> zetten. Dus zo:

PHP-code:

 <td bgcolor=#EAC840><font class=nf>
<a href="showfaq.php?id=<?=$row->id?>"><?=$row->onderwerp?></a>
</font><font class=sf></font></td>


chatfreak2002 21-06-2002 18:53

Mijn index.php bevat nu de volgende tekst:

PHP-code:

<?
include "dbconfig.php"; 
include "functions.php"; 
mysql_connect($dbhost, $dbuser, $dbpassword); 
$query = "SELECT * FROM faq order by id DESC"; 
$query = "SELECT * FROM faq WHERE id=".$id; 
$result = mysql_db_query($dbname2, $query); 


if ($result)
{
    while ($r = mysql_fetch_array($result))
        {
            $id  = $r["id"];
            $name  = $r["name"];
            $date = date ("d-m-y @ H:i", $r['date']);
            $email  = $r["email"];
            $onderwerp  = $r["onderwerp"];
            $bericht1  = $r["bericht"];
            $bericht1 = ubb($bericht1);


$bericht = wordwrap( $bericht1, 65, "\n", 1);




            echo "



<tr>
        <td bgcolor=#EAC840><img src=http://forum.scholieren.com/images/folder.gif width=14 height=15 border=0 alt=></td>
        <td bgcolor=#FAD850><img src=http://forum.scholieren.com/images/icons/icon1.gif  border=\"0\" alt=\"\"></td>
        <td bgcolor=#EAC840>
        
        <font class=nf><a href='showfaq.php?id=".$row->id."'>".$row->onderwerp."</a></font>
        
       </td>
        <td bgcolor=#FAD850><font class=nf><a href=index.php>$name</a></font></td>
        <td bgcolor=#EAC840><font class=nf><a href=index.php>$date</a></font></td>

</tr>
";
        }

}
?>



Alle tijden zijn GMT +1. Het is nu 09:50.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.