Find fejlen... SIkker en meget dum fejl

Tags:    php

<< < 123 > >>
Jeg har strukuren:
<pre>
CREATE TABLE kategori (
id int(11) NOT NULL auto_increment,
kat varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# Struktur dump for tabellen `underkategori`
#

CREATE TABLE underkategori (
id int(11) NOT NULL auto_increment,
kat varchar(255) NOT NULL default '',
ref int(11) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM;

</pre>

Så har jeg en kode til hovedkategorier:

<pre>
<?
$result = mysql_query("SELECT * FROM kategori, is WHERE kategori.id=is.categoryid AND kategori.category = '".$_GET["category"]."'");
while($r = mysql_fetch_array($result))
{
echo "Underkategori: ".$r["kat"]."<br>";
echo "Reference: ".$r["ref"]."<br>";
}
?>
</pre>

Og sidst men ikke mindst en kode til underkategorier:

<pre>
<?
$result = mysql_query("SELECT * FROM kategori, is WHERE kategori.id=is.categoryid AND kategori.category = '".$_GET["category"]."'");
while($r = mysql_fetch_array($result))
{
echo "Underkategori: ".$r["kat"]."<br>";
echo "Reference: ".$r["ref"]."<br>";
}
?>
</pre>

Den sidste med underkategorierne virker ikke... Nogen der kan hjælpe med at finde fejlen?
Jeg tror det er en meget dum fejl men kan ikke finde den :)





26 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Du behøver nu ikke at skrive tabellens navn hver gang.

DISTINCT * giver for mig ingen mening


index.php:
Fold kodeboks ind/udKode 


hvad er det der står i din WHILE?

1) ref=id, det vil sige at kategorien skal ligge inden i sig selv
2) kat=GET[id] det vil sige at den NAVN skal være lig med det angivne ID

Sørg for at id er et tal (sikkerhed)

ukat.php:
Fold kodeboks ind/udKode 


Husk i øvrigt at fjerne or die(mysql_error()) inden du udgiver.

[Redigeret d. 20/06-05 20:51:39 af Jesper Kristensen]



Jeg har strukuren:
<pre>
CREATE TABLE kategori (
id int(11) NOT NULL auto_increment,
kat varchar(255) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
# --------------------------------------------------------

#
# Struktur dump for tabellen `underkategori`
#

CREATE TABLE underkategori (
id int(11) NOT NULL auto_increment,
kat varchar(255) NOT NULL default '',
ref int(11) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM;

</pre>

Så har jeg en kode til hovedkategorier:

<pre>
<?
$result = mysql_query("SELECT * FROM kategori, is WHERE kategori.id=is.categoryid AND kategori.category = '".$_GET["category"]."'");
while($r = mysql_fetch_array($result))
{
echo "Underkategori: ".$r["kat"]."";
echo "Reference: ".$r["ref"]."";
}
?>
</pre>

Og sidst men ikke mindst en kode til underkategorier:

<pre>
<?
$result = mysql_query("SELECT * FROM kategori, is WHERE kategori.id=is.categoryid AND kategori.category = '".$_GET["category"]."'");
while($r = mysql_fetch_array($result))
{
echo "Underkategori: ".$r["kat"]."";
echo "Reference: ".$r["ref"]."";
}
?>
</pre>

Den sidste med underkategorierne virker ikke... Nogen der kan hjælpe med at finde fejlen?
Jeg tror det er en meget dum fejl men kan ikke finde den :)



du har skrevet "is" i dine select queries, mener du ikke "id"?

Casper



Er det bare mig, eller er de to koder ikke identiske? :)



Hov postede en forkert kode :)

Det er den her jeg bruger..:

<pre>
<?
$result = mysql_query("SELECT * FROM underkategori, id WHERE underkategori.id=id.katid AND underkategori.kat = '".$_GET["kat"]."'");
while($r = mysql_fetch_array($result))
{
echo "Underkategori: ".$r["kat"]."<br>";
echo "Reference: ".$r["ref"]."<br>";
echo ("SELECT * FROM underkategori, is WHERE underkategori.id=id.kat AND underkategori.kat = '".$_GET["kat"]."'");
}
?>

</pre>



Jeg forstår dig ikke.

Det gode spørgsmål:
- En sigene overskrift
- Koden der giver problemer
- Hvad du vil have koden til at gøre
- Hvad koden rent faktisk gør
- Hvilke fejlmeddelser der er (her skal du udskrive mysql_error() efter hver query)

Fem punkter hvoraf dit spørgsmål kun opfylder andet punkt.



Jeg forstår dig ikke.

Det gode spørgsmål:
- En sigene overskrift
- Koden der giver problemer
- Hvad du vil have koden til at gøre
- Hvad koden rent faktisk gør
- Hvilke fejlmeddelser der er (her skal du udskrive mysql_error() efter hver query)

Fem punkter hvoraf dit spørgsmål kun opfylder andet punkt.




3) Koden skal ved klik på en hovedkategori fremvise underkategorierne til den valgte kategori

4) Ved klik på hovedkategorien udskriver den følgende: Warning: Supplied argument is not a valid MySQL result resource in c:\\apache\\htdocs\\vivaa.dk\\ukat.php on line 7


Var det bedre?



Lidt bedre.

Du giver information om en fejl. Den fejl du skriver er ikke en egentlig fejl, men en følge-fejl af en tidligere skjult fejl. Udskriv denne fejl. Jeg har skrevet hvordan i min tidligere post, og jeg har også skrevet en faq om det.

Hvad er fejlmeddelsen?



Jeg fandt lige en mindre fejl, så jeg skriver lige koderne op igen..

Koden til kategori.php:

<pre>
<?
$result = mysql_query("SELECT DISTINCT * FROM kategori");
while($r = mysql_fetch_array($result))
{
echo "<a href=ukat.php?id=".$r["id"].">".$r["kat"]."</a><br>";
}
?>
</pre>


Og koden til ukat.php:

<pre>
<?
$result = mysql_query("SELECT * FROM underkategori, id WHERE underkategori.id=id.katid AND underkategori.kat = '".$_GET["id"]."'");
while($r = mysql_fetch_array($result))
{
echo "Underkategori: ".$r["kat"]."<br>";
echo "Reference: ".$r["ref"]."<br>";
echo ("SELECT * FROM underkategori, is WHERE underkategori.id=id.kat AND underkategori.kat = '".$_GET["kat"]."'");
}
?>
</pre>





Kategori.php skal vise nogle hovedkategorier, som man så kan klikke sig ind på... Det man her klikker sig ind på er ukat.php, som skal udskrive underkategorierne..

og det er i dette tilfælde ukat.php der giver problemer..



phpMyAdmin skriver:

You have an error in your SQL syntax near '"SELECT * FROM underkategori, is WHERE underkategori.id=id.katid AND underkatego' at line 1

og eksplorer skriver:

Warning: Supplied argument is not a valid MySQL result resource in c:\\apache\\htdocs\\vivaa.dk\\ukat.php on line 7



Ahhr sorry.. jeg sidder og halvsover.. :)

Her er den egentlige fejlmeddelse:

Table 'vivaa_dk_db.id' doesn't exist

Jeg fatter ikke lige hvor det der .id kommer fra..

[Redigeret d. 19/06-05 23:17:53 af Ole]



<< < 123 > >>
t