[php/mysql] if elseif probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hey people,

ben met een sciptje bezig waar als een waarde uit de DB gehaald wordt x is een andere text moet geven als bij y:
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
session_start();

if(!session_is_registered('memberid')){
    echo"U moet ingelogd zijn om uw statistieken te bekijken!<br><br>";
}
else{

$query=mysql_query("SELECT * FROM tabel WHERE id='$memberid'");
while($object=mysql_fetch_object($query)){

if($object < 100)  {
    echo "text 1";
} elseif (($object >= 101 and $object <= 200)) {
    echo "text 2";
} elseif (($object >= 201 and $object <= 300)) {
    echo "text 3";
} elseif (($object >= 301 and $object <= 400)) {
    echo "text 4";
} elseif (($object >= 401 and $object <= 500)) {
    echo "text 5";
} else {
    echo "text else";
}
}
}


ofwel mijn vraag, where did i go wrong...

[ Voor 51% gewijzigd door curry684 op 24-11-2003 01:03 ]


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

Waar komt $object vandaan en wat heeft het met die query temaken?

Acties:
  • 0 Henk 'm!

  • Macros
  • Registratie: Februari 2000
  • Laatst online: 15-05 16:29

Macros

I'm watching...

Waar heb je het over?

"Beauty is the ultimate defence against complexity." David Gelernter


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

En krijg je geen problemen met Register_Globals ?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
$object is een kolom uit de Database

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 november 2003 @ 00:24:
$object is een kolom uit de Database
Dan zul je toch eerst de resultset moeten doorlopen

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
eh, resultset??

wat heeft die in deze te maken??

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 november 2003 @ 00:27:
eh, resultset??

wat heeft die in deze te maken??
Hoe wil je anders $object vullen? Wat denk je dat je terugkrijgt als je een sql statement uitvoert?

Zie bijvoorbeeld: http://www.freewebmasterhelp.com/tutorials/phpmysql/4

Er zullen vast betere tutorials zijn, maar ik ben niet zo thuis in PHP.

[ Voor 38% gewijzigd door gorgi_19 op 24-11-2003 00:31 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ehm....$object is een kolom die in de Database sit..
wil je zeggen dat ik opeens geen rechtstreekse resultaten uit mijn DB kan halen???

heb overigens de begin post aangepast, had de overbodige delen uit het script weggelaten, nu iets meer gezet... (sorry)

[ Voor 32% gewijzigd door Verwijderd op 24-11-2003 00:32 ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 november 2003 @ 00:30:
ehm....$object is een kolom die in de Database sit..
wil je zeggen dat ik opeens geen rechtstreekse resultaten uit mijn DB kan halen???
Zou me eigenlijk heel erg verbazen als dat wel kon. Stel je krijgt 2 records terug; hoe moet hij dan een variabele vullen?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hij selecteert al een record op basis van de memberid...die wordt opgeroepen in de regel


$query=mysql_query("SELECT * FROM tabel WHERE id='$memberid'");

[ Voor 12% gewijzigd door Verwijderd op 24-11-2003 00:34 ]


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

Overbodig?
Als ze iets niet zijn, is het dat wel.

mysql_fetch_object zet de results in een object, niet in een string variabele.

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 24 november 2003 @ 00:33:
hij selecteerd al een record op basis van de memberid...die staa opgeroepen in de regel
$query=mysql_query("SELECT * FROM tabel WHERE id='$memberid'");
Dit impliceert niet per definitie dat ik maar 1 record terugkrijg. Eveneens kan PHP die veronderstelling niet aangaan. Je krijgt nu een recordset terug, waar maar 1 record in zit. Het kunnen er echter meer zijn.

* gorgi_19 sluit zich trouwens aan bij DizzyWeb; dit verandert je code wel wezenlijk.

[ Voor 11% gewijzigd door gorgi_19 op 24-11-2003 00:36 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

gorgi_19 schreef op 24 november 2003 @ 00:35:
[...]

Dit impliceert niet per definitie dat ik maar 1 record terugkrijg. Eveneens kan PHP die veronderstelling niet aangaan. Je krijgt nu een recordset terug, waar maar 1 record in zit. Het kunnen er echter meer zijn.
Correctie, het zit in een while loop, er word steeds maar 1 record per keer afgehandeld.
Maar, het zit wel in een object. Je kan niet gewoon ff $object vergelijken.

[ Voor 3% gewijzigd door DizzyWeb op 24-11-2003 00:39 . Reden: gorgi_19 begrijpt het nu denk ik wel :P ]


Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:24

gorgi_19

Kruimeltjes zijn weer op :9

DizzyWeb schreef op 24 november 2003 @ 00:37:
[...]

Correctie, het zit in een while loop, er word steeds maar 1 record per keer afgehandeld.
Maar, het zit wel in een object. Je kan niet gewoon ff $object vergelijken.
Ik ging nog uit van de oude code en doelde voornamelijk op $query ... ;)

[ Voor 6% gewijzigd door gorgi_19 op 24-11-2003 00:39 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja sorry, mijn fout, ik probeer natuurlijk niet onnodig veel onnodige troep in de post te zetten die niet relevant zou zijn...

Acties:
  • 0 Henk 'm!

  • Bubbaman
  • Registratie: Juli 2003
  • Laatst online: 20-03-2022
ofwel mijn vraag, where did i go wrong...
Bij het opvragen van de session variabele...
Gewoon if(!$waarde){exit}else{actie}; niet dat gedoe met die "session_is_registered"; compleet overbodig.

Acties:
  • 0 Henk 'm!

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 05-09 14:30

DizzyWeb

Ondertiteld

Kijk hier eens:
http://nl.php.net/mysql_fetch_object

Vooral HOE ze de waarden uit een record benaderen...
$row->veldnaam enzo...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
snap ik bubbaman, doch daar zit nog een else {....} tussen, die gewoon goed werkte voor ik bovenstaande code erachter gooide.

dizzy, tnx 4 the vergelijking, zie allene het verschil niet, sorry, ligt waarschijnlijk aan mij..

CB wordt al geopend in de ge-include head (die ik als onnodig heb weggelaten)
als je dat bedoelt.

Heb beide codes verder nogmaals langs elkaar gelegd, maar zie op benaming na geen verschil... :'( :? 8)7

[ Voor 56% gewijzigd door Verwijderd op 24-11-2003 00:53 ]


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Meneer snorman: je bent ondertussen heel vaak gewezen op het gebruik van [php] en [code]-tags om je code leesbaar te maken, doe dat dan gebruiken aub. Tevens heb je er nogal een handje van om je topics zo cryptisch en onbegrijpelijk mogelijk te maken. Daar moet je echt wat aan doen hoor want 26 posts aan 'raad het probleem' heeft niemand wat aan.

Lees eens wat tutorials en verzorg je posts, en laat dus geen relevante code weg om het zo kort mogelijk te houden. Kort is d:)b, te kort is :(

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

dizzy, tnx 4 the vergelijking, zie allene het verschil niet, sorry, ligt waarschijnlijk aan mij..
psst...
code:
1
2
while($object=mysql_fetch_object($query)){ 
if($object < 100)  {

code:
1
2
3
4
while ($row = mysql_fetch_object($result)) {
    echo $row->user_id;
    echo $row->fullname;
}

zoek de verschillen :+
en ja het heeft iets te maken met ->

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ok mijn fout, dat was dus ook nog iets dat ik als non-interesting niet gepost had, maar staat erbij:

PHP:
1
2
3
4
    echo"<center><table border=\"0\" width=\"400\"><tr><td>";
    echo"Uw bedrijf is  <b>€".$object->bedrijf."</b> waard.<br>";
    echo"U heeft ".$object->people." mensen in uw bedrijf werken.<br>";
    echo "<a href=\"plus.php?id=$_GET[id]\"> uitbreiden </a><br>";


staat nog na de while..

stond er dus in bij me... dus met dat erbij (sorry dat konden jullie niet zien) zag ik geen verschillen.

[ Voor 54% gewijzigd door Verwijderd op 24-11-2003 18:50 ]


Acties:
  • 0 Henk 'm!

  • Paul
  • Registratie: September 2000
  • Laatst online: 17-09 19:54
Je zet de data van je 'object'-veld in resultset $object Een resultset lijkt me van het type resultset, en niet van het type integer of string...

Ik ken totaal geen PHP, maar puur gebaseerd op het stukje van IceFlame lijkt het me dat je wat stappen overslaat...

Uit je resultset moet je een rij (record) halen en uit dat record je kolom.

"Your life is yours alone. Rise up and live it." - Richard Rahl
Rhàshan - Aditu Sunlock


Acties:
  • 0 Henk 'm!

Verwijderd

Ik heb die fetch-object functie nooit gebruikt, maar ik gok dat je 'object' in de condities van je if-else statement moet vervangen door:

PHP:
1
$object->$member_id


Of zoiets. Zoek eens een voorbeeld op wat die functie gebruikt, kan me niet voorstellen dat het daar niet in staat :D

[ Voor 33% gewijzigd door Verwijderd op 24-11-2003 20:50 ]

Pagina: 1