vraagje : ik wil een query draaien op twee tabellen users (records : voornaam, achternaam) en autos (merk,type).
$query=mysql_fetch_object(mysql_query("select * from users,autos where userid=$id and autoid=$autoid"));
$result = mysql_query($query) or die(mysql_error());
$row=mysql_fetch_object(mysql_query("select * from users,autos where userid=$id and autoid=$autoid"));
Vervolgens laat de resultaten in een tabel zien door : $row->merk, $row->type
Ik krijg het niet voor elkaar. Wie kan mij helpen?
- vraag mbt velden uit twee tabellen
-
17-03-2010, 22:00 #1
- Berichten
- 37
- Lid sinds
- 15 Jaar
vraag mbt velden uit twee tabellen
-
In de schijnwerper
-
17-03-2010, 23:09 #2
- Berichten
- 492
- Lid sinds
- 16 Jaar
Je zou de query iets moeten aanpassen,
"SELECT u.userid,u.voornaam,u.achternaam,a.autoid,a.merk,a .type FROM users u,autos a WHERE a.id=".$autoid." AND u.id=".$userid.""
Je kan ook, a.merk AS merk doen,
dan hoef je je $row niet aan te passen,
Het kan ook goed zijn dat ik het fout doe
-
18-03-2010, 07:15 #3
- Berichten
- 935
- Lid sinds
- 17 Jaar
Fout idd. As merk hoeft niet
Aanvullend bericht:
Maar de query zal het sowieso niet doen....want er is geen enkel record die aan de where filter voldoet om het zo te zeggen....
Je moet bij tabel auto's ook een userid bijhouden. Dan kun je een auto aan een user hangen via where user.id = $user and autos.userid = $user
dan krijg je alle auto's van deze user
Aanvullend bericht:
OVERIGENS:
$query=mysql_fetch_object(mysql_query("select * from users,autos where userid=$id and autoid=$autoid"));
$result = mysql_query($query) or die(mysql_error());
$row=mysql_fetch_object(mysql_query("select * from users,autos where userid=$id and autoid=$autoid"));
het is gemakkelijker om gewoon de query, het uitvoeren en het resultaat ervan te scheiden. Zo kun je later de eventuele fout gemakkelijker vinden en je code wordt er leesbaarder van. Dus ZO:
$query = "SELECT * from users, autos where users.id = $id and autos.userid = $id"; > dit geeft mogelijk meerdere auto's terug
$query = "SELECT * from users, autos where users.id = $id and autos.userid = $id and autos.id = $autoid"; > dit geeft 1 auto terug >> maar alleen als userid van die auto ook hetzelfde is als users.id, dus waarom je dit zou willen weet ik niet.
DAN: het uitvoeren met resultaat (kan true of false zijn).
$result = mysql_query($query);
dan pas ga je het resultaat uitlezen en gebruiken:
$row=mysql_fetch_object($result);
overigens kun je dit beter in een while zetten als je meerdere auto's hebt:
while($row=mysql_fetch_object($resullt)){
echo $row->merk.' '.$row->type.' is de auto van '.$row->voornaam.' '.$row->achternaam.'<BR>';
}Laatst aangepast door Rein S : 18-03-2010 om 07:44 Reden: Automatisch samengevoegd.
-
18-03-2010, 08:56 #4
- Berichten
- 257
- Lid sinds
- 15 Jaar
Ik vraag me echt af wat je hiermee wil bereiken? Ik vind het een vreemde query. Het blijkt wel mogelijk te zijn dit zo op te vragen (in iedergeval aan MySQL).
-
18-03-2010, 09:43 #5
Elephant Media GbR
- Berichten
- 1.253
- Lid sinds
- 18 Jaar
Ik zou je zelf ook aanleren wat netter te scripten. Dus gebruik die hoofdletters in je query, word die een stuk overzichtelijker van.
Als je id via een GET krijgt moet je superglobals gebruiken. ( ". $_GET['id'] ." ) want $id gaat niet meer werken als je server op php 5.0 of hoger draait.
-
19-03-2010, 21:47 #6
- Berichten
- 37
- Lid sinds
- 15 Jaar
dank!
Hi, dank voor jullie feedback! probleem is opgelost.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic