[SQL/PHP] Gegevens over schoenen met juiste maat ophalen*

Pagina: 1
Acties:

Onderwerpen


Verwijderd

Topicstarter
Hallo,

We hebben een klein probleempje met SQL + PHP.
Wat we moeten doen is een webwinkel maken voor een informatica project.

Wat we doen is dat we mensen een klant ID toekennen via een database, Mensen vullen hun gegevens in en krijgen er 1 toegewezen.
Dan kunnen ze schoenen gaan bestellen, en dan zou PHP moeten weten welk schoen ID nike airmax maat 42 is.
Elke maat schoen/model heeft een ander ID.
Die staat al in de database zelf, maar niet in de kolom bestellingen maar in schoenen.

Hij zou het klantID wat opnieuw gevraagd wordt, en het schoen ID gelijk naar bestellingen moeten doorsturen. Met wat voor query kunnen we zorgen dat die eerst de schoenen tabel raadpleegd en dan vanuit daar het schoen ID doorstuurt naar bestellingen?

  • Cyphax
  • Registratie: November 2000
  • Laatst online: 22:06

Cyphax

Moderator LNX
Verwijderd schreef op donderdag 28 februari 2008 @ 14:43:
Die staat al in de database zelf, maar niet in de kolom bestellingen maar in schoenen.

Hij zou het klantID wat opnieuw gevraagd wordt, en het schoen ID gelijk naar bestellingen moeten doorsturen.
Ik snap vanaf dit punt je vraag niet (meer) maar ik heb het idee dat je er met de basics al niet uitkomt. Kun je het eens opnieuw formuleren?

Saved by the buoyancy of citrus


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Je wil dus het ID van desbetreffende schoen selecteren. Vervolgens wil je het id van de schoen en het id van de klant in de bestellingen tabel inserten.

Dit zijn de meest eenvoudige SELECT resp. INSERT statements, en hoe je die schrijft moet je te toch echt in een tutorial/manual/boek kunnen vinden. :) Probeer eerst maar het eea.

{signature}


  • gertvdijk
  • Registratie: November 2003
  • Laatst online: 09-09 10:57
Verwijderd schreef op donderdag 28 februari 2008 @ 14:43:
Hij zou het klantID wat opnieuw gevraagd wordt, en het schoen ID gelijk naar bestellingen moeten doorsturen. Met wat voor query kunnen we zorgen dat die eerst de schoenen tabel raadpleegd en dan vanuit daar het schoen ID doorstuurt naar bestellingen?
Ik begrijp je vraag ook niet helemaal, maar ik denk dat je op zoek moet gaan naar subqueries/joins.

Kia e-Niro 2021 64 kWh DynamicPlusLine. See my GitHub and my blog for articles on security and other stuff.


Verwijderd

Volgens mij is de vraag inderdaad om gegevens van 2 verschillende tabellen te koppelen

Ik denk dat gaan zoeken op inner join de oplossing is

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Naast het feit dat je vraag nogal vaag is staat deze ook nog eens op de foute plek, zoals je ook in Waar hoort mijn topic? kan lezen. Ik verplaats hem even. ;) Wil jij dan even je best doen op een betere omschrijving van je probleem? Wij hebben geen kennis van en inzicht in jouw database en code, dus op deze manier kunnen we niet meer doen dan gokken.

DTE>>PRG

'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

Topicstarter
Sorry voor de onduidelijkheid, maar het is gelukt met een simpele query:
<?
$type=$_POST["type"];
$maat=$_POST["maat"];

{
print("<tr><td> U heeft besteld $type in maat $maat </td></tr>");
}
?>
<?


include "connect1.php";
$query=("SELECT ID FROM schoenen WHERE type='$type' AND maat='$maat'") or die("De query op de database is mislukt.") ; $gerard=mysql_query($query);
$gerard=mysql_query($query);


?>

<?
while(list($ID) = mysql_fetch_row($gerard))
{
print("<tr><td> Schoen ID is $gerard </td></tr>");
}
?>
<a href="klantformulier.htm">Wilt u verder met de bestelling? Klik dan hier!</a>

Hier in zoekt die dus het ID op in de tabel schoenen, en zou die hem terug moeten geven in de variabele $gerard (ja resultaat is handiger, maar dat werkte niet dus probeerde we maar een naam)

Echter krijgen we terug:
U heeft besteld NikeSB in maat 41 Uw bestelling is goed doorgekomen. Schoen ID is Resource id #5 Wilt u verder met de bestelling? Klik dan hier!

Hoe zorgen we dat die niet Resource ID5 geeft, wat niet het goede ID is, maar op heel iets anders lijkt?

Sorry dat we er zo ontzettend slecht in zijn!

  • VO-Zephyr
  • Registratie: Mei 2001
  • Laatst online: 28-03-2024
Je gebruikt de verkeerde mysql_fetch voor hoe je het gebruikt

http://nl2.php.net/manual/en/ref.mysql.php

je $gerard is je result set en die wil je printen, maar je moet je $id gaan printen lijkt me zo

[ Voor 80% gewijzigd door VO-Zephyr op 28-02-2008 16:39 ]


  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Een paar hints in de richting waar je het kunt zoeken. (Dit is basismateriaal en had jezelf ook prima kunnen vinden zonder deze hints).

Kijk eens wat mysql_query() teruggeeft als deze succesvol is uitgevoerd: php manual over mysql_query

Kijk ook eens wat mysql_fetch_row() retourneerd:php manual over mysql_fetch_row

Hint: je print een verkeerde variabele.

Volgens mij moet je er dan uit kunnen komen. N.B. ik ga het hier niet voor je zitten uitwerken, volgens mij is het de bedoeling dat je d'r ook nog iets van leert! :)

  • Spixo
  • Registratie: Augustus 2004
  • Laatst online: 21:43
Ik zou trouwens oppassen met het zomaar gebruiken van POST variabelen zonder enige check of er niets malafide tussen zit.

  • Jochemmol
  • Registratie: Augustus 2004
  • Laatst online: 07-05-2014
waarom doe je dit
code:
1
2
$gerard=mysql_query($query);
$gerard=mysql_query($query);

misschien een foutje.
Maar het is helemaal logisch dat je deze melding geeft. Je print de recordset van je query.
Volgens mij hoef je dit list($ID) ook niet te doen :X

Jochemmol


  • El_kingo
  • Registratie: Mei 2002
  • Laatst online: 17-03 11:17
Jochemmol schreef op donderdag 28 februari 2008 @ 16:59:
waarom doe je dit
code:
1
2
$gerard=mysql_query($query);
$gerard=mysql_query($query);

misschien een foutje.
Maar het is helemaal logisch dat je deze melding geeft. Je print de recordset van je query.
Volgens mij hoef je dit list($ID) ook niet te doen :X
Nee, hij print de resource-identifier van zijn query, de recordset staat niet in $gerard.
De list($ID) is niet nodig in de while-loop maar mag (volgens mij) wel.
Pagina: 1