[PHP/MySQL] ******.php?id=1 werkt niet

Pagina: 1
Acties:
  • 157 views sinds 30-01-2008

  • masser120
  • Registratie: Januari 2004
  • Laatst online: 14-04 13:56
Beste Allemaal,
Ik probeer een website te maken waarmee je vanuit een database gegevens over mensen kan ophalen. Nou heb ik alvast dit gemaakt:

code:
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
<html>
<title>Dit is een databasetest</title>
</html>
<body>
<?php
 include("config.php");
 $link = mysql_connect("localhost", "$username", "$password")
     or die("Kan geen verbinding maken");
 mysql_select_db("$database")
     or die("Kan geen database selecteren");

// Hierzo zit ergens de fout
 $id = $_GET['id'];
 $query = "SELECT * FROM persv WHERE id='$id'";

 $result = mysql_query($query)
     or die("Fout bij uitvoeren query");
$num=mysql_numrows($result);
$i=0;
while ($i < $num) {
$first=mysql_result($result,$i,"titel");
$last=mysql_result($result,$i,"beschrijving");
$i++;
}
print"
<table>
  <tr>
    <td>$first</td>
  </tr>
  <tr>
    <td>$last</td>
  </tr>
</table>"
?>

</body>


Het is de bedoeling dat je met bijvoorbeeld persoon.php?id=23 de persoon kan ophalen met id=23 in de MySQL database. Daarvoor heb ik al dit staan:$id = $_GET['id']; maar vreemd genoeg werkt dat alleen bij id=2 en niet de rest :? ... ID is in de database trouwens wel de primary key. Als ik een andere getal invoer (wat bestaat in de database) krijg ik te zien:
Notice: Undefined variable: id in F:\webroot\gezin\test3.php on line 14
Notice: Undefined variable: first in F:\webroot\gezin\test3.php on line 29
Notice: Undefined variable: last in F:\webroot\gezin\test3.php on line 32

De eerste (id) begrijp ik niet, de andere zijn gewoon omdat de gegevens niet kunnen worden opgehaald, omdat de id niet klopt :? .

Hoe kan je wel met *****.php?id=4 gegevens ophalen?

  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 05-05 12:14
PHP:
1
2
if (!isSet($_GET['id']) || empty($_GET['id']))  { $id = 1; }
else { $id = intval($_GET['id']); }


kijk ook eens naar print_r($_GET);
offtopic: je vertrouwd blindelings de invoer van de gebruiker. waarmee hij/zij je database zou kunnen vermeubelen

Icons are overrated


  • _reboot_
  • Registratie: December 2004
  • Laatst online: 26-04 16:29
Persoonlijk zou ik er: mysql_num_rows(etc) van maken op lijn 18. Je hebt 4 regels HTML en een foutmelding op regel 14. (18-4=14).

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

_reboot_ schreef op dinsdag 19 april 2005 @ 15:59:
Persoonlijk zou ik er: mysql_num_rows(etc) van maken op lijn 18. Je hebt 4 regels HTML en een foutmelding op regel 14. (18-4=14).
Dat gaat niet op. Regel 14 is gewoon regel 14.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Willem
  • Registratie: Februari 2001
  • Nu online
Wat moet W&G hiermee :?

Motor onderhoud bijhouden


  • MuddyMagical
  • Registratie: Januari 2001
  • Laatst online: 08-05 09:00
Oplossen? :X

Ik zei niets...

[ Voor 14% gewijzigd door MuddyMagical op 19-04-2005 16:19 ]


  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 14:35

Tux

Dit lijkt mij toch meer een gevalletje voor Programming & Webscripting. Maar daar zou het topic denk ik gelijk op slot gaan omdat de oplossing duidelijk in de FAQ staat.

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


  • Suicyder
  • Registratie: Mei 2002
  • Laatst online: 15:54
code:
1
2
3
4
if(isset($HTTP_POST_VARS['id']))
{
    $ID=$HTTP_POST_VARS['id'];
}


Zo werkt het (bij mij althans).
Tevens als het niet bestaat of leeg is wordt de variabele ID niet gevuld.

Zou tevens controleren daarna of $ID wel iets bevat alvorens de SQL los te laten.
Maak hem ervoor bijvoorbeeld -1 en controleer of hij ongelijk is aan -1.


Btw. Volgende keer in P&W posten denk ik maar, dit is programmeren ;)

[ Voor 106% gewijzigd door Suicyder op 19-04-2005 16:26 ]


Verwijderd

Bij mij werkt het gewoon hoor... :?

Misschien ondersteunt jouw host een bepaalde manier van coderen niet. Het is namelijk niet echt nette code als je het mij vraagt... :P
code:
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
include("config.php");
$link = mysql_connect("localhost", "$username", "$password")
     or die("Kan geen verbinding maken");
mysql_select_db("$database")
     or die("Kan geen database selecteren");

$id = $_GET['id'];
$query = "SELECT * FROM persv WHERE id='".$id."'";

$result = mysql_query($query) 
     or die("Fout bij uitvoeren query");

while($rij = mysql_fetch_array ($result) )
{
        $first = $rij['titel'];
        $last = $rij['beschrijving'];
}
print"<table>
         <tr>
          <td>".$first."</td>
         </tr>
         <tr>
          <td>".$last."</td>
         </tr>
        </table>";
mysql_close($verbinding);


Met de while maak je een array aan met daarin de resultaten, vervolgend kun je de waardes één voor één ophalen en in een variabele gooien.

Ow ja, vergeet je verbinding niet af te sluiten

[ Voor 89% gewijzigd door Verwijderd op 19-04-2005 16:36 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Suicyder schreef op dinsdag 19 april 2005 @ 16:20:
code:
1
2
3
4
if(isset($HTTP_POST_VARS['id']))
{
    $ID=$HTTP_POST_VARS['id'];
}


Zo werkt het (bij mij althans).
Tevens als het niet bestaat of leeg is wordt de variabele ID niet gevuld.

Zou tevens controleren daarna of $ID wel iets bevat alvorens de SQL los te laten.
Maak hem ervoor bijvoorbeeld -1 en controleer of hij ongelijk is aan -1.


Btw. Volgende keer in P&W posten denk ik maar, dit is programmeren ;)
En wat dan als $HTTP_POST_VARS['id'] niet geset is? Dan bestaat $ID daaronder ook niet. :) Sowieso is de $HTTP_POST_VARS array achterhaald, we hebben tegenwoordig ook superglobals: $_POST. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

$_POST
Dit gebruik je bij het doorsturen van variabelen met een formulier

$_GET gebruik je om variabelen uit de url te halen... :)

  • Suicyder
  • Registratie: Mei 2002
  • Laatst online: 15:54
-NMe- schreef op dinsdag 19 april 2005 @ 16:29:
[...]


En wat dan als $HTTP_POST_VARS['id'] niet geset is? Dan bestaat $ID daaronder ook niet. :) Sowieso is de $HTTP_POST_VARS array achterhaald, we hebben tegenwoordig ook superglobals: $_POST. :)
Blijkbaar heb ik te lang alweer php achterwege gelaten. Maar weer even opgraven dan :X

  • Pelle
  • Registratie: Januari 2001
  • Laatst online: 17:10

Pelle

🚴‍♂️

Sorry, dit heeft niks met W&G te maken, en is te basic voor P&W dus gewoon een slotje en geen move :)
Pagina: 1

Dit topic is gesloten.