een vraagje hierover.

ik heb nu de volgende query:
<?php
"SELECT 
text, 
titel, 
datum, 
provincie_id, 
maker_id 
FROM 
advertenties 
WHERE 
soort = '".$zoek_id."' 
ORDER BY 
datum 
DESC 
LIMIT 0,10
";?>


nu moet ik van provincie_id een provincienaam gaan maken (die in de tabel provinvies staan) en van maker_id een gebruikersnaam (vanzelfsprekend in de tabel gebruikers)

hoe kan ik dat doen?

[edit]<code></code>[/edit]
<?php
$sql = "
SELECT
a.text, a.titel, a.datum, p.naam, m.naam
FROM advertenties AS a, provincies AS p, makers as m
WHERE soort = '".$zoek_id."'
AND a.provincie_id = p.id
AND a.maker_id = m.id
ORDER BY datum DESC
LIMIT 0, 10
";
?>
**zucht** Jan was me weer eens voor. Had hier dezelfde query gebakken...

Vraagje: De datum heb je wel opgeslagen in een veld van het type DATE? Zo ja, dan is opmaak met de functie DATE_FORMAT() wellicht nog gewenst. En maak dan wel een alias aan voor de output, anders loopt de sortering in het honderd.
nu heb ik dit


<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);

// database verbinding includen

include('dbc.php');

// de GET-waarde zoek ophalen

$zoek_id = $_GET['zoek'];

$query = "SELECT
        a.text, a.titel, a.datum, p.naam, g.gebruikersnaam
        FROM advertenties AS a, provincies AS p, gebruikers as g
        WHERE soort = '".$zoek_id."'
        AND a.provincie_id = p.provincie_id
        AND a.maker_id = g.gebruiker_id
        ORDER BY datum DESC
        LIMIT 0, 10
        ";




$uitvoeren = mysql_query($query) or die(mysql_error());

echo"$query";

echo"<table border=1>";

while($gegevens = mysql_fetch_assoc($uitvoeren))
{

echo"
<td width=700>$gegevens[titel]<br><br>
$gegevens[gebruikersnaam]<br><br>
$gegevens[text]</td><td></tr><tr height=25></tr>";
}
echo"</table>";
?>



er komt alleen geen tabel uit, wat doe ik fout?

ps:

bij een ander bestand heb ik mijn eigen script gehouden, die doet het maar ziet er niet uit


<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);

// database verbinding includen

include('dbc.php');

// de GET-waarde zoek ophalen

$zoek_id = $_GET['zoek'];

$query = "SELECT text, titel, datum, provincie_id, maker_id FROM advertenties WHERE soort = '".$zoek_id."' ORDER BY datum DESC LIMIT 0,10";




$uitvoeren = mysql_query($query) or die(mysql_error());

echo"<table border=1>";

while($gegevens = mysql_fetch_assoc($uitvoeren))
{
$maker = $gegevens['maker_id'];

$query2 = "SELECT gebruikersnaam FROM gebruikers WHERE gebruiker_id = '".$maker."'";
$uitvoeren2 = mysql_query($query2) or die(mysql_error());
$gegevens2 = mysql_fetch_assoc($uitvoeren2);

echo"
<td width=700>$gegevens[titel]<br><br>
$gegevens2[gebruikersnaam]<br><br>
$gegevens[text]</td><td></tr><tr height=25></tr>";
}
echo"</table>";
?>

Ik zou om te testen eerst eens kijken of je een serie <p>'s op het scherm kunt krijgen ipv een tabel.

In je eerste voorbeeld ontbreekt een beginnende <tr> tag. Je begint meteen met <td> en daardoor gaat het fout met je tabel.
er komt alleen geen tabel uit, wat doe ik fout?
Wat komt er dan wél uit? Een gebakken ei?

Duik eens in de html-broncode wanneer je problemen hebt met de output.

Tip: haal je variabelen buiten quotes en ga netjes scripten: $gegevens[titel] is fout, dit moet zijn $gegevens['titel'].

error_reporting(E_ALL); bovenaan je script doet wonderen.

<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);

// database verbinding includen

include('dbc.php');

// de GET-waarde zoek ophalen
if(isset($_GET['zoek']))
{
$zoek_id = $_GET['zoek'];
}
else
{
echo "u bnet hier niet op de juiste manier gekomen";
}

$query = "SELECT
        a.text, a.titel, a.datum, p.naam, g.gebruikersnaam
        FROM advertenties AS a, provincies AS p, gebruikers as g
        WHERE soort = '".$zoek_id."'
        AND a.provincie_id = p.provincie_id
        AND a.maker_id = g.gebruiker_id
        ORDER BY datum DESC
        LIMIT 0, 10
        ";
$res = mysql_query($query) or die(mysql_error());

//echo"$query";
if(mysql_num_rows($res) <> 0)
{
?>

<table border=1>
  <?php
  	while($gegevens = mysql_fetch_assoc($uitvoeren))
	{?>
		<tr>
				<td width=700>
					<?php echo $gegevens['titel']; ?><br><br>
					<?php echo $gegevens['gebruikersnaam']; ?><br><br>
					<?php echo $gegevens['text']; ?>
				</td>
		</tr>
<?php } ?>
</table> 
<?php 
} 
else 
{
echo "er voldoen geen gegevens aan de door u opgegeven SQL";
}
?>


en zo?

<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);

// database verbinding includen

include('dbc.php');

// de GET-waarde zoek ophalen

$zoek_id = $_GET['zoek'];

$query = "SELECT text, titel, datum, provincie_id, maker_id FROM advertenties WHERE soort = '".$zoek_id."' ORDER BY datum DESC LIMIT 0,10";




$uitvoeren = mysql_query($query) or die(mysql_error());

echo"<table border=1>";

while($gegevens = mysql_fetch_assoc($uitvoeren))
{
$maker = $gegevens['maker_id'];

$query2 = "SELECT gebruikersnaam FROM gebruikers WHERE gebruiker_id = '".$maker."'";
$uitvoeren2 = mysql_query($query2) or die(mysql_error());
$gegevens2 = mysql_fetch_assoc($uitvoeren2);

echo"
<tr><td width=700>$gegevens[titel]<br><br>
$gegevens2[gebruikersnaam]<br><br>
$gegevens[text]</td><td></tr><tr height=25></tr>";

echo"<p>test</p>
<p>test</p>
<p>test</p>";
}
echo"</table>";
?>


hier komt netjes een tabel uit met 2 advertenties en 6 keer TEST onder elkaar


<?php
ini_set ('display_errors', 1);
error_reporting (E_ALL);

// database verbinding includen

include('dbc.php');

// de GET-waarde zoek ophalen

$zoek_id = $_GET['zoek'];

$query = "SELECT
        a.text, a.titel, a.datum, p.naam, g.gebruikersnaam
        FROM advertenties AS a, provincies AS p, gebruikers as g
        WHERE soort = '".$zoek_id."'
        AND a.provincie_id = p.provincie_id
        AND a.maker_id = g.gebruiker_id
        ORDER BY datum DESC
        LIMIT 0, 10
        ";




$uitvoeren = mysql_query($query) or die(mysql_error());

echo"$query";

echo"<table border=1>";

while($gegevens = mysql_fetch_assoc($uitvoeren))
{

echo"
<tr><td width=700>$gegevens[titel]<br><br>
$gegevens[gebruikersnaam]<br><br>
$gegevens[text]</td><td></tr><tr height=25></tr>";
echo"<p>test</p>
<p>test</p>
<p>test</p>";
}
echo"</table>";
?>


het enige wat hier uit komt is de query :

SELECT a.text, a.titel, a.datum, p.naam, g.gebruikersnaam FROM advertenties AS a, provincies AS p, gebruikers as g WHERE soort = '1' AND a.provincie_id = p.provincie_id AND a.maker_id = g.gebruiker_id ORDER BY datum DESC LIMIT 0, 10

die TR heb ik toegevoegd, haalde volgens mij niet veel uit
klaasjan:

Parse error: parse error, unexpected $end in D:\xampp\xampp\htdocs\arthur\zoekt2.php on line 47

Reageren