/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
mysql_query fra to tabeller
Fra : Poul Kubel


Dato : 28-04-04 15:13

Hej

Jeg har et lille problem med at hente data fra to tabeller på én gang.
Følgende script, hvor jeg blot henter fra én tabel virker fint:

$input = array_unique($_SESSION['bestilling']);
foreach ($input as $reg) {
$resultat = mysql_query("SELECT varenummer, navn, pris FROM diverse
WHERE varenummer=$reg");
while ($raekke = mysql_fetch_array($resultat)) {
extract($raekke);
}
}

Når jeg tilføjer en ekstra tabel til scriptet:

$resultat = mysql_query("SELECT varenummer, navn, pris FROM diverse,
smykker WHERE varenummer=$reg");

får jeg denne fejlmeddelelse:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
result resource in...blablabla

Hvorfor kan jeg pludselig ikke bruge mysql_fetch_array($resultat)? Begge
tabeller indeholder kolonner med varenummer, navn, pris.

Mvh.

Poul Kubel



 
 
Peter Brodersen (28-04-2004)
Kommentar
Fra : Peter Brodersen


Dato : 28-04-04 17:57

On Wed, 28 Apr 2004 16:12:49 +0200, "Poul Kubel"
<kubel@odense.kollegienet.dk> wrote:

> Warning: mysql_fetch_array(): supplied argument is not a valid MySQL
>result resource in...blablabla
>
>Hvorfor kan jeg pludselig ikke bruge mysql_fetch_array($resultat)? Begge
>tabeller indeholder kolonner med varenummer, navn, pris.

I korte træk: Der er en fejl i din query. Fordi din query rummer en
fejl, får du ikke noget resultat, som du kan bruge til at trække
rækker ud med.

Prøv evt. med:

$resultat = mysql_query("SELECT varenummer, navn, pris FROM diverse,
smykker WHERE varenummer=$reg");
if(!$result) die("MySQL-fejl: ".mysql_error() );

Det kan du så altid raffinere ved rent faktisk at finde ud af, hvad du
kaster efter databasen (i modsætning til hvad, du antager, at du
kaster efter databasen), fx:

$query = "SELECT varenummer, navn, pris FROM diverse,
smykker WHERE varenummer=$reg";
print "Kører følgende query: $query";
$result = mysql_query($query);
if(!$result) die("MySQL-fejl: ".mysql_error() );


Så i hovedtræk: Sørg for at få så mange informationer, du kan, ud.
Sørg for at tjekke om du overhovedet får et resultatsæt ud, før du
begynder at bruge det.

Mere information om mysql_error():
http://php.net/mysql_error


(jeg ville egentligt have henvist til www.php-faq.dk, men den er
stadigvæk nede... :( )

--
- Peter Brodersen

Ugens sprogtip: "Der er et yndigt land" (og ikke "Det er et yndigt land")

Jakob Braad (28-04-2004)
Kommentar
Fra : Jakob Braad


Dato : 28-04-04 20:36

> $resultat = mysql_query("SELECT varenummer, navn, pris FROM diverse,
> smykker WHERE varenummer=$reg");
>
> Hvorfor kan jeg pludselig ikke bruge mysql_fetch_array($resultat)? Begge
> tabeller indeholder kolonner med varenummer, navn, pris.
>
Hvis begge tabeller indeholder varenummer er det det der er fejlen i dit
query.
Der burde nok stå

$resultat = mysql_query("SELECT varenummer, navn, pris
FROM diverse, smykker WHERE diverse.varenummer=$reg AND
smykker.varenummer=$reg");

Så skal varenummer være ens i de to tabeller. Jeg gætter på at det er
det du ønsker.


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste