if statement krijg ik niet goed

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

Cmug

cmug

27/11/2006 22:07:00
Quote Anchor link
Hallo ,
Ik zit hier al geruime tijd te prutsen en krijg het maar niet voor elkaar. Ik heb 1 database met 2 tabellen. Nu moet ik afhankelijk van de vraag of uit tabel 1 (Met de klassen B4a, B4b en B4c) of uit tabel 2 (met het personeel) de gegevens halen.
De gegevens opvragen uit tabel 2 lukt wel. Maar als ik de gegevens uit tabel 1 opvraag komt naast tabel 1 ook altijd de gegevens van tabel 2 mee. Ik krijgen deze tabel 2 niet weg. Ik krijg het niet voor elkaar een goede if etc in elkaar te zetten. Wie heeft tips?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
function formulier () {
?>

Van welke klas wil je gegevens opvragen?<br>Let op: je  kunt meerdere klassen tegelijkertijd selecteren!
          <form method="post" action="<?php echo $_SERVER["SCRIPT_NAME"]; ?>">
        <select multiple name="klas[]" id="mbt klas" class="inputsmall" size="9">
             <optgroup label= "VMBO-basis">
            <option value="B4a">B4a</option>        
            <option value="B4b">B4b</option>
            <option value="B4c">B4c</option>
            <optgroup label= "Personeel">
             <option value="alle_personeel">Alle personeel</option>
            </select>
        <br><input type="submit"  value="vraag op" class="inputsmall"/>
</form>
<?php
global $mysql, $mysqltabel_1;
global $mysql, $mysqltabel_2;
if (!empty($_POST['klas']) || ($_POST['klas'] != 'alle_personeel')) { // haakje No 1
$klas=$_POST['klas'];
if ($klas){     // haakje No 2
foreach ($klas as $t){    //  haakje No 3
$deel_gegevens_lln = mysql_query("SELECT roepnaam,tussenv,achternaam,tekst_jrbk FROM $mysqltabel_1  WHERE klas='$t' ORDER BY achternaam ASC",$mysql) or die("query 1 op de database is mislukt");

if (!empty($deel_gegevens_lln)) {    // haakje No 4
while (list( $roepnaam, $tussenv, $achternaam, $tekst_jrbk) = mysql_fetch_row($deel_gegevens_lln))  {     // haakje No 5
echo  "<br><b>$roepnaam</b>  <b>$tussenv</b> <b>$achternaam</b> <br />$tekst_jrbk<br />";
}
    // haakje No  5A
}    // haakje No  4A
}    // haakje No  3A
}    // haakje No  2A
if (!empty($_POST['klas']) || ($_POST['klas'] == 'alle_personeel')) {// haakje No  10
echo "effe testen No x<br>";
$deel_gegevens_personeel = mysql_query("SELECT naam, tekst_pers_lid FROM $mysqltabel_2  ORDER BY naam ASC",$mysql) or die("query 2 op de database is mislukt");
while(list( $naam, $tekst_pers_lid) = mysql_fetch_row($deel_gegevens_personeel)) {
echo  "<b>$naam</b><br>$tekst_pers_lid<br />";
}
}
    // haakje No  10A
}    // haakje No  1A
}// einde functie
formulier();
@
mysql_close($mysql);
?>
Gewijzigd op 01/01/1970 01:00:00 door Cmug
 
PHP hulp

PHP hulp

24/11/2024 07:17:08
 
Jan Koehoorn

Jan Koehoorn

27/11/2006 22:11:00
Quote Anchor link
Alvast een tip: lees eens een tut over code formatting. Je code is, zoals hij nu is, amper te debuggen.
 
Jan Koehoorn

Jan Koehoorn

27/11/2006 22:20:00
Quote Anchor link
Ik heb even in je code gekeken en er vallen me een paar dingen op:

1) Je hebt een select multiple. Het is dus mogelijk dat de user alle opties selecteert, dus zowel de klasnummers, als de gegevens van het personeel. Is dat wat je wilt? Of wil je OF-OF?

2) Je declareert een globale variabele ($mysql) twee keer. Waarom?

3) De syntax <optgroup label= "Personeel"> is fout. Er hoort geen spatie achter het = teken te staan.

4)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
      if (!empty($_POST['klas']) || ($_POST['klas'] != 'alle_personeel')) {
          // haakje No 1
          $klas = $_POST['klas'];
          if ($klas) {
?>

Eerst kijk je of $_POST['klas'] niet empty is. Vervolgens kopieer je de waarde in een andere variabele ($klas), waarom? En waarom daarna nog die if?
 
Cmug

cmug

28/11/2006 00:07:00
Quote Anchor link
Het liefst wil ik en/en selecteren en heb de select multiple bewust ingezet. Tot dus ver werkte dat prima met meerdere klassen selecteren (die alle uit dezelfde database kwamen).

Ik heb de $mysql 2 keer gebruikt omdat ik gegevens uit 2 verschillende tabellen moet halen (uit dezelfde database). In No 1 zitten alle leerlingen en No 2 het personeel.

De spatie is inderdaad fout, deze is nu weg gehaald.

Wat betreft die if , inderdaad raar, Was knip en plak uit ander deel van mijn een van mijn php pagina. En als het elders goed werkt denk je te snel dat het ook goed is. Dit is inderdaad onzin en kan zo weg.
Nog een tijdje zitten experimenteren. Maar krijg niet goed. Uiteindelijk maar makkelijk gedaan.(is kinder bedtijd) Een knop bijgemaakt en de _POST was nu heel makkelijk te koppelen. Werk nu prima, wat layout ietjes minder dan 1e keuze maar goed mee te leven.
Oja en in de tussentijd de Tut netjes scripten eens gelezen. Weer wat wijzen geworden.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.