selectie mysql als input voor meer info.
Ik zou graag de keuze uit een mysql query willen gebruiken als input voor meer informatie maar weet niet hoe.
oftewel,
als de eerste query bv als resultaat heeft
dan wil ik dus graag dat als ik op persoon 2 klik,
ik alleen informatie van persoon 2 krijg, bv
en dus niet
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
persoon 1 adres
persoon 1 telefoonnummer
persoon 1 postcode
persoon 2 adres
persoon 2 telefoonnummer
persoon 2 postcode
persoon 3 adres
persoon 3 telefoonnummer
persoon 3 postcode
persoon 1 telefoonnummer
persoon 1 postcode
persoon 2 adres
persoon 2 telefoonnummer
persoon 2 postcode
persoon 3 adres
persoon 3 telefoonnummer
persoon 3 postcode
De eerste pagina heb ik al, de resultaten van de eerste query vormen ook al links naar een tweede php pagina, maar wat ik niet weet is wat ik op die tweede pagina moet zetten zodat ik alleen de resultaten van die ene persoon krijg.
het moet neerkomen op
maar hoe krijg ik dat id dynamisch en het product van de persoon selectie?
ik hoop dat iemand mij kan helpen.
dat $id heb je op dezelfde pagina gedefinieerd en is daarmee dus statisch.
in regel 3 $id snap ik, maar wat is de functie van .(int) ?
voor de duidelijkheid paste ik hieronder hoe mijn hoofdpagina er ongeveer uit ziet. Als ik op 1 van die linken klik, dient er dus verdere informatie te openen over slechts die persoon waar ik op klik.
Code (php)
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
44
45
46
47
48
49
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
44
45
46
47
48
49
<?
$username="root";
$password="1";
$database="test";
mysql_connect('127.0.0.1',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM personen";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
?>
<?
$i=0;
while ($i < $num) {
$persoon1=mysql_result($result,$i,"persoon1");
$persoon2=mysql_result($result,$i,"persoon2");
$persoon3=mysql_result($result,$i,"persoon3");
?>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>persooninfo 1 is:</td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon1; ?></a></td>
<td>persooninfo 2 is:</td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon2; ?></a></td>
<td>persooninfo 3 is:</td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon3; ?></a></td>
<?
$i++;
}
echo "</table>";
[/code]
$username="root";
$password="1";
$database="test";
mysql_connect('127.0.0.1',$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM personen";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();
?>
<?
$i=0;
while ($i < $num) {
$persoon1=mysql_result($result,$i,"persoon1");
$persoon2=mysql_result($result,$i,"persoon2");
$persoon3=mysql_result($result,$i,"persoon3");
?>
<table border="0" cellspacing="2" cellpadding="2">
<tr>
<td>persooninfo 1 is:</td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon1; ?></a></td>
<td>persooninfo 2 is:</td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon2; ?></a></td>
<td>persooninfo 3 is:</td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon3; ?></a></td>
<?
$i++;
}
echo "</table>";
[/code]
Ik heb het idee dat je mijn vraag niet begreep
en mij iets anders uitlegde dan ik moest weten.
Zou je als ik mij daarin vergis mij iets duidelijker
willen uitleggen hou jouw antwoord de oplossing is,
want zoals het er nu staat begrijp ik het niet.
(mijn code hierboven is trouwens gewoon van een
tutorial ergens gepikt en is zeker geen indicatie voor mijn niveau;)
Toevoeging op 29/01/2012 10:23:13:
ok, ik snap nu dat dat int nodig is om dat id als variabele te gebruiken,
maar hoe krijg ik dat id van de ene pagina naar de andere,
zoiets ls dit lijkt me op de persooninfo.php pagina,
maar dat werkt dus niet. althans, het id wordt niet gepost
(overigens wordt het id met auto incrment gemaakt in de database.)
waarschijnlijk moet ik dus nu alleen nog weten hoe ik dat id mee
post als ik op een link klik.
Gewijzigd op 29/01/2012 10:25:13 door koos jansen
a href="http://127.0.0.1/persooninfo.php?id=".$id
Waarom * gebruiken, selecteer het veld wat je nodig hebt.
Waarom @ gebruiken; fouten niet onderdrukken, maar oplossen/voorkomen.
Waar is de foutafhandeling van je query's? Die is geen foutafhandeling.
Gebruik een shorttags voor php
Volgens mij kan het gedeelte tussen regel 21 en 44 efficienter (in een while-lus). Wat als je straks nog tien personen extra wilt? Ga je dan voor al die tien het apart aanmaken?
a href="http://127.0.0.1/persooninfo.php?id="$id
werkt niet, dan opent hij
http://127.0.0.1/persooninfo.php?id=.$id
http://127.0.0.1/persooninfo.php?id=$id
en heeft hij geen variabele aangemaakt
$id=$_POST['.id'];
$id=$_POST['id'];
geeft dan
Notice: Undefined index
Notice: Undefined variable
(overige slordigheden maken voor mij in deze fase trouwens niet veel uit. Ik moet een demo maken die net genoeg werkt om een idee te presenteren aan echte vakmannen.
en die @ heb ik gewoon overgenomen uit een tutorial, ik had geen idee wat het deed ;)
Gewijzigd op 29/01/2012 11:07:12 door koos jansen
Je hebt de persoon 1,2 en 3 waar je die ophaalt staan niet tussen <form> tags.
Als je die in <form></form> zult zetten en de value van jou persoon 1,2 en 3 zet je dan de id neer. Zo post je altijd de id mee. Deze kan je dan in je select query ophalen als
- Let wel even in bovenstaande script op *. Je kunt beter de velden voluit type die je nodig hebt. Zo voorkom je overbodige geheugen gebruik tijdens selecteren van velden die je niet nodig bent.
- Pas een goede foutafhandeling toe. Want jij gaat ook niet dood als je iets fout doet.
Koos jansen op 29/01/2012 11:04:13:
(overige slordigheden maken voor mij in deze fase trouwens niet veel uit.
Die slordigheden kunnen er de oorzaak van zijn dat iets niet werkt.....
Zie al waar het in mijn voorbeeld mis gaat. $id hoort bij php en die is op dat moment nog niet 'geopend'. Uit mijn hoofd:
@Frank: je gaat een variabele kopiëren? mysql_real_escape_string gebruik je in query's.
Gewijzigd op 29/01/2012 12:36:40 door Obelix Idefix
doen,
maar ik snap niet waar ik die forms in pagina 1 moet plaatsen.
Code (php)
1
2
3
2
3
<td>persooninfo 1 is:</td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon1; ?></a></td>
</tr>
<td><a href="http://127.0.0.1/persooninfo.php"><? echo $persoon1; ?></a></td>
Toevoeging op 29/01/2012 13:01:34:
woohoo.. bedankt, dat was hem. Ik had zelf al
geprobeerd maar nog niet met echo zoals jij en dat was de oplossing. super!
iedereen heel erg bedankt. :D
Toevoeging op 29/01/2012 13:08:59:
Voor de goede orde en anderen die evt dezelfde vraag hebben,
de oplossing was dus:
pagina1
Code (php)
pagina2
nogmaals heel erg bedankt! :D
Gewijzigd op 29/01/2012 13:09:43 door koos jansen
De reden dat ik * doe is omdat
ik helemaal niets van php begrijp
(overigens begrijp ik wel wat je voorstelt, maar eenmaal ingevoerd is het weer 1 extra plaats waar het mis kan gaan)
en ik de details die opgehaald worden nog niet definitief heb besloten (ze kunnen anders gaan heten, aangevuld worden of verwijderd.)
en het op dit moment al zon 50 details zijn
De reden dat ik personen en persoonsinfo heb genomen was puur ten behoeve van de vraag op dit forum, dat leek mij het minst abstract.
Gewijzigd op 29/01/2012 13:29:51 door koos jansen
Om te testen zou je dan * kunnen gebruiken, maar in de definitieve versie zou ik het niet doen/accepteren van anderen. Heb je alle 50 details nodig?
Ja dat weet ik dat die daar hoor.
Ik zette er ook bij dat je in de query hem dan zo ophaalt, dan natuurlijk wel met een WHERE er voor.
Maar goed lees dat het probleem is al opgelost.
het gaat om een soort kennisboom die ik begonnen ben te maken in excel, het is een eerste keer dat ik zoiets doe en het troubleshooten ervan bleek in die vorm nogal tijdsintensief. Ik heb echt een doorloopbaar script nodig dus moest het daarom wel in mysql/php doen. Op dit moment is de database zelfs zo'n 200 entries breed, maar welke van die entries waar in de tree komen is nog niet definitief besloten, dat kan ik pas echt weten zodra de tree af is en ik hem meermaals heb doorlopen. Tot die tijd ben ik de enige user, zodra dit klaar is presenteer ik de opzet aan ervaren webdesigners, want het uiteindelijke doel is een pagina die nu.nl hoeveelheden logins te verwerken krijgt en die ook optimaal hackbestendig moet zijn. Niets voor iemand die vragen in het beginnerstopic stelt dus ;)