Jag har glömt bort hur man gör detta.
Jag har 2 tabeller: ord, bok
Jag vill ta fram posterna "engelska" och "svenska" från "ord", och posterna "titel" och "forfattare" från "bok". Min sats såg först ut såhär:
SELECT engelska, svenska, titel, forfattare FROM ord, bok WHERE bokID = " . $HTTP_GET_VARS[bok] . " AND bok.bokID = ord.bokID ORDER BY engelska;
Detta funkade inte, då gjorde jag två satser, det funkade:
SELECT engelska, svenska FROM ord WHERE bokID = " . $HTTP_GET_VARS[bok] . " ORDER BY engelska;
SELECT titel, forfattare FROM bok WHERE bokID = " . $HTTP_GET_VARS[bok] . ";
Men jag vill bara ha en sats, hur göra?
LarsGMedlem sedan dec. 200012 464 inlägg Vad är det för problem med ditt första fösök?
Supplied argument is not a valid MySQL result resource
Asså den ska hämta massa rader från "ord " men bara en rad från "bok", då måste man väl göra på nåt annat sätt?
LarsGMedlem sedan dec. 200012 464 inlägg Så vitt jag kan se så är syntaxen korrekt. Hur ser PHP-koden ut? Har du något anrop till Mysql_error?
Först
$data = mysql_db_query("dreamsql", "SELECT engelska, svenska, titel, forfattare FROM ord, bok WHERE bokID = " . $HTTP_GET_VARS[bok] . " AND bok.bokID = ord.bokID ORDER BY engelska;");
...sen...
<?
while ($getdata = mysql_fetch_array ($data))
{
print "<tr style='border: 1px solid black'>";
print "<td valign='top'><b>";
print $getdata["engelska"];
print "</b></td><td width='350'>";
print $getdata["svenska"];
print "</td></tr>";
}
?>
Det ska väl fungera?
LarsGMedlem sedan dec. 200012 464 inlägg Vad får du ut med lite testutskrifter?
$q = "SELECT engelska, svenska, titel, forfattare FROM ord, bok WHERE bokID = " . $HTTP_GET_VARS[bok] . " AND bok.bokID = ord.bokID ORDER BY engelska";
echo $q;
$data = mysql_db_query("dreamsql", $q) or die(mysql_error());
Du kan ju också testa frågan separat.
'bokID' in where clause is ambiguous
Så här har jag gjort.
bok.bokID(Primary Key):
Typ: int(255)
Attribut:(none)
Null: Nej
Standard: 0
Extra: auto_increment
ord.bokID:
Typ: int(11)
Attribut: (none)
Null: Nej
Standard: 1
Extra: (none)
LarsGMedlem sedan dec. 200012 464 inlägg Då förstår jag.
$q = "SELECT engelska, svenska, titel, forfattare FROM ord, bok WHERE [b]bok.[/b]bokID = " . $HTTP_GET_VARS[bok] . " AND bok.bokID = ord.bokID ORDER BY engelska";
Löst!
Då har jag en php-fråga om man får ställa den här. Om man gjort resultatet av sql-query:n till en array, $getdata = mysql_fetch_array ($data), hur kan man då vid ett senare tillfälle i koden loopa upp den?
while ($getdata = mysql_fetch_array ($data))
{
print "<tr style='border: 1px solid black'>";
print "<td valign='top'><b>";
print $getdata["engelska"];
print "</b></td><td width='350'>";
print $getdata["svenska"];
print "</td></tr>";
}
Detta funkar ju inte då längre.
Alternativet är att man bara hämtar fram de värden som ska fram innan while-loopen för sig, utan att skapa en array. Hur gör man det? (faan vilken ångest, jag har ju varit grym på det här!)
LarsGMedlem sedan dec. 200012 464 inlägg Den kan nog hjälpa till med ett och annat! Tack så mycket! :)