Toon posts:

[php]Altijd dezelfde id?

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

Verwijderd

Topicstarter
Ik heb een probleem. Ik ben bezig met een site. Je kan een lijst van produkten bekijken. Als je op een produkt klikt, krijg je een bestel formulier waar ook in staat wel produkt je hebt gekocht. Maar op 1 of andere vage manier, neemt die altijd dezelfde id, dus als ik bijvoorbeeld op een televisie klik. Dan print die in het formulier monitor. Hoe is dit mogelijk?

Dit is het stukje script :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?
$titel = "Cd's lijst + Bestellen";

include("header.inc.php3");

// LEFT nav menu

PRINT"
<a href='index.php3' class='mini'>[img]'images/pijltje.gif'[/img] Ga Terug Naar De Frontpage</a><br>
";

include("center.inc.php3");

// Main pagina
$mysql = mysql_query("SELECT * FROM cds");
while ($regel = mysql_fetch_array($mysql)){
      
$id = $regel["id"];
$titel = $regel["titel"];
$cds = $regel["cds"];
$extra = $regel["extra"];
PRINT"<br>&amp;amp;nbsp;[img]'images/pijltje.gif'>&amp;amp;nbsp;<a[/img]$titel</a></b>";
}
if($action=='cd') 
{

$mysql2 = mysql_query("SELECT * FROM cds WHERE id='$id'");
while ($regel = mysql_fetch_array($mysql2)){
$id = $regel["id"];
$titel = $regel["titel"];
$cds = $regel["cds"];
$extra = $regel["extra"];
}
        PRINT"
            <form action='cds.php3?action=cd2&amp;amp;ID=$ID' method='post'>
            <table cellspacing='1' cellpadding='3'>
            <tr><td width='500' colspan='2'><font size='3'><b>Cd Bestellen.<br><br></b></font></td></tr>
            <tr><td width='200' valign='top'><b>Bestelde Cd:</b></td><td width='300'><input type='text' name='titel' value='$titel'></td></tr>
            <tr><td width='200' valign='top'><b>Aantal Cd's:</b></td><td width='300'><input type='text' name='cds' value='$cds'></td></tr>
            <tr><td width='200' valign='top'><b>Extra:</b></td><td width='300'><input type='text' name='extra' value='$extra'></td></tr>
            <tr><td width='200' valign='top'><b>Naam:</b></td><td width='300'><input 
            type='text' name='naam'></td></tr>
            <tr><td width='200' valign='top'><b>Mail:</b></td><td width='300'><input 
            type='text' name='mail'></td></tr>
            <tr><td width='200' valign='top'><b>Adres:</b></td><td width='300'><input 
            type='text' name='adres'></td></tr>
            <tr><td width='200' valign='top'><b>Postcode:</b></td><td width='300'><input 
            type='text' name='postcode'></td></tr>
            <tr><td width='200' valign='top'><b>Plaats:</b></td><td width='300'><input 
            type='text' name='straat'></td></tr>
            <tr><td width='200' valign='top'><b>Telefoon.:</b></td><td width='300'><input 
            type='text' name='tel'></td></tr>
            <tr><td width='200'><b></b></td><td width='300'><input type='submit' value='Verzenden'></td></tr>
            </table>
            </form>
            ";        
}
elseif($action=='cd2')
{

        mysql_query("INSERT INTO bestellers (id,titel,cds,extra,naam,mail,adres,postcode,straat,tel) VALUES ('$idddd','$titel','$cds','$extra','$naam','$mail','$adres','$postcode','$straat','$tel');");

        PRINT"<br><br><br><br>Je bestelling is geregistreerd. We versturen de bestelling pas zodra we het geld van het desbetreffende produkt binnen is. Zodra wij je bestelling verstuurd hebben laten wij dat jou weten door middel van een mailtje of een telefoontje.";
    } 


include("footer.inc.php3");
?>

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Tja. Logisch toch. Lees je code nou nog eens door.
while

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

code:
1
PRINT"<br>&nbsp;[img]'images/pijltje.gif'>&nbsp;<a[/img]$titel</a></b>";

De parameters zijn case-sensitive denk ik.
id=$id moet het dan wezen.

Who is John Galt?


Verwijderd

Topicstarter
Hmz ... nee ... heb ik geprobeerd, daar ligt het niet aan, maar nielz ik snap niet wat je bedoeld. Die while ziet er toch goed uit ?

Verwijderd

Topicstarter
Ik heb trouwens nog een probleen, als ik op het desbetreffende produkt klik, komt het formulier te staan onder de lijst produken. Het is natuurlijk mooier als die apart komt te staan. Dat komt volgens mij doordat ik de statements verkeerd heb gebruikt ... of niet. Sorry, maar ik ben een n00b kwa PHP ... :P ... .

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 18-11 16:53

D2k

Op vrijdag 28 december 2001 11:41 schreef korn het volgende:
Ik heb trouwens nog een probleen, als ik op het desbetreffende produkt klik, komt het formulier te staan onder de lijst produken. Het is natuurlijk mooier als die apart komt te staan. Dat komt volgens mij doordat ik de statements verkeerd heb gebruikt ... of niet. Sorry, maar ik ben een n00b kwa PHP ... :P ... .
special price for you
afgestoft uit de oude doos ;)
analyse is het belangijkste
als je niet weet hoe je iets moet maken heeft de code geen nut.
coden is het eenvoudige deel van programmeren
typen kan iedereen en de syntax is ook niet moeilijk.
maar de analyse dus eeeeerst doorkrijgen wat je wil en welke stappen dat je er voor moet doorlopen moet je het coden maar uit je hoofd zetten.
Dus beschrijf nu gewoon eens op papier (ja met een pen) hoe je dit probleem kan oplossen
en ga het dan omzetten in code
dus niet eerst coden en dan denken hoe zal ik het eens gaan doen

tot zover
D2k teaches programming part 1 :+

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Thanx D2k ... you're great help, but again ... ik heb het gedaan ... alleen dan niet met pen maar in notepad :) ... maar het werkt niet ... ik kom bijna weer op precies hetzelfde uit, en als ik een action probeer te zetten op het begin zit de code vol met parse errors ... :P ... .

edit:

Denken doe ik ... geloof me, en soms ben ik er ook zo lang mee bezig, maar met php lukt het me gewoon niet altijd, daardoor beginnen mijn handen te jeuken ... :P ... .

Verwijderd

Topicstarter
Het lukt me dus gewoon niet ... maar ik ga nu heel snel ff eten ... en ik kom daarna ff kijken of iemand me goed geholpen heeft ... Thanx Alvast Guys ... :P ... .

  • Nielsz
  • Registratie: Maart 2001
  • Niet online
D2k, niet op reageren, hij is een VB'er ;)
Je doet eerst een

while($blaat)
{
$id=$blaat["id"];
//nu is $id telkens een andere waarde, zolang hij de loop doorloopt. ** BELANGRIJK ** Op het laatst, heef $id de waarde van het laatste record.
}

if($id) //oid
{
Nu ga je kijken of id bestaat, en een query uitvoeren:

select * from blaat where id='$id';

// wat stond er bij belangrijk? juist, $id is dus het laatste record uit de database.
}

Verwijderd

Topicstarter
Hmz ... thanx ... maar ik snap het nog niet, hoe kan het dan dat die steeds de laatste id uit de database haalt ?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 28 december 2001 12:34 schreef korn het volgende:
Hmz ... thanx ... maar ik snap het nog niet, hoe kan het dan dat die steeds de laatste id uit de database haalt ?
Je overschrijft je parameter id in de eerste while loop.
Vervolgens gebruik je 'em weer als parameter in je tweede query.

Who is John Galt?


Verwijderd

Topicstarter
Hmz ... als ik niet zo'n n00b was in PHP zou ik het begrijpen ... maar sorry ... ik begrijp het echt niet hoor ... :P ... .

Verwijderd

Topicstarter
Ik vat hem ... ik gebruik dus 2 keer hetzelfde ... ik moet die 2e query dus veranderen in mysql2 ... ik heb dit gedaan ... maar het werkt nog steeds niet ... :P ... .

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 28 december 2001 13:07 schreef korn het volgende:
Ik vat hem ... ik gebruik dus 2 keer hetzelfde ... ik moet die 2e query dus veranderen in mysql2 ... ik heb dit gedaan ... maar het helpt nog steeds niet ... :P ... .
id id id id id id id id id id id id id :P

Who is John Galt?


  • Nielsz
  • Registratie: Maart 2001
  • Niet online
Op vrijdag 28 december 2001 13:09 schreef justmental het volgende:

[..]

id id id id id id id id id id id id id :P
Zal hij al een id hebben :? ;)

Verwijderd

Topicstarter
Hmz ... sorry ... maar ik vat het werkelijk waar nog steeds niet ... :)

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 28 december 2001 13:14 schreef korn het volgende:
Hmz ... sorry ... maar ik vat het werkelijk waar nog steeds niet ... :)
Loop het geheel eens logisch door en kijk wat er met je variabele/parameter 'id' gebeurt.

Who is John Galt?


Verwijderd

Topicstarter
Ik ben hier in totaal al wel een uur bezig geweest met goed kijken en doorlopen ... maar ik zie echt niks wat verbeterd zou moeten worden ... logisch ofcourse ... omdat ik een n00b ben ... weet ik geeneens wat goed zou moeten zijn ... :P ... .

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op vrijdag 28 december 2001 13:07 schreef korn het volgende:
Ik vat hem ... ik gebruik dus 2 keer hetzelfde ... ik moet die 2e query dus veranderen in mysql2 ... ik heb dit gedaan ... maar het werkt nog steeds niet ... :P ... .
Volgens mij vat je 'm niet :P
je moet voor de 2e query een andere $id gebruiken dan degene die (door je vorige while) altijd het laatste record in je db aanwijst....

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 28 december 2001 13:17 schreef korn het volgende:
Ik ben hier in totaal al wel een uur bezig geweest met goed kijken en doorlopen ... maar ik zie echt niks wat verbeterd zou moeten worden ... logisch ofcourse ... omdat ik een n00b ben ... weet ik geeneens wat goed zou moeten zijn ... :P ... .
Je komt de code binnen met id=1

selecteer alles uit tabel
loop door de records heen
id=inhoud van record
einde loop

Hij loopt door de tabel heen, id wordt achtereenvolgens 1, 6, 3, 8, 21, 2, 9, 21

selecteer alles uit tabel waar kolom=id

id was nog 21, dus je krijgt het laatste record

Who is John Galt?


Verwijderd

Topicstarter
Justmental ... heb jij misschien ook een icq # of msn ... :P ... .

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op vrijdag 28 december 2001 13:17 schreef korn het volgende:
Ik ben hier in totaal al wel een uur bezig geweest met goed kijken en doorlopen ... maar ik zie echt niks wat verbeterd zou moeten worden ... logisch ofcourse ... omdat ik een n00b ben ... weet ik geeneens wat goed zou moeten zijn ... :P ... .
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
//nu is $id ongedefinieerd
while ($regel = mysql_fetch_array($mysql)){
      $id = $regel["id"];
//etc
}
// nu is $id gelijk aan de waarde die ie in de laatste 
// 'doorloop' van de while lus had (bijvoorbeeld 10)

// nu ga je een nieuwe query uitvoeren
$mysql2 = mysql_query("SELECT * FROM cds WHERE id='$id'");

// alleen heeft $id al de waarde 10, 
// waardoor het $ID dat je
print("<a href='cds.php3?action=cd&amp;ID=$id'>$titel</a></b>";}
// hiermee meegeeft dus overschreven.
?>

Probeer eens i.p.v. "&ID=$ID" "&Order_ID=$ID"
en dan dus in de 2e query niet WHERE ID=$ID, maar WHERE ID=$Order_ID...

Verwijderd

Topicstarter
Werkt niet ... of ik doe iets verkeerd ?

Verwijderd

Topicstarter
Maar TheRookie ... misschien heb jij msn of icq ... ik denk dat we dan heel wat verder komen ... :P ... .

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op vrijdag 28 december 2001 13:33 schreef korn het volgende:
Werkt niet ... of ik doe iets verkeerd ?
Waarschijnlijk wel :9

Probeer deze while lus eens in je originele script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
<?
while ($regel = mysql_fetch_array($mysql)){
      $Overview_ID    = $regel["id"];
      $Overview_Titel = $regel["titel"];
      $Overview_CDs   = $regel["cds"];
      $Overview_Extra = $regel["extra"];
      print("<br>[img]'images/pijltje.gif'>");
[/img]");
      print("$Overview_titel</a></b>";
}
?>

[edit]
layout
No Offence Intended, maar wil je een veilige webwinkel gaan maken als je dit niet eens ziet :? :?

Verwijderd

Topicstarter
Thanx ... ik ga het ff proberen

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 28 december 2001 13:45 schreef korn het volgende:
Thanx ... ik ga het ff proberen
Haakje missend.
Wel zelf een beetje proberen hoor :P
edit:
en niet zo snel weer editten :o

Who is John Galt?


Verwijderd

Topicstarter
Zo ... finished ... parse error is in ieder geval al wel weg ... maar jullie zien zelf toch ook dat dit niet gaat ... zou het niet handig zijn als dit ff op icq of msn kon ... :P ... .

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op vrijdag 28 december 2001 13:47 schreef justmental het volgende:

[..]

Haakje missend.
Wel zelf een beetje proberen hoor :P
edit:
en niet zo snel weer editten :o
:) die moet ie er zelf toch wel uit kunnen halen ? :9
Als 't nou nog niet lukt .....

Verwijderd

Topicstarter
Nou ... nu lukt dit alles wel ... maar nu print die niks ... heel weirds ... please guys ... dit vraag ik al de 3e keer ... wil niemand me ff helpen op icq of msn ... :P ... .

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op vrijdag 28 december 2001 13:49 schreef korn het volgende:
Zo ... finished ... parse error is in ieder geval al wel weg ... maar jullie zien zelf toch ook dat dit niet gaat ... zou het niet handig zijn als dit ff op icq of msn kon ... :P ... .
IMHO niet, hints & tips zijn makkelijk, maar eigenlijk had je zelf ook moeten kunnen bedenken dat die while lus anders moest.

Had je al geprobeerd te debuggen door bijvoorbeeld in de While lus en voor je 2e query een
PHP:
1
2
3
<?
 print("<!-- ID is nu: $id -->");
?>

te zetten, dan was je er denk ik zo achter gekomen :P

Verwijderd

Topicstarter
Die code die jij mij net gaf rookie hielp niks ... ik heb hem er tussen gezet ... maar door 1 of andere gare manier laat die hem niet zien ... hij print hem dus niet ... verder lukt het me nu wel om apart naar een id te gaan ... dus dat is gefixt ... maar hij print die lijst cd's niet

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Op vrijdag 28 december 2001 13:52 schreef korn het volgende:
Nou ... nu lukt dit alles wel ... maar nu print die niks ... heel weirds ... please guys ... dit vraag ik al de 3e keer ... wil niemand me ff helpen op icq of msn ... :P ... .
Ja, toedeledokie.
Op deze manier duurt het nog zes jaar voor je iets fatsoenlijks hebt en dan is het helemaal door ons gebouwd.

Probeer eens een basiscursus programmeren.

Who is John Galt?


Verwijderd

Topicstarter
Hier dan maar weer de code die ik [b]nu[/b] heb :
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?
$titel = "Cd's lijst + Bestellen";

include("header.inc.php3");

// LEFT nav menu

PRINT"
<a href='index.php3' class='mini'>[img]'images/pijltje.gif'[/img] Ga Terug Naar De Frontpage</a><br>
";

include("center.inc.php3");

// Main pagina
$mysql = mysql_query("SELECT * FROM cds");
while ($regel = mysql_fetch_array($mysql)){      
$Overview_ID    = $regel["id"];      
$Overview_Titel = $regel["titel"];      
$Overview_CDs   = $regel["cds"];      
$Overview_Extra = $regel["extra"];            
print"<b><a href='cds.php3action=cd&amp;ID=$Overview_ID'>$Overview_titel</a></b>";
}
if($action=='cd') 
{

$mysql = mysql_query("SELECT * FROM cds WHERE id='$id'");
while ($regel = mysql_fetch_array($mysql)){
$id = $regel["id"];
$titel = $regel["titel"];
$cds = $regel["cds"];
$extra = $regel["extra"];
}
        PRINT"
            <form action='cds.php3?action=cd2&amp;ID=$ID' method='post'>
            <table cellspacing='1' cellpadding='3'>
            <tr><td width='500' colspan='2'><font size='3'><b>Cd Bestellen.<br><br></b></font></td></tr>
            <tr><td width='200' valign='top'><b>Bestelde Cd:</b></td><td width='300'><input type='text' name='titel' value='$titel'></td></tr>
            <tr><td width='200' valign='top'><b>Aantal Cd's:</b></td><td width='300'><input type='text' name='cds' value='$cds'></td></tr>
            <tr><td width='200' valign='top'><b>Extra:</b></td><td width='300'><input type='text' name='extra' value='$extra'></td></tr>
            <tr><td width='200' valign='top'><b>Naam:</b></td><td width='300'><input 
            type='text' name='naam'></td></tr>
            <tr><td width='200' valign='top'><b>Mail:</b></td><td width='300'><input 
            type='text' name='mail'></td></tr>
            <tr><td width='200' valign='top'><b>Adres:</b></td><td width='300'><input 
            type='text' name='adres'></td></tr>
            <tr><td width='200' valign='top'><b>Postcode:</b></td><td width='300'><input 
            type='text' name='postcode'></td></tr>
            <tr><td width='200' valign='top'><b>Plaats:</b></td><td width='300'><input 
            type='text' name='straat'></td></tr>
            <tr><td width='200' valign='top'><b>Telefoon.:</b></td><td width='300'><input 
            type='text' name='tel'></td></tr>
            <tr><td width='200'><b></b></td><td width='300'><input type='submit' value='Verzenden'></td></tr>
            </table>
            </form>
            ";        
}
elseif($action=='cd2')
{

        mysql_query("INSERT INTO bestellers (id,titel,cds,extra,naam,mail,adres,postcode,straat,tel) VALUES ('$idddd','$titel','$cds','$extra','$naam','$mail','$adres','$postcode','$straat','$tel');");

        PRINT"<br><br><br><br>Je bestelling is geregistreerd. We versturen de bestelling pas zodra we het geld van het desbetreffende produkt binnen is. Zodra wij je bestelling verstuurd hebben laten wij dat jou weten door middel van een mailtje of een telefoontje.";
    } 


include("footer.inc.php3");
?>

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Op vrijdag 28 december 2001 13:57 schreef korn het volgende:
Die code die jij mij net gaf rookie hielp niks ... ik heb hem er tussen gezet ... maar door 1 of andere gare manier laat die hem niet zien ... hij print hem dus niet ... verder lukt het me nu wel om apart naar een id te gaan ... dus dat is gefixt ... maar hij print die lijst cd's niet
File -> View Source al geprobeerd |:( |:( |:( |:( |:(
code:
1
<!-- blalbalba -->

is commentaar

Verwijderd

Topicstarter
Het lukt me nu dat als ik naar een bepaalde id ga dat hij dan ook de goeie id showed ... maar dat moet ik handmatig doen, het lukt niet om die produkten lijst te printen en dan op het desbetreffende produkt te klikken ...
PHP:
1
2
3
4
5
6
7
8
9
10
<?
$mysql = mysql_query("SELECT * FROM cds");
while ($regel = mysql_fetch_array($mysql)){      
$Overview_ID    = $regel["id"];      
$Overview_Titel = $regel["titel"];      
$Overview_CDs   = $regel["cds"];      
$Overview_Extra = $regel["extra"];      
print("<br>[img]'images/pijltje.gif'[/img]");      
print("<a href='cds.php3?action=cd&amp;ID=$Overview_ID'>$Overview_titel</a></b>");
?>

Hij print nu niks, dat komt omdat ik heb probeer te printen als : $Overview_titel ... maar het moet $Overview_Titel ... dan lukt het ook wel om hem te printen, maar als ik daar dan op klik ... kom ik niet uit bij het id waar ik wil zijn ... terwijl dat wel lukt als ik : $Overview_titel ... dus met een kleine hoofdletter doe ... :P ... .

Verwijderd

Topicstarter
Jammer ... we zijn er bijna ... en nu zijn jullie weg ... :P ... .

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Niet na 15 minuten schoppen...
Zelf denken...

We zijn geen helpdesk met 15-minuuts-reactie-garantie.
Pagina: 1

Dit topic is gesloten.