Als je een keuze maakt moeten de gegevens op de pagina verschijnen.
Ik krijg foutmeldingen en het lukt me niet om die weg te krijgen.
Code van het dropdownmenu en een stukje om het resultaat te laten zien.
<?php
<div class="categorie" id="categorie">
<?php
$query = "SELECT cat_naam FROM categorie ORDER BY cat_naam";
$result = mysql_query($query) or die ("Sorry maar ik kan de categorieën niet weergeven");
echo '<form method="POST">';
echo '<select name="categorie">';
$sql = 'SELECT * FROM linken WHERE cat_naam = '.$_POST['categorie'].'';
$res = mysql_query($sql)or trigger_error ("Sorry maar ik kan de categorie niet weergeven, probeer het later opnieuw.");
Foutmelding 1: Sorry maar ik kan de categorie niet weergeven, probeer het later opnieuw.
Foutmelding 2: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource on line 56 (is de onderste regel uit bovenstaande code)
Geef in je trigger_error() ook een mysql_error() mee, op die manier weet je ook waar de fout in de query zit. Want dat is waar het fout gaat, de 2e query.
?
Onbekende gebruiker
14-11-2006 09:18
Dan is dit nu de tweede foutmelding:
on line 56
Unknown column 'Diverse' in 'where clause'
Ik zeg toch eigenlijk nergens dat de kolom naam zo moet heten?
Ik weet niet of het wat uit gaat maken, maar zet eens dubbele quotes om je query en enkele quotes binnen je query om de variabele:
<?php
$sql = "SELECT * FROM linken WHERE cat_naam = '".$_POST['categorie']."'";
?>
ps. Wat ik me afvraag? Waarom heb je in de tabel 'linken' de kolom 'cat_naam' staan? Je hebt een aparte tabel voor de categorieën zoals het hoort, dus in de tabel 'linken' zou je alleen een id van een categorie moeten hebben...
Je was de ' <-- om je waarde vergeten. Zoals Blanche het heeft gedaan moet het werken. Maar het hoeven niet persee dubbele quotes te zijn, dit kan ook:
<?php
$sql = 'SELECT * FROM linken WHERE cat_naam = \''.$_POST['categorie'].'\'';
?>
Dit vind ik er onoverzichtelijk uitzien, dus vind ik de oplossing van Blanche beter. Ik wil bij de oplossing die ik gaf alleen aanduiden waar je fout aan lag.
Even iets anders (nu we toch bezig zijn), waarom haal je alles op (*) heb je echt alles nodig? Haal alleen gegevens op die je nodig hebt.
?
Onbekende gebruiker
14-11-2006 09:36
@Blanche
Dit werkt inderdaad, bedankt. Nu weer verder....
@Jordy
Ik heb inderdaad alles nodig
?
Onbekende gebruiker
14-11-2006 10:17
Ik krijg deze foutmelding als ik object gebruik:
Fatal error: Cannot use object of type stdClass as array in
Hier zie je wel alle gegevens die ik wil zien op het scherm.
Als ik object in assoc wijzig zie ik ineens geen gegevens meer op het scherm.
De layout is gewijzigd en de code ziet er nu zo uit.
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['submit'] == 'Ga') {
$sql = "SELECT * FROM linken WHERE cat_naam = '".$_POST['categorie']."'";
$res = mysql_query($sql)or trigger_error ("Sorry maar ik kan de categorie niet weergeven, probeer het later opnieuw.");
echo '<table width="120" align="left" cellspacing="2" cellpadding="0">';
echo '<tr>';
$kolommen = 3;
Je moet wel consitent blijven. Als je mysql_fetch_object() gebruikt moet je de notatie $row->kolom hanteren. Gebruik je mysql_fetch_assoc() dan vraag je de variabelen op met $row['kolom'].
Je gebruik nu beide door elkaar, de fout zit hem op regel 23 in bovenstaande code.
?
Onbekende gebruiker
14-11-2006 14:04
@Blanche
Jeetje zeg, nooit geweten.
Ik gebruikte altijd $row->kolom en iemand waar ik een code van heb gebruikt gebruikte inderdaad $row['kolom']
Ik dacht dat dat gewoon een voorkeur was van diegene.
Ha, alweer wat geleerd.
Nou maar weer verder dan met het script......
?
Onbekende gebruiker
15-11-2006 10:07
NIEUW
Hoe maak je meerdere dropdown menu's onder elkaar?
Ik heb de "input-name" al een paar keer gewijzigd maar het lukt niet.
Het bovenste menu werkt wel maar de tweede niet.
<?php
<div class="categorie" id="categorie">
<?php
$query = "SELECT cat_naam FROM categorie ORDER BY cat_naam";
$result = mysql_query($query) or die ("Sorry maar ik kan de categorieën niet weergeven");
echo '<form method="POST">';
echo '<select name="categorie">';
while ($row = mysql_fetch_assoc($result)){
echo '<option value="'.$row['cat_naam'] .'">'.$row['cat_naam'].'</option>';
}
echo '</select>';
echo '<input name="submit" type="submit" value="Ga" />';
echo '</form>';
?>
</div> <!-- einde div categorie in het menulinks-->
<h1>Groep</h1>
<div class="groep" id="groep">
<?php
$query = "SELECT groep_naam FROM groep ORDER BY groep_naam";
$result = mysql_query($query) or die ("Sorry maar ik kan de groepen niet weergeven");
echo '<form method="POST">';
echo '<select name="groepen">';
while ($row = mysql_fetch_assoc($result)){
echo '<option value="'.$row['groep_naam'] .'">'.$row['groep_naam'].'</option>';
}
echo '</select>';
echo '<input name="submit" type="submit" value="Ga" />';
echo '</form>';
?>
</div> <!-- einde div groep in menulinks -->
</div> <!-- einde div menulinks -->
?>
<?php
<div class="tabelkadobonnen" id="tabelkadobonnen">
<?php
//de tabel voor categorie
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['submit'] == 'Ga') {
$sql = "SELECT cat_naam FROM linken WHERE cat_naam = '".$_POST['categorie']."'";
echo '<h1>' . $_POST['categorie'] . ' kadobonnen</h1>';
$sql = "SELECT * FROM linken WHERE cat_naam = '".$_POST['categorie']."'";
$res = mysql_query($sql)or trigger_error ("Sorry maar ik kan de categorie niet weergeven, probeer het later opnieuw.");
}
echo '</tr></table>'.PHP_EOL;
}
//de tabel voor groepen
if ($_SERVER['REQUEST_METHOD'] == 'POST' && $_POST['submit'] == 'Ga') {
$sql = "SELECT * FROM linken WHERE groep_naam = '".$_POST['groepen']."'";
echo '<h1>' . $_POST['groepen'] . ' kadobonnen</h1>';
$sql = "SELECT * FROM linken WHERE groep_naam = '".$_POST['groep']."'";
$res = mysql_query($sql)or trigger_error ("Sorry maar ik kan de groepen niet weergeven, probeer het later opnieuw.");