Een heel simpel script
Ik heb een heel simpel script gemaakt, waarvan ik had gehoopt dat ik data uit een tabel van mijn PHPBB kon lezen. Maar om eerlijk te zijn... Mijn denkt wijze klopt waarschijnlijk niet. Zou iemand een serieuze poging willen wagen om te kijken waar mijn gedachte fout zit?
De enige output is het weblog 2005 headertje.
Groet,
Rob
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//-- maak eerst de connectie met de database!
$user = "*****l";
$pass = "*****";
$host = "localhost";
$dbdb = "*****";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * '
. ' FROM `phpbb_posts_text` LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
$news = phpbb_fetch_rows($sql);
for ($i = 0; $i < count($news); $i++)
{
echo $news[$i]['post_subject'], '<br>';
echo $news[$i]['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
die();
?>
//-- maak eerst de connectie met de database!
$user = "*****l";
$pass = "*****";
$host = "localhost";
$dbdb = "*****";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * '
. ' FROM `phpbb_posts_text` LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
$news = phpbb_fetch_rows($sql);
for ($i = 0; $i < count($news); $i++)
{
echo $news[$i]['post_subject'], '<br>';
echo $news[$i]['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
die();
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
//-- maak eerst de connectie met de database!
$user = "*****l";
$pass = "*****";
$host = "localhost";
$dbdb = "*****";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * FROM phpbb_posts_text LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
while ($news = phpbb_fetch_rows($sql)){
echo $news['post_subject'], '<br>';
echo $news['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
?>
//-- maak eerst de connectie met de database!
$user = "*****l";
$pass = "*****";
$host = "localhost";
$dbdb = "*****";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * FROM phpbb_posts_text LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
while ($news = phpbb_fetch_rows($sql)){
echo $news['post_subject'], '<br>';
echo $news['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
?>
Gewijzigd op 23/12/2005 10:53:00 door Robert Deiman
Helaas is de werking hetzelfde. Jij hebt er alleen een while lus in gemaakt, als ik me niet vergis.
Ik krijg geen error op de connect. Wel als ik het password bewust verkeerd invul (als test). Ik ga er dus vanuit dat dit goed is.
Alleen er komt geen uitvoer. Terwijl ik zeker weet dat er data in de database zit. Met PhpMyAdmin en deze query komt er namelijk wel data uit. Ik heb ook het SQL statement zo simpel mogelijk gehouden.
De enig uitvoer is Weblog 2005... maar ja dir is een directe echo naar het scherm.
Wat doe ik verkeerd?
Kopieëer het script wat ik postte eens en vul de goede gegevens even in. Moet werken.
echo $news['post_subject'], '<br>';
echo $news['post_text'], '<br>';
post_text en post_subject zijn wel echt de namen van de kolommen?
Gewijzigd op 23/12/2005 11:13:00 door Robert Deiman
Ik vrees helaas, want ik heb nogmaals je script op de server gezet, dat het niet werkt.
De velden kloppen ook. Deze heb ik overgenomen van PgpMyAdmin. Er zijn echter nog wel 2 velden meer, maar dat maakt niet uit denk ik?
Eigenlijk snap ik de echo niet meer. Als het goed is bestaat het result uit meerdere records. Ik zie in de while lus helemaal niet meer terug welk record het is. Maar dit kan echter komen door mijn gebrek aan kennis. Ik probeer door er mee te spelen wat kennis op te bouwen.
Groet,
Rob
Gewijzigd op 23/12/2005 11:28:00 door Rob
$news = mysql_query($sql);
while ($news = phpbb_fetch_rows($sql)){
De ene keer werk je met mysql, en de andere keer met phpbb.. maar dat moet dan ook mysql zijn :)
mysql_error()?
@Robert.
Sorry... ik ben nu iets verder. Die ene sql regel moest er niet in staan. Dat komt door slecht combineer werk en te weinig kennis. Het script is nu zoals hier onder. Je ziet aan de scrolbar dat er mega veel data gegenereerd wordt... alleen komt er niets op het scherm te staan... alleen lege regels.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
//-- maak eerst de connectie met de database!
$user = "*****";
$pass = "*****";
$host = "localhost";
$dbdb = "*****l";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * '
. ' FROM `phpbb_posts_text` LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
while ($news = mysql_query($sql))
{
echo $news['post_subject'], '<br>';
echo $news['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
?>
//-- maak eerst de connectie met de database!
$user = "*****";
$pass = "*****";
$host = "localhost";
$dbdb = "*****l";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * '
. ' FROM `phpbb_posts_text` LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
while ($news = mysql_query($sql))
{
echo $news['post_subject'], '<br>';
echo $news['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
?>
Jah.. kan ook, alleen geeft die geen mysql error :P Hij doet phpbb_fetch_rows, terwijl die overal met mysql werkt.
En hij wil ook de rijen ophalen van $sql (waar dus alleen de tekst voor de query in staat) in plaats van uit $news, waarin de mysql_query wordt uitgevoerd.
@Rob
Oh.. ik zie net nog wat.. was blijkbaar nog niet wakker:
Je moet de fetch row ook van $news doen en niet van $sql.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
//-- maak eerst de connectie met de database!
$user = "*****";
$pass = "*****";
$host = "localhost";
$dbdb = "*****l";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * '
. ' FROM `phpbb_posts_text` LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
while ($newsgeg = mysql_query($news))
{
echo $newsgeg['post_subject'], '<br>';
echo $newsgeg['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
?>
//-- maak eerst de connectie met de database!
$user = "*****";
$pass = "*****";
$host = "localhost";
$dbdb = "*****l";
if (!mysql_select_db($dbdb, mysql_connect($host, $user, $pass)))
{
echo "Kan geen verbinding maken met de database.";
exit();
}
unset($user);
unset($pass);
unset($host);
unset($dbdb);
$sql = 'SELECT * '
. ' FROM `phpbb_posts_text` LIMIT 0, 30';
$news = mysql_query($sql);
echo "<b>Weblog 2005</b><p>";
while ($newsgeg = mysql_query($news))
{
echo $newsgeg['post_subject'], '<br>';
echo $newsgeg['post_text'], '<br>';
echo '<br>';
echo '<br>';
}
?>
Dit doet minder... Genereert ook geen lege regels...
Moet de echo niet $news zijn ipv $newsgeg?
Anyway... ik heb beide manieren geprobeerd. Helaas werkt het niet.
Sorry...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
//-- maak eerst de connectie met de database!
$user = "*****"; // eigen user invullen
$pass = "*****"; // eigen pass invullen
$host = "localhost"; // klopt meestal, checken in phpmyadmin
$dbdb = "*****"; // eigen dbdb invullen
mysql_connect ($host, $user, $pass);
@mysql_select_db ($dbdb) or die ('Fout bij het selecteren van de database');
unset($user, $pass, $host, $dbdb);
$sql = "
SELECT *
FROM phpbb_posts_text
LIMIT 0, 30";
if (!($res = mysql_query($sql))) {
trigger_error (mysql_error ());
}
else {
echo '<p><b>Weblog 2005</b></p>';
while ($row = mysql_fetch_array ($res)) {
echo '<p>' . $row['post_subject'] . '</p>';
echo '<p>' . $row['post_text'] . '</p>';
}
}
?>
//-- maak eerst de connectie met de database!
$user = "*****"; // eigen user invullen
$pass = "*****"; // eigen pass invullen
$host = "localhost"; // klopt meestal, checken in phpmyadmin
$dbdb = "*****"; // eigen dbdb invullen
mysql_connect ($host, $user, $pass);
@mysql_select_db ($dbdb) or die ('Fout bij het selecteren van de database');
unset($user, $pass, $host, $dbdb);
$sql = "
SELECT *
FROM phpbb_posts_text
LIMIT 0, 30";
if (!($res = mysql_query($sql))) {
trigger_error (mysql_error ());
}
else {
echo '<p><b>Weblog 2005</b></p>';
while ($row = mysql_fetch_array ($res)) {
echo '<p>' . $row['post_subject'] . '</p>';
echo '<p>' . $row['post_text'] . '</p>';
}
}
?>
Gewijzigd op 23/12/2005 15:12:00 door Jan Koehoorn
Helaas...
Het connecten lijkt goed te gaan. Geen error. Als ik het verkeerde password kies krijg ik error uit het script dat hij niet kan selecteren. Dat lijkt dus te werken. De entries zijn letterlijk uit PHPBB en die werkt oke.
Helaas krijg ik geen output... op de Weblog 2005 echo na...
Groet,
Rob
$row = mysql_fetch_array($res1)
maar ook dit:
$res = mysql_query($sql)
is dit niet beter:
$row = mysql_fetch_array($res)
btw kun je ook doen:
print_r($row); dan zie je wat er allemaal precies in $row staat
Gewijzigd op 23/12/2005 14:13:00 door Mischa Gorinskat
Door jullie hulp ben ik er uit!!!! wowowowowow
moest zijn
@ Mischa & Rob: klopt, was een tikfoutje. Ik heb hem er inmiddels uitgehaald.
Zelfs een uitgebreidere query werkt...
Nu nog iets verzinnen om de codes die in de text zitten te vervangen door kleuren en links en afbeldingen... Deze codes worden namelijk door PHPBB in de text gezet. Zoals deze.
[/color=red:714e431880]
Link
Dit soort codes staan in de text. Is er een eenvoudige mainer dat ik deze omzet in een handeling. Zoals rood aanzetten? URL link creeeren.
Heeft iemand een idee?
trouwens... die link is hierboven al vertaald in een echte link... grappig...
Kleurcodes zou ik doen met <span> tags. Als je vervangt door <span style="color: red;"> ben je er al.
Vervangen kun je doen met str_replace.
Dan zal ik die eens met str_replace onderhanden gaan nemen.
Dit moet lukken...
Rob
Maar ik zie nu dat ik het script dat onstaan is, niet helemaal meer begrijp. Ik begrijp niet hoe je een next lus kan maken met daarin niet een teller... Ik bedoel hiermee de while lus...
Ik andere talen, heb je dan een teller die oploopt om op die manier de volgende entrie te laten zien.
Om deze rede weet ik dus niet waar ik de str_replace moet zetten...
Zou iemand me heel kort uit kunne leggen hoe ik het script moet lezen... en de juiste plaats aangeven waar ik dit dus moet paatsen. Ik wil het zelf maken, dus je hoeft het niet in te vullen.
Ik heb wel wat ervaring met vbscript en wat basic ed... maar dit php script kan ik volgen in grove lijnen. Wie heeft er tijd me dit iets verder uit te leggen.
Rob