Saan seuraavanlaisen virheilmoituksen:
Warning: mysql_query(): 2 is not a valid MySQL-Link resource in /var/www/index.php on line 148
Virhe suoritettaessa komentoa
SELECT * FROM cars WHERE person.id = 12 AND person.cars_id = cars.id
ja tässä koodi:
$query = "SELECT * FROM cars WHERE person.id = ".intval($_GET['id'])." AND person.cars_id = cars.id";
$haku = mysql_query($query, $yhteys) or die('Virhe suoritettaessa komentoa'.$query);
while($res = @mysql_fetch_array($haku, MYSQL_ASSOC)) $result[] = $res;
mysql_close($yhteys);
Eli mistä virheilmoitus johtuu? Tarkoitukseni olisi siis hakea cars taulusta kaikki tietyn henkilön autot.
Warning: mysql_query(): 2 is not a valid MySQL-Link resource in /var/www/index.php on line 148
Virhe suoritettaessa komentoa
SELECT * FROM cars WHERE person.id = 12 AND person.cars_id = cars.id
ja tässä koodi:
$query = "SELECT * FROM cars WHERE person.id = ".intval($_GET['id'])." AND person.cars_id = cars.id";
$haku = mysql_query($query, $yhteys) or die('Virhe suoritettaessa komentoa'.$query);
while($res = @mysql_fetch_array($haku, MYSQL_ASSOC)) $result[] = $res;
mysql_close($yhteys);
Eli mistä virheilmoitus johtuu? Tarkoitukseni olisi siis hakea cars taulusta kaikki tietyn henkilön autot.
Vastaukset 5
Vanhimmat
Jos vika on muualla, ei mitään havaintoa, mutta ainakin tuossa SQL-lausekkeessa on fiba: person-taulu puuttuu.
SELECT *
FROM cars, person
WHERE person.id = 12
AND person.cars_id = cars.id
Eipä tapahtunut mitään muutosta, vaikka tuon korjasin. Ennen tätä virheilmoitusta, minulla oli jotain häikkää edeltävillä riveillä, jotka menevät näin:
$query = "UPDATE cars,person SET cars.car".$_GET['auto']." = 0 WHERE person.id = ".intval($_GET['id'])." AND person.cars_id = cars.id";
mysql_query($query, $yhteys) or die('Virhe suoritettaessa komentoa'.$query);
mysql_close($yhteys);
Mielestäni tämäkin kyllä on nyt oikein, kun siitä ei tule mitään virheilmoitusta..
$query = "UPDATE cars,person SET cars.car".$_GET['auto']." = 0 WHERE person.id = ".intval($_GET['id'])." AND person.cars_id = cars.id";
mysql_query($query, $yhteys) or die('Virhe suoritettaessa komentoa'.$query);
mysql_close($yhteys);
joo kyllä joku nyt on pielessä tässä pätkässä, kun sen ottaa pois, niin tuon jälkeiset rivit alkavat toimia... Osaisiko joku auttaa?
korjata tuo $yhteys siitähän se valittaa.
tosin tuo kysely vois olla muotoa "select jotain from jostain a, jostain b where b.car_id = a.id"
Ylempänä koodissa on rivit:
$yhteys = mysql_connect($server, $user, $pass) or die("Virhe kytkettäessä tietokantaan!");
mysql_select_db($database,$yhteys) or die("Virhe valittaessa tietokantaa!");
Olen aloittelija ja olen vain tehnyt koodia muiden esimerkkien ja tutoriaalejen pohjalta, mutta miten tässä tuo yhdistäminen kantaan tulisi hoitaa? Entä milloin yhteys kannattaa katkaista? ONko olemassa jotain nyrkkisääntöä?