Hallo jongens,
ik heb een script dat gegevens uit een mysql database haalt na een zoekscript. Dat gaat helemaal goed..

Alle namen worden netjes onder elkaar weergegeven, maar nu wil ik graag dat als je op 1 van die namen klikt, de rest van de velden die erbij horen worden weergegeven..

Kan iemand me hiermee helpen? ik weet dat het heel simpel is voor een beetje scripter maar dat ben ik dus juist niet.

alvast bedankt,
Cindy

oja, dit is het script dat ik tot nu toe heb:
ik weet dat ik iets met get id moet doen ofzo, maar dat lukt dus juist niet :(


<?
//------------------------//
// DATABASE CONFIGURATIE //
//------------------------//
$mysql_user = "****"; // je mysql login naam
$mysql_pass = "****"; // je mysql wachtwoord
$mysql_host = "****"; // de host van je mysql database
$mysql_dbn = "****"; // de naam van je database

if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass)))
{
//--- De verbinding is nu dus mislukt, geef hier een melding van
echo "database connectie mislukt!";

//--- Zorg ervoor dat het script stopt.
exit();
}

else
{

$sql = "SELECT naam,plaats FROM dagjes WHERE provincie LIKE '%$HTTP_POST_VARS[group1]%' AND categorie LIKE '%$HTTP_POST_VARS[group2]%' ORDER BY naam ASC";

// Voer SQL code uit
$res = mysql_query($sql);

// Kijk of er 1 of meerdere rijen gevonden zijn
if (mysql_num_rows($res) >= 1)
{
// Toon elke rij tot dat er geen rijen meer zijn
while ($row = mysql_fetch_array($res))
{
$row['naam'] = htmlentities($row['naam']);
$row['plaats'] = nl2br(htmlentities($row['plaats']));

echo $row['naam'] . "<hr>";
echo $row['plaats'] . "<br><br>";
}
}
// Er zijn geen rijen gevonden, geef aan dat er nog geen dagjes zijn toegevoegd
else
echo "<p>Er zijn nog geen dagjes toegevoegd.</p>";
}
?>
<?
//------------------------//
// DATABASE CONFIGURATIE  //
//------------------------//
$mysql_user = "000"; // je mysql login naam
$mysql_pass = "000"; // je mysql wachtwoord
$mysql_host = "000"; // de host van je mysql database (localhost is meestal wel oke)
$mysql_dbn = "000"; // de naam van je database

if (!@mysql_select_db($mysql_dbn, @mysql_connect($mysql_host, $mysql_user, $mysql_pass))) 
{ 
    //--- De verbinding is nu dus mislukt, geef hier een melding van
    echo "database connectie mislukt!";
    
    //--- Zorg ervoor dat het script stopt.
    exit(); 
}

else
{

    $sql = "SELECT id,naam,plaats,categorie,soort,toegankelijk,omschrijving FROM dagjes WHERE provincie LIKE '%$HTTP_POST_VARS[group1]%' AND categorie LIKE '%$HTTP_POST_VARS[group2]%' ORDER BY naam ASC";
    
    // Voer SQL code uit
    $res = mysql_query($sql); 
    
    // Kijk of er 1 of meerdere rijen gevonden zijn
    if (mysql_num_rows($res) >= 1) 
    {
        // Toon elke rij tot dat er geen rijen meer zijn
while ($row = mysql_fetch_array($res))
{

$row['naam'] = htmlentities($row['naam']);
$row['plaats'] = nl2br(htmlentities($row['plaats']));

echo $row['naam'] . "<hr>";
echo $row['plaats'] . "<br><br>";

if (isset($_GET['more']) AND $row[id'] ==$_GET['more']){
echo $row['categorie'] . "<hr>";
echo $row['soort'] . "<hr>"; 
echo $row['toegankelijk'] . "<hr>"; 
echo $row['omschrijving'] . "<br><br>";
}
echo ' <a href="?more="' . $row[id'] . '">meer info over dit item</a>' ;

}
    } 
    // Er zijn geen rijen gevonden, geef aan dat er nog geen dagjes zijn toegevoegd
    else 
        echo "<p>Er zijn nog geen dagjes toegevoegd.</p>";
}
?> 


dit heb ik nu maar het werkt niet :(
wel bedankt voor je moeite ruud
$row[id']

stond er (en dat heb je gekopieerd)

maar dat moet natuurlijk $row['id'] zijn 2x !! zelf even rest controleren !
aja sorry ruud niet op gelet.

de pagina laad nu wel weer goed maar als ik op "meer info over dit item klik, dan worden alle namen en plaatsen weergegeven die in de tabel staan. De overige velden worden niet weergegeven en er word ook geen item gekozen.

Hij geeft ook geen "id" mee aan de link

ff verder puzzelen maar weer..
kijk eens in adres balk (in status regel zie je het ook als je muis over link staat)
staat daar iets als: paginanaam.php?more=34

zo ja , dan evt nog even de if........ controleren.

Het gaat je vast wel lukken !!!
nee dat staat er niet :)
ik was al bezig om uit te zoeken hoe dat kan.. geen idee nog
wat staat er wel ?
Einde van je code:
<?php
// Heb je hier de $row[id'] veranderd naar $row['id']?
if (isset($_GET['more']) AND $row[id'] ==$_GET['more']){
echo $row['categorie'] . "<hr>";
echo $row['soort'] . "<hr>";
echo $row['toegankelijk'] . "<hr>";
echo $row['omschrijving'] . "<br><br>";
}
// Heb je hier de $row[id'] veranderd naar $row['id']?
echo ' <a href="?more="' . $row[id'] . '">meer info over dit item</a>' ;

}
?>

Dit is alleen een controle op de info van ruud ;-)

Hmm.. je query is ook aan een onderhoudsbeurt toe:
<?php
$sql = "SELECT id, naam, plaats, categorie, soort, toegankelijk, omschrijving FROM dagjes WHERE provincie LIKE '%".$_POST['group1']."%' AND categorie LIKE '%".$_POST['group2']."%' ORDER BY naam ASC";
?>

Probeer die sql code eens op regel 22 (vervangen door die er nu al staat)

Oja... en je kan misschien beter ook je code hier editen als je iets hebt gedaan, dan kunnen wij blijven helpen :P
joepie! ik heb de link veranderd en nu geeft ie wel id mee..

het was:
echo ' <a href="?more="' . $row[id'] . '">meer info over dit item</a>' ;

en nu:
echo ' <a href="?more='.$row['id'].'">meer info over dit item</a>' ;

de dubbele haakjes na more= dus weggehaald.


Wat ie nu doet is het volgende:
hij laad alle items in de tabel (naam en plaats) en daar tussen in staat dan ergens het geselecteerde item. Maar dan wel met de overige velden dus dat is wel goed.

ben ik nog te volgen?
Aha, vandaar! HTML dacht dat de href al was afgesloten! Maar dat was niet het geval. Helemaal niet opgevallen :P
Ok dat werkt ??

Gaat wel iets anders mis. Je gebruikt een formulier pagina om op te geven waarnaar je zoekt ?! Die geeft de waarden door via POST. Maar zodra je op de More link klikt heeft ie niet meer die POST waarden uit het formulier!

Oplossing ? De POST waarden onthouden in een sessie. Kun je dat?
Is zo ie zo heel leerzaam ......

Reageren