Toon posts:

[php]le:waarom niet uit 2 tabellen

Pagina: 1
Acties:

Verwijderd

Topicstarter
mijn code:
PHP:
1
<? include("xchange.cfg"); //Try to connect to database mysql_connect("$dbhost","$dbuser","$dbpasswd")     or die("Unable to connect to SQL server!"); @mysql_select_db("$db")     or die("Unable to select database!"); $result = mysql_query("SELECT ACCT, HITSIN, TITLE * FROM  counter, user   ORDER BY HITSIN ASC"); while ( $r = mysql_fetch_object($result) )  {   echo "<B>         <tr>     <A href=clickout.php?acc=$r->ACCT>$r->TITLE</A></font>"; } ?> ?>

Dit is voor een link exchange script. Ik wil laten ordenen op hitsin en dat dan de TITLE weergegeven wordt. Daarvoor moet ik uit 2 tabellen selecteren.
Het veld TITLE komt uit de tabel user en de andere 2 uit counter, maar ik krijg nu een foutmelding:
Warning: Supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\mp3force\test.php on line 12

  • Grum
  • Registratie: Juni 2001
  • Niet online
dit is wel errug basic sql table joining stuff

even wat comments op je code

1/ include van een .cfg file is niet slim aangezien bij de standaard instellingen van apache/php jij gewoon .cfg's als plaintext kan zien. Of add een php-handler voor .cfg's OF zet em buiten de webtree.
2/ je gebruikt onnodig ""'s om je variabelen heen. Dit is niet nodig, staat slordig, staat newbie, is extra tikken, kan zelfs ongewenste resultaten hebben.
3/ je query klopt van geen kant (daar zo meer over)
4/ je gebruikt mysql_fetch_object, dit is de sloomste van alle mysql_fetch functies, gebruik als je PERSE naampjes wil hebben liever mysql_fetch_assoc en het liefste mysql_fetch_row (die is het snelste)

Nu even over je query.
1/ er staat '*' in zonder table name of , ervoor dus dat is sowieso al een query-error.
2/ als je uit meerdere tabellen selecteert kan je het beste de tabelnamen VOOR veldnamen zetten zodat het voor mysql/de lezer duidelijk is welke velden jij bedoelt.
3/ Ik mis de 'where tabel.veld = tabel2.veld'. Dit heb je nodig om te zeggen waar je tabellen moeten linken. Kan je dit niet zeggen van 2 tabellen ? dan is der iets mis met je db ontwerp.

Dit was het wel zo'n beetje .. ik zou zeggen zoek even een basic-sql-joining tutorial op. In de FAQ of op Google staan der zat :)

Verwijderd

Topicstarter
Op zondag 10 maart 2002 10:28 schreef Grum het volgende:
dit is wel errug basic sql table joining stuff ... ik tik nu even de rest ;)
ja duh die tabellen zijn er maar die query is iets mis mee

  • Ericston
  • Registratie: Maart 2001
  • Laatst online: 05-09 18:58
Op zondag 10 maart 2002 10:32 schreef UltraV het volgende:

[..]

ja duh die tabellen zijn er maar die query is iets mis mee
ja duh, een join is een query.

M.a.w: dit is dus basic query stuff.