WHERE cat = 'l' VS WHERE cat = $cat

Installatie lukt niet? Plotseling een foutmelding. Of weet je niet hoe iets werkt. Problemen met phpBB2 kun je in dit archief opzoeken.
Forumregels

Sinds 1 januari 2009 wordt phpBB2 niet meer ondersteund.
Onderstaande informatie is verouderd en dient uitsluitend als archief.
phpBB2.0.x
Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

WHERE cat = 'l' VS WHERE cat = $cat

Bericht door LazyTiger » 28 jul 2004, 13:07

Code: Selecteer alles

$cat = $_GET['cat']; 

Code: Selecteer alles

$sql = "SELECT cat, band, link
								FROM phpbb_bands 
								WHERE cat = 'l'
								ORDER BY band ASC LIMIT $start, " . $board_config['topics_per_page'];

Code: Selecteer alles

$sql = "SELECT cat, band, link
								FROM phpbb_bands 
								WHERE cat = $cat
								ORDER BY band ASC LIMIT $start, " . $board_config['topics_per_page'];
de eerste sql werkt.
de 2de geeft:
Could not obtain bands and artists from bands table

DEBUG MODE

SQL Error : 1054 Unknown column 'l' in 'where clause'

SELECT cat, band, link FROM phpbb_bands WHERE cat = l ORDER BY band ASC LIMIT 0, 50

Line : 59
File : /usr/home/mfo/public_html/phpBB2/bands.php
de 'l' heeft hij dus wel, maar iets doet hij dus niet goed.
wat?

het moet overigens volgens de 2de manier werken, niet volgens de eerste.

Gebruikersavatar
Leipo
Berichten: 4693
Lid geworden op: 22 feb 2003, 12:29
Contacteer:

Re: WHERE cat = 'l' VS WHERE cat = $cat

Bericht door Leipo » 28 jul 2004, 14:11

Code: Selecteer alles

$sql = "SELECT cat, band, link
								FROM phpbb_bands 
								WHERE 'cat = $cat'
								ORDER BY band ASC LIMIT $start, " . $board_config['topics_per_page'];
En dit?
[+] Isento at DeviantArt

Donny_nl
Berichten: 463
Lid geworden op: 27 feb 2004, 13:55
Locatie: Rotterdam
Contacteer:

Re: WHERE cat = 'l' VS WHERE cat = $cat

Bericht door Donny_nl » 28 jul 2004, 16:19

Leipo schreef:

Code: Selecteer alles

$sql = "SELECT cat, band, link
								FROM phpbb_bands 
								WHERE 'cat = $cat'
								ORDER BY band ASC LIMIT $start, " . $board_config['topics_per_page'];
En dit?
Bijna goed;

Code: Selecteer alles

$sql = "SELECT cat, band, link
								FROM phpbb_bands 
								WHERE cat = '".$cat."'
								ORDER BY band ASC LIMIT $start, " . $board_config['topics_per_page'];[/
Wil je Poker leren spelen?
SQL leren?

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 28 jul 2004, 16:33

Code: Selecteer alles

WHERE 'cat = $cat'
Is geen correct SQL Leipo ;)

P.T., de error is logisch omdat er een string (de letter L) in de query wordt geplaatst zonder quotes. Als je alleen integers (cijfers) verwacht mag dat zonder quotes, maar gebruik dan wel de functie intval() om er zeker van te zijn dat er geen SQL errors in komen. Dat wordt dan dus

Code: Selecteer alles

$sql = "SELECT cat, band, link
                        FROM phpbb_bands
                        WHERE cat = ". intval($cat) ."
                        ORDER BY band ASC LIMIT $start, " . $board_config['topics_per_page'];
//edit
Donny was eerder

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 28 jul 2004, 18:12

euhm, ja..
dat werkt. (en weer wat bijgeleerd)
echter niet helemaal.

ik krijg nu namelijk elke keer dezelfde resultaten.

http://www.muziekforumonline.nl/phpBB2/bands.php?cat=l
http://www.muziekforumonline.nl/phpBB2/bands.php?cat=a

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 28 jul 2004, 18:25

Welke code gebruik je nu? En je catagorieëen worden aangeduid door letters zie ik?

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 28 jul 2004, 20:05

ik gebruik jouw code.
ik gebruik inderdaad alleen letters...

ik ga een grote database op zetten met allemaal links naar bands/artiesten.

ik ga nog wat extra dingen toevoegen. (melden van dode links, toevoegen van links, enz)

uit zo'n soort site is MFO ook ontstaan.

//edit
jouw code was voor cijfers.
die van donny werkt!

thanx allemaal.

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 29 jul 2004, 01:49

P.T. schreef://edit
jouw code was voor cijfers.
Klopt, dat zei ik er ook bij. ;)

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 29 jul 2004, 11:43

mosymuis schreef:
P.T. schreef://edit
jouw code was voor cijfers.
Klopt, dat zei ik er ook bij. ;)
daarom da tik he ook wist. ;)

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 29 jul 2004, 13:57

waarom werkt dit wel bij 1 resultaat, maar niet bij 2?

Code: Selecteer alles

$sql = "SELECT cat, band, link, id
								FROM phpbb_bands 
								WHERE cat = '".$cat."'
								ORDER BY band ASC LIMIT $start, " . $board_config['topics_per_page'];
                if( !($result = $db->sql_query($sql)) )
								{
                   message_die(GENERAL_ERROR, 'Could not obtain bands and artists from bands table', '', __LINE__, __FILE__, $sql);
                }
								while($row = $db->sql_fetchrow($result))
							
							      {
										$band = $row['band'];
										$sql = "SELECT topic_title, topic_id
								FROM phpbb_topics 
								WHERE topic_title = '".$band."'";
                if( !($result = $db->sql_query($sql)) )
								{
                   message_die(GENERAL_ERROR, 'Could not obtain bands and artists from bands table', '', __LINE__, __FILE__, $sql);
                }
								while($row2 = $db->sql_fetchrow($result))
							
							  {
								
			 					$template->assign_block_vars('bands_block', array(
  	                        "BANDS" => '<a href="' . $row['link'] . '" target="_blank">'.$row['band'].'</a>',
														"DEAD" => append_sid("bands.$phpEx?action=dead&id=".$row['id']),
														"TOPIC" => '<a href=http://www.muziekforumonline.nl/phpBB2/viewtopic.php?t=' . $row2['topic_id'] . '>' . $row2['topic_title'] . '</a>')
														 );
                
								}
									}			
ik krijg namelijk nu helemaal geen resultaten te zien.
als ik de 2de sql weghaal wel, dus daar zit ergens het probleem.

Donny_nl
Berichten: 463
Lid geworden op: 27 feb 2004, 13:55
Locatie: Rotterdam
Contacteer:

Bericht door Donny_nl » 29 jul 2004, 16:18

Als je geen foutmelding krijgt zijn je queries in orde. Ik zie ook geen fouten staan dus zal het probleem denk ik ergens bij de resultaten zijn. Kijk de tabellen even na of je ook daadwerkelijk datgene uit je tabellen haalt wat je zou moeten halen. loop de queries even na en kijk dus of alles juist staat.
Wil je Poker leren spelen?
SQL leren?

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 29 jul 2004, 17:42

zelf zie ik even niks verkeerds.
ik weet niet of het ook wel correct is, 2 sql's in elkaar.
als er maar 1 resultaat is, geeft hij die weer.
maar zijn er meer resultaten, dan zie ik die niet.

Gebruikersavatar
Luuk
Berichten: 7311
Lid geworden op: 22 okt 2003, 10:07
Locatie: Delft

Bericht door Luuk » 29 jul 2004, 17:47

Dan denk ik dat het aan dit ligt:

Code: Selecteer alles

LIMIT $start, " . $board_config['topics_per_page'];
ik weet niet waar $start voor staat, heb je die wel gedefineerd?
Afbeelding

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 29 jul 2004, 23:37

die staat volgens mij gewoon goed.

check de error in mijn eerste bericht:
Could not obtain bands and artists from bands table

DEBUG MODE

SQL Error : 1054 Unknown column 'l' in 'where clause'

SELECT cat, band, link FROM phpbb_bands WHERE cat = l ORDER BY band ASC LIMIT 0, 50

Line : 59
File : /usr/home/mfo/public_html/phpBB2/bands.php

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 31 jul 2004, 11:48

ik heb het nu zo gedaan:

Code: Selecteer alles

$sql = "SELECT b.cat, b.band, b.link, b.id, t.topic_title, t.topic_id
								FROM phpbb_bands b, phpbb_topics t
								WHERE b.cat = '".$cat."'
								AND t.topic_title = b.band
								ORDER BY b.band ASC LIMIT $start, " . $board_config['topics_per_page'];
                if( !($result = $db->sql_query($sql)) )
								{
                   message_die(GENERAL_ERROR, 'Could not obtain bands and artists from bands table', '', __LINE__, __FILE__, $sql);
                }
								while($row = $db->sql_fetchrow($result))
															{
							     					 	$template->assign_block_vars('bands_block', array(
  	                        "BANDS" => '<a href="' . $row['link'] . '" target="_blank">' . $row['band'] . '</a>',
														"DEAD" => append_sid("bands.$phpEx?action=dead&id=".$row['id']),
														"TOPIC" => '<a href=http://www.muziekforumonline.nl/phpBB2/viewtopic.php?t=' . $row['topic_id'] . '>' . $row['topic_title'] . '</a>')
														 );	
									 }
ik krijg echter niet meer dan 1 resultaat.

volgens mij komt dit omdat hij topic_title met band vergelijkt.

wie kan me nu helpen aan een echt goede code?

wat is de bedoeling:
de bandnaam moet als linken worden weergegeven.
tevens moet hij dan nog zoeken of er een bijbehorende topic is en die moet hij dan als link er ook bij zetten.
als er geen topic bij is, moet hij niks weergeven.

zie hier een voorbeeld met bovenstaande code: http://www.muziekforumonline.nl/phpBB2/bands.php?cat=l

wie o wie kan me aub helpen.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 02 aug 2004, 19:51

de categorie van # werkt niet.
hoe kan ik zorgen dat ook # werkt als cat?

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 07 aug 2004, 14:38

iemand?

Gebruikersavatar
Stef
Berichten: 9080
Lid geworden op: 04 jun 2003, 20:47

Bericht door Stef » 07 aug 2004, 15:23

Werkt ?band=# niet? Lijkt me toch vreemd.

Gebruikersavatar
mosymuis
Berichten: 6940
Lid geworden op: 05 feb 2003, 14:00
Locatie: Amsterdam
Contacteer:

Bericht door mosymuis » 07 aug 2004, 16:27

Stefkuh schreef:Werkt ?band=# niet? Lijkt me toch vreemd.
Nee, # is een teken dat de browser gebruikt om naar anchors binnen de pagina te navigeren. pagina.html#top, je kent het wel. Bij het adres pagina.php?band=# wordt dus een lege "band" variabele aangenomen, met een lege anchor verwijzing.

Gebruikersavatar
LazyTiger
Berichten: 2000
Lid geworden op: 21 okt 2003, 18:21

Bericht door LazyTiger » 07 aug 2004, 16:38

klinkt logisch.
welk teken dat werkt zou ik dan kunnen gebruiken voor de categorie met cijfers en tekens?

Gesloten