Pagina terug met php en mysql

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Diederick van Eijsden

Diederick van Eijsden

12/08/2006 17:33:00
Quote Anchor link
Hallo allemaal, Ik heb laatst een nieuws pagina gemaakt met php en mysql, tabel met id en nieuws kop, main en datetime, was even zoeken maar werkt allemaal perfect.
Nu wil ik een vacature cms je gaan maken waarbij ik met twee tabellen ben gaan werken. De eerste tabel heet vacatures en daar staat oa vac_ID in, nog een zooitje velden voor de rest van de vacature en een vakgeb_id veld.
Dit vakgeb_id veld komt overeen met het vakbeg_id veld in de tabel vakgebied waar naast dit vakgeb_id ook vakgeb_naam in staat.
In de eerste pagina (vacatures.php) staat oa het volgende:
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
<?php
//vacatures op vakgebied

//Verbinding met database

include("connect.inc.php");

//vakgebieden inlezen uit de database
$vakgeb_SQL="SELECT * FROM vakgebied ORDER BY vakgeb_id";
$vakgeb_result=mysql_query($vakgeb_SQL);
?>

<html>
<head>
</head>
<body>
<ul>
  <?php
  //Lijst met vakgebieden weergeven
  while($vakgeb=mysql_fetch_array($vakgeb_result)){
  echo "<li><a class=\"tekst\" href=vakgeb_list.php?vakgeb_id=" . $vakgeb['vakgeb_id'] . ">" . $vakgeb['vakgeb_naam'] . "</a></li>";
  }

  mysql_close();
  ?>

</ul>
</body>
</html>

Er verschijnt dus een lijst met vakgebieden en als je er een selecteerd wordt deze met het vac_ID doorgestuurd naar vakgeb_list.php.
In vakgeb_list.pgp krijg ik dan netjes een lijst met de vacatures van dat vakgebied.
Code als volgt:
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
<?php
//Verbinding met database maken
include("connect.inc.php");

//parameters inlezen
$vakgeb_id=$_GET['vakgeb_id'];

//Lijst met vacatures samenstellen
$vac_SQL="SELECT * FROM vacatures,vakgebied WHERE vacatures.vakgeb_id=vakgebied.vakgeb_id AND vacatures.vakgeb_id=$vakgeb_id ORDER BY vac_datetime DESC";
$vac_result=mysql_query($vac_SQL);

//Informatie over vakgebieden inlezen
$vakgeb_SQL="SELECT vakgeb_naam FROM vakgebied WHERE vakgeb_id=$vakgeb_id";
$vakgeb=mysql_fetch_array(mysql_query($vakgeb_SQL));
?>

<html>
<head>
</head>
<body>
<h1>Vacatures <?php echo $vakgeb['vakgeb_naam'] ?></h1>
<?php
//Hier worden de berichten weergegeven
while($vac=mysql_fetch_array($vac_result)){
//De datum opmaken
$unixtime = strtotime($vac['vac_datetime']);
//controle op lengte hoofdtekst en eventueel inkorten
if(strlen($vac['vac_fomschrijving'])>220){
$vac['vac_fomschrijving']=substr($vac['vac_fomschrijving'],0,180) . " ... <a href=vac_detail.php?vac_ID=" . $vac['vac_ID'] . ">meer</a>";
}

?>

<h3><?php echo date("d-m-Y",$unixtime) ?></h3>
<h2><?php echo $vac['vac_functie'] ?></h2>
<p class="p0"><?php echo $vac['vac_fomschrijving'] ?></p>
<?php
}
?>

<p><a class="tekst" href="vacatures.php">Terug naar Vakgebieden</a></p>
</body>
</html>

Indien er op meer geklikt wordt je doorgestuurd met het vac_ID naar de vac_detail.php pagina.
Met deze code:
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
<?php
//Verbinding met database maken
include("connect.inc.php");

$vac_SQL="SELECT * FROM vacatures,vakgebied WHERE vacatures.vakgeb_id=vakgebied.vakgeb_id AND vac_ID=" . $vac_ID;
$vac_result=mysql_query($vac_SQL);
$vac=mysql_fetch_array($vac_result);
mysql_close();
?>

<html>
<head>
</head>
<body>
<?php
//Hier worden de berichten weergegeven
{
//De datum opmaken
$unixtime = strtotime($vac['vac_datetime']);
?>

<h1>Geselecteerde vacature <?php echo $vakgeb['vakgeb_naam'] ?></h1>
<h2><?php echo $vac['vac_functie'] ?></h2>
<h3>Locatie/standplaats:</h3>
<p class="p0"><?php echo $vac['vac_locatie'] ?></p>
<h3>Bedrijfsinformatie:</h3>
<p class="p0"><?php echo $vac['vac_bedrijfsinfo'] ?></p>
<h3>Functieomschrijving:</h3>
<p class="p0"><?php echo $vac['vac_fomschrijving'] ?></p>
<h3>Functie eisen:</h3>
<p class="p0"><?php echo $vac['vac_feisen'] ?></p>
<h3>Bijzonderheden:</h3>
<p class="p0"><?php echo $vac['vac_bijzonderheden'] ?></p>
<h3>Salarisindicatie:</h3>
<p class="p0"><?php echo $vac['vac_salaris'] ?></p>
<h3>Contractvorm:</h3>
<p class="p0"><?php echo $vac['vac_contract'] ?></p>
<?php
}
?>

<p><a class="tekst" href=vakgeb_list.php">Terug naar Vakgebieden</a></p>
</body>
</html>

Hier krijg je dus alle gegevens te zien van de geselecteerde vacature.
En nu het probleem, aan het eind van deze laatste pagina wil ik terug kunnen keren naar de vakgeb_list.php pagina en dat lukt dan niet want dan krijg ik de volgende waarschuwing:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\.....\vakgeb_list.php on line 17
en:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\home\......\vakgeb_list.php on line 54
En dat slaat dan op deze:
$vakgeb_SQL="SELECT vakgeb_naam FROM vakgebied WHERE vakgeb_id=$vakgeb_id";
$vakgeb=mysql_fetch_array(mysql_query($vakgeb_SQL));
en op deze:
$vac_SQL="SELECT * FROM vacatures,vakgebied WHERE vacatures.vakgeb_id=vakgebied.vakgeb_id AND vacatures.vakgeb_id=$vakgeb_id ORDER BY vac_datetime DESC";
$vac_result=mysql_query($vac_SQL);
selectie queries.
Nou zit volgens mij het probleem dat ik van pagina 1 naar 2 het vakgeb_id meestuur en van 2 naar 3 het vac_id en dat als ik terug wil van 3 naar 2 ik dus weer het vakgeb_id moet hebben wat ik gebruikte van 1 naar 2.
Wie weet hoe ik dat moet doen?
Ik hoop dat ik duidelijk genoeg ben geweest, anders hoor ik het wel.
Alvast bedankt.
Gewijzigd op 01/01/1970 01:00:00 door Diederick van Eijsden
 
PHP hulp

PHP hulp

07/11/2024 13:50:35
 
PHP Newbie

PHP Newbie

12/08/2006 17:51:00
Quote Anchor link
wil je even voor je code zetten en na je code?

Dan is het leesbaar
 
Frank -

Frank -

12/08/2006 19:07:00
Quote Anchor link
Offtopic:
Tips: Ga eens wat aan foutafhandeling doen. Jij neemt aan dat iedere query lukt en ik kan je garanderen dat iedere query vroeg of laat zal mislukken. Dat gaat voor jou dus een berg problemen opleveren.

Verder neem jij aan dat iedere variabele wel zal bestaan en de juiste inhoud heeft, maar ook hier krijg je de garantie dat ze niet altijd zullen bestaan en wanneer ze bestaan, er de grootst mogelijke onzin in zal staan. Kortom, nog vééél meer problemen om op te lossen.

Begin eens met de volgende regels in al jouw scripts:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
ini_set('displayerrors', 1);
error_reporting(E_ALL);

// rest van je script
?>

Gebruik de functie isset() om te controleren of een variabele wel bestaat, zet toegestane waardes in een array, gebruik addslashes om SQL-injection te voorkomen, controleer of queries wel zijn gelukt, etc. etc.
 
Diederick van Eijsden

Diederick van Eijsden

13/08/2006 12:39:00
Quote Anchor link
ik heb de code nu tussen de code haakjes gezet, sorry, en ik zal me gaan verdiepen in foutafhandeling.
Nu nog een pagina terug.
Gewijzigd op 01/01/1970 01:00:00 door Diederick van Eijsden
 



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.