PHP is bijna altijd de $ ervoorquote:Op zaterdag 10 december 2005 21:25 schreef SkaterSam het volgende:
Grrmmmbllllzal je altijd zien, zoiets simpels... danku
Dat soort dingen heb ik ook heel veel hoorquote:Op zaterdag 10 december 2005 21:25 schreef SkaterSam het volgende:
Grrmmmbllllzal je altijd zien, zoiets simpels... danku
Heb je wel display_errors = On staan in php.ini?quote:Op zaterdag 10 december 2005 20:43 schreef SkaterSam het volgende:
Grmmbblll, op een of andere manier krijg ik nooit errors te zien, maar telkens een standaard blanke pagina, maar dat terzijde...
Ik heb tijdens ontwikkeling altijd error_reporting(E_ALL); aanstaan, maar als ik een curly bracket vergeet krijg ik ook een lege page te zien en geen foutmeldingquote:Op zaterdag 10 december 2005 22:46 schreef SuperRembo het volgende:
[..]
Heb je wel display_errors = On staan in php.ini?
Jup, dat heb ik dus ook ja, dus moet ik altijd de fouten uit de error.log lezen, verder niet zo'n probleem, wel een beetje onhandigquote:Op zaterdag 10 december 2005 22:53 schreef Swetsenegger het volgende:
[..]
Ik heb tijdens ontwikkeling altijd error_reporting(E_ALL); aanstaan, maar als ik een curly bracket vergeet krijg ik ook een lege page te zien en geen foutmelding
Dank, ik nietquote:Op zaterdag 10 december 2005 22:46 schreef SuperRembo het volgende:
[..]
Heb je wel display_errors = On staan in php.ini?
weet iemand een leuke windows apache log file parser?quote:Op zaterdag 10 december 2005 22:54 schreef SkaterSam het volgende:
[..]
Jup, dat heb ik dus ook ja, dus moet ik altijd de fouten uit de error.log lezen, verder niet zo'n probleem, wel een beetje onhandig
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 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | php session_start(); /* Load main library Files */ require_once ("lib/htconfig.php"); require_once( $GLOBALS['SITE']['LibPath'] . "/main.php"); if(!$_GET['sid']) { $error->Report ("Er is geen (sub)forum ID meegegeven. Bewerking is afgebroken."); } else { $MySQL_Fora_Select = "SELECT IdForumSubCat, ForumCatId, Titel FROM ForumSubCat WHERE IdForumSubCat = '" . addslashes($_GET['sid']) . "' LIMIT 1"; $MySQL_Fora_Query = mysql_query($MySQL_Fora_Select) or die($error->ReportMysqlError(__FILE__, $MySQL_Fora_Select ,__LINE__)); $MySQL_Fora_Numrow = mysql_num_rows($MySQL_Fora_Query); if($MySQL_Fora_Numrow >= 1) { ## Select the main forum Titel and Image $MySQL_Fora_Assoc = mysql_fetch_assoc($MySQL_Fora_Query); $MySQL_Forum_Select = "SELECT IdForumCat, Titel, TitelImage FROM ForumCat WHERE IdForumCat = '" . addslashes($MySQL_Fora_Assoc['ForumCatId']) . "' LIMIT 1"; $MySQL_Forum_Query = mysql_query($MySQL_Forum_Select) or die(mysql_error()); $MySQL_Forum_Assoc = mysql_fetch_assoc($MySQL_Forum_Query); $tml->RegisterVar ("CONTENTTOP", $MySQL_Forum_Assoc['TitelImage']); $tml->RegisterVar ("FORUMTITLE", $MySQL_Forum_Assoc['Titel']); $tml->RegisterVar ("SUBFORUMTITLE", $MySQL_Fora_Assoc['Titel']); ## $MySQL_Topic_Select = "SELECT IdTopic, UserId, Titel, Type FROM ForumTopics WHERE SubCatId = '" . addslashes($_GET['sid']) . "' ORDER BY Date DESC"; $MySQL_Topic_Query = mysql_query($MySQL_Topic_Select) or die(mysql_error()); $MySQL_Topic_Numrow = mysql_num_rows($MySQL_Topic_Query); while($Topic = mysql_fetch_assoc($MySQL_Topic_Query)) { $MySQL_Message_Select = "SELECT TopicId, Datum FROM ForumMessages WHERE TopicId = '" . $Topic['IdTopic'] . "' ORDER BY Datum DESC LIMIT 1"; $MySQL_Message_Query = mysql_query($MySQL_Message_Select) or die(mysql_error() . " op regel: " . __LINE__ . "<br />De betreffende query:" . $MySQL_Message_Select); $MySQL_Message_Assoc = mysql_fetch_assoc($MySQL_Message_Query); $LastPostInTopic = $MySQL_Message_Assoc['Datum']; $MySQL_Reacties_Select = "SELECT COUNT(IdMessage) FROM ForumMessages WHERE TopicId = '" . $Topic['IdTopic'] . "'"; $MySQL_Reacties_Query = mysql_query($MySQL_Reacties_Select); $MySQL_Reacties_Result = mysql_result($MySQL_Reacties_Query, 0); $LoopData = array ( "TITLE" => $Topic['Titel'], "IDTOPIC" => $Topic['IdTopic'], "USERID" => $main->User_Name($Topic['UserId'], 1), "REACTIES" => $MySQL_Reacties_Result, "LASTPOST" => date("d-m-Y H:i:s", $LastPostInTopic), ); $i++; /* Registreren van een Loop */ $tml->RegisterLoop("TOPIC",$i,$LoopData); } /* Load Header file */ $tml->LoadFromFile ("pages/overall_header"); $tml->Parse(); /* Load Page Content */ $tml->LoadFromFile ("pages/forum_subcat"); $tml->Parse(); /* Load Footer file */ $tml->LoadFromFile ("pages/overall_footer"); $tml->Parse(); /* Output Pages */ $tml->Output(); } else { $error->Report ("Het (sub)forum dat je probeert op te vragen is niet gevonden."); } } ?> |
Dat laatste is dus wel de juiste manier, het gaat hier niet om "handig", want misschien gaat het opslaan zo wel sneller, maar het ophalen wel 10x zo traag!quote:Op zondag 11 december 2005 20:15 schreef Swetsenegger het volgende:
Korte vraag,
zoals jullie weten ben ik met een webshop bezig.
Het winkelwagentje is een array, waarbij de key het produkt ID is en de value het aantal.
Nu moet ik deze gegevens op gaan slaan in de db. Zal ik simpelweg de array opslaan in een kolom? Het lijkt me een beetje 'vreemde' oplossing eigenlijk, maar aan de andere kant lijkt het me niet handig wanneer ik elk produkt van de bestelling afzonderlijk in een kolom of rij op ga slaan en vervolgens nog iets van een koppeltable moet maken voor de aantallen.
Je hebt alleen een tabel nodig (inhoud van de winkelwagen) die de gebruiker koppelt aan de gekozen producten en het aantal dat daarbij hoort. Oftwel, een userid, productid en number (aantal producten).quote:Op zondag 11 december 2005 20:15 schreef Swetsenegger het volgende:
Korte vraag,
zoals jullie weten ben ik met een webshop bezig.
Het winkelwagentje is een array, waarbij de key het produkt ID is en de value het aantal.
Nu moet ik deze gegevens op gaan slaan in de db. Zal ik simpelweg de array opslaan in een kolom? Het lijkt me een beetje 'vreemde' oplossing eigenlijk, maar aan de andere kant lijkt het me niet handig wanneer ik elk produkt van de bestelling afzonderlijk in een kolom of rij op ga slaan en vervolgens nog iets van een koppeltable moet maken voor de aantallen.
Hoezo?quote:Op zondag 11 december 2005 20:33 schreef existenz het volgende:
[..]
Dat laatste is dus wel de juiste manier, het gaat hier niet om "handig", want misschien gaat het opslaan zo wel sneller, maar het ophalen wel 10x zo traag!
De tabel moet dan wel userid, product id, order id en number worden.quote:Op zondag 11 december 2005 20:34 schreef JeRa het volgende:
[..]
Je hebt alleen een tabel nodig (inhoud van de winkelwagen) die de gebruiker koppelt aan de gekozen producten en het aantal dat daarbij hoort. Oftwel, een userid, productid en number (aantal producten).
Mocht je het toch als array willen opslaan, dan kan dat het makkelijkst via serialize()
Ophogen van order_id?quote:Op zondag 11 december 2005 20:34 schreef Swetsenegger het volgende:
[..]
De tabel moet dan wel userid, product id, order id en number worden.
Anders weet ik nooit welke rij bij welke bestelling hoort en een klant kan meerdere bestellingen plaatsen.
Hmz, zit ik weer met het ophogen van order_id. Of ik moet me in 'unique' mbt mysql gaan verdiepen. *zucht*.
Je geeft als voorbeeld een tabel met de volgende kolommen:quote:Op zondag 11 december 2005 20:44 schreef JeRa het volgende:
[..]
Ophogen van order_id?
Als een klant een nieuwe bestelling doet maak je (neem ik aan) een nieuwe entry in de tabel met orders. De id van die tabel is dan toch gewoon AUTO_INCREMENT? Vervolgens plaats je in de tabel met de inhoud van een bestelling de id van die bestelling
1 2 3 4 5 | 1 1 1 1 2 2 1 1 4 1 3 2 2 3 1 4 1 3 1 1 |
Zie de edit.quote:Op zondag 11 december 2005 21:18 schreef JeRa het volgende:
Ik snap niet welk probleem je hebt
Je hebt een tabel users met daarin de klantennummers. FK = userid.
Je hebt een tabel orders met daarin de bestellingen. FK = orderid.
Je hebt een tabel products met daarin de producten. FK = productid
Je hebt een tabel winkelwagen (ofzo) met daarin de koppeling van bovenstaande drie tabellen én het aantal producten. Die ziet er dan toch als volgt uit?
id --> unieke verwijzing naar een bestelling in een winkelwagen (AUTO_INCREMENT PRIMARY KEY)
userid --> verwijzing naar klant (mag ook vaker voorkomen)
orderid --> verwijzing naar order. De 'id'-kolom van de tabel 'orders' is AUTO_INCREMENT
productid --> verwijzing naar het product
number --> aantal producten dat gewenst is
Wat is het probleem hiermee?
Ja dat gaat perfect werkenquote:Op zondag 11 december 2005 21:32 schreef JeRa het volgende:
Mja, dat gaat toch werken?sorry dat ik even niet duidelijk aangaf dat ik het over een nieuwe koppeltabel had
Er komt natuurlijk nog veel meer bij kijken; ik noem even het tijdstip van aanmaken of het IP-adres van de klant. Maar dat is aan jouquote:Op zondag 11 december 2005 21:43 schreef Swetsenegger het volgende:
[..]
Ja dat gaat perfect werken
Ik moet nog wel even goed nadenken, want orders moeten nogwel via mail bevestigt worden dus in de order tabel komt nog een activation kolom.
Dat kan met één DELETE door te joinenquote:Indien niet geactiveerd moet ik dus wel de order EN de inhoud wissen.
Ja, dat heb ik allemaal op een rijtje ivm tweedehandsboek, waarbij gebruikers ook hun aanmelding moeten bevestigen. Er moet dus ook een datum/tijd in de order tabelquote:Op zondag 11 december 2005 21:49 schreef JeRa het volgende:
[..]
Er komt natuurlijk nog veel meer bij kijken; ik noem even het tijdstip van aanmaken of het IP-adres van de klant. Maar dat is aan jou
Bedankt voor de tip, daar ga ik mee stoeien.quote:Dat kan met één DELETE door te joinenof meerdere DELETEs die je binnen een LOCK TABLES / UNLOCK TABLES zet.
Dat ligt aan je inlogsysteem. Stel, je hebt een sessie-variabele genaamd 'userid' waarvoor geldt dat als userid groter is dan 0 de user is ingelogd als klant nummer #userid. Dan kun je na het toevoegen van de NAW-gegevens in de usertabel de primary key ophalen (mysql_insertid) en die in je sessie-variabele zetten. Voila, user ingelogdquote:Op zondag 11 december 2005 21:56 schreef Swetsenegger het volgende:
Nu wil ik op deze NAW gegevens pagina nadat een en ander succesvol is ingevuld en naar db is geschreven de klant direkt automatisch inloggen. Maar vanuit PHP Kan ik volgens mij niet automatisch de juiste gegevens (inlognaam en wachtwoord welke bij aanmelden is opgegeven) POSTen naar inlog.php. Uiteraard kan het wel met GET, maar dat lijkt me niet zo veilig
Maar dat is een klein risico als er meerdere gebruikers min of meer teglijk aanmelden. mysql_insertid kan dan hoger zijn dan degene welke ik voor deze klant bedoel toch?quote:Op zondag 11 december 2005 22:00 schreef JeRa het volgende:
[..]
Dat ligt aan je inlogsysteem. Stel, je hebt een sessie-variabele genaamd 'userid' waarvoor geldt dat als userid groter is dan 0 de user is ingelogd als klant nummer #userid. Dan kun je na het toevoegen van de NAW-gegevens in de usertabel de primary key ophalen (mysql_insertid) en die in je sessie-variabele zetten. Voila, user ingelogd
Nope, mysql_insert_id() geeft de waarde terug van de laatste INSERT-operatie van de huidige thread. Zolang je users niet weten hoe ze op de webserver threads moeten overnemen is dat vrij veiligquote:Op zondag 11 december 2005 22:04 schreef Swetsenegger het volgende:
[..]
Maar dat is een klein risico als er meerdere gebruikers min of meer teglijk aanmelden. mysql_insertid kan dan hoger zijn dan degene welke ik voor deze klant bedoel toch?
Of ik moet met lock table gaan werken natuurlijk.
mysql_insert_id() it is dusquote:Note: The value of the MySQL SQL function LAST_INSERT_ID() always contains the most recently generated AUTO_INCREMENT value, and is not reset between queries.
Het verschil tussen beide ontging me even, maar ik lees dat last_insert_id niet gereset wordt tussen queries en dus niet thread gerelateerd is. Begrijp ik het zo goed?quote:Op zondag 11 december 2005 22:05 schreef JeRa het volgende:
[..]
Nope, mysql_insert_id() geeft de waarde terug van de laatste INSERT-operatie van de huidige thread. Zolang je users niet weten hoe ze op de webserver threads moeten overnemen is dat vrij veilig
Nu lees ik op die pagina ook dat je LAST_INSERT_ID kunt gebruikendat is eigenlijk wel heel handig, gegeven dat dat ook de laatste insert id van de huidige thread is.
edit: nee dus.
[..]
mysql_insert_id() it is dus
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |