Toon posts:

[PHP] isset probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Om te testen of in de querystring de variabele $startfrom is meegegeven, wil ik deze functie gebruiken.

De variabele is meegegeven, (10), maar toch blijft hij 0...
(of leeg)
hoe kan dit?

IF (!isset($startfrom))
{
$startfrom=0;
}

Ik wil nl een LIMIT in MySql gebuiken om max 10 berichtjes in het forum weer te geven...

$startfrom moet dus 0 gezet worden om geen mysql foutmelding te krijgen.

Bedankt!

  • 2
  • Registratie: November 2000
  • Laatst online: 31-03 13:52

2

Zou het vlgs mij gewoon moeten doen. Wat als je $HTTP_GET_VARS["startfrom"] gebruikt?

Verwijderd

Topicstarter
nope...

dit is de querystring:
http:/blaat/forum/?bericht=110&startfrom=20

dit is de code:
$beginop = $HTTP_GET_VARS["startfrom"];

en dit is de foutmelding:
Warning: Undefined variable: HTTP_GET_VARS in e:\inetpub\wwwroot\svk\www01\includes\fun.php on line 241



*grrr*

  • simenon
  • Registratie: Januari 2001
  • Laatst online: 03-02-2023
Op woensdag 14 november 2001 00:53 schreef BarisArt het volgende:
Om te testen of in de querystring de variabele $startfrom is meegegeven, wil ik deze functie gebruiken.

De variabele is meegegeven, (10), maar toch blijft hij 0...
(of leeg)
hoe kan dit?
duh :z als je startfrom=10 aan de link meegeeft is ie nogal logisch geset ... dus die isset is altijd false
IF (!isset($startfrom))
{
$startfrom=0;
}

Ik wil nl een LIMIT in MySql gebuiken om max 10 berichtjes in het forum weer te geven...

$startfrom moet dus 0 gezet worden om geen mysql foutmelding te krijgen.

Bedankt!
als je maar 10 berichtjes wilt laten zien maak je toch ff een tellertje ofzoiets.
je kan ook doen
code:
1
2
3
4
IF ($startfrom+10!=$counter)
{
   $counter++;
}

en dan moet je de counter nog ergens gelijk stellen aan startfrom

Verwijderd

Topicstarter
ALs die thread minder dan 10 replies bevat komt er onder in beeld niet te staan: "dit bericht bevat uit 2 pagina's" ofzo.

bij minder dan 10 schrijft hij die hele variabele niet in de querystring.

er staat dan alleen: asda/asdas/asd/?bericht=110
Pas als het bericht uit meer dan 10 reacties bestaat, komt er onderin beeld een link. Dit bericht bestaat uit 4 pagina's: 1 2 3 4
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
                $aantalrecords = mysql_num_rows($result);
                IF (ceil($aantalrecords/10)>1)
                {
                    echo "<td><A HREF=\"newtopic.php?bericht=".$bericht."\">Plaats een reactie</A></td><td width=\"100%\" align=\"right\"><A>Dit bericht is ".ceil($aantalrecords/10)." pagina's lang. Pagina:</A>";
                        for ($i = 1; $i <= (ceil($aantalrecords/10)); $i++)
                        {
                            echo "<A HREF=\"?bericht=".$bericht."&amp;startfrom=".($i*10-10)."\">$i</A><A>&amp;nbsp;</A>";
                        }
                    echo "</td>";
                }
                ELSE
                {
                    echo "<td colspan=2><A HREF=\"newtopic.php?bericht=".$bericht."\">Plaats een reactie</A></td>";
                }
?>

Maar ik dwaal af :)
Het gaat er dus om dat die variabele niet altijd geset is. Dus wil ik dat php eerst kijkt of die variabele geset is. Zo niet dan moet hij geset worden en nul (0) worden.

in de SQL gebruikt ik dan
code:
1
2
3
4
5
6
7
8
9
10
        $beginop = $HTTP_GET_VARS["startfrom"];
                $result = mysql_query("
                SELECT tblForumReply.ReplyTekst, tblForumUser.UserID, tblForumUser.UserNickName, tblForumUser.UserHTTP, 
                tblForumUser.UserOndertitel, tblForumUser.UserSignature, tblForumUser.UserICQ, DATE_FORMAT(tblForumReply.ReplyDateTime, '%W %e %b %Y - %H:%i') AS lastpost
                FROM tblForumReply
                  INNER JOIN tblForumUser ON tblForumReply.ReplyPoster = tblForumUser.UserID
                WHERE tblForumReply.ReplyTo = $bericht
                ORDER BY tblForumReply.ReplyDateTime
                LIMIT $beginop,10;")
                or die ("Sorry, er is een fout opgetreden met de database. Probeer het later nog eens");

maar volgens mijn lieve pc'tje is $startfrom dus nooit geset... Is het misschien een gereserveerd woord ofzo :?

Verwijderd

http:/blaat/forum/?bericht=110&startfrom=20
Ik zou eerst eens proberen om http:// te gebruiken ;)

Daarna zou ik eens proberen om ipv /? gewoon de filename te gebruiken... dus bv /index.php?bericht=110&startfrom=20

  • simenon
  • Registratie: Januari 2001
  • Laatst online: 03-02-2023
zet eens voor het if statement eens
PHP:
1
2
3
<?
  echo $startfrom;
?>

en kijk wat ie eruit pleurt...als er een waarde uitkomt is ie geset anders niet...

Verwijderd

Topicstarter
ok DuLongue, ik zal het proberen zo gauw ik thuis ben van mijn werk, vanavond horen je meer :)

simenone, dat heb ik al geprobeerd, ik krijg dan een foutmelding: unknown variable $startfrom at line [..]

  • simenon
  • Registratie: Januari 2001
  • Laatst online: 03-02-2023
simenone, dat heb ik al geprobeerd, ik krijg dan een foutmelding: unknown variable $startfrom at line [..]
als ie dat al zegt voor de isset statement
PHP:
1
2
3
<?
if (!isset($startfrom)) {}
?>

dan zegt dat toch al genoeg...
hij kent de variabele niet $startfrom niet dus heeft hij ook geen waarde en is dus ook niet geset...

gevolg is dus dat hij in het if-statement springt...

mogelijk kan het zijn dat je een typefout of dergelijke ergens hebt...

misschien verstandig om eens goed naar je code te kijken

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 12:07

TheDane

1.618

Op woensdag 14 november 2001 01:15 schreef BarisArt het volgende:
nope...

dit is de querystring:
http:/blaat/forum/?bericht=110&startfrom=20

dit is de code:
$beginop = $HTTP_GET_VARS["startfrom"];

en dit is de foutmelding:
Warning: Undefined variable: HTTP_GET_VARS in e:\inetpub\wwwroot\svk\www01\includes\fun.php on line 241



*grrr*
al
code:
1
global $HTTP_GET_VARS;

geprobeerd ?

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Op woensdag 14 november 2001 14:53 schreef BarisArt het volgende:
ok DuLongue, ik zal het proberen zo gauw ik thuis ben van mijn werk, vanavond horen je meer :)

simenone, dat heb ik al geprobeerd, ik krijg dan een foutmelding: unknown variable $startfrom at line [..]
"unknown variable"?
Welke versie heb jij? Of heb je de allerhoogste warninglevel aangezet ofzo?

probeer eens het volgende:

index.php
PHP:
1
2
3
4
5
6
7
8
9
<?
echo "<pre",
     var_dump ( $GLOBALS ),
     "</pre>";
die;
/*
Hier de rest van je code
*/
?>

en ga na of daar dan "startfrom" tussen staat, bij aanroep van: index.php?startfrom=10

Zo ja:
Ga na of hij direct in de $GLOBALS array staat of in $HTTP_GET_VARS of misschien zelfs wel in een andere array :?
Dan weet je hoe je bij die waarde moet komen.

Als je de code in een functie gebruikt moet je idd. gebruik maken van het global commando;

zo nee:
dan weet ik het ook niet.

tip 1: gebruik ipv. isset:
[php]<?
if ( !isset ( $var ) || empty ( $var ) )
; // blablabla
else
; // blablabla
?>[/php]
tip 2: Gebruik kleine letters voor keywords en gereserveerde woorden zoals if else etc.
Is lekkerder lezen, en het is ook het meest gehanteerd.



edit: even wat vollediger

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1