3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder wordenquote:Op donderdag 23 augustus 2007 08:07 schreef Xcalibur het volgende:
Even een theoretisch vraagje voor de afwisseling
Ik ben bezig met het ontwikkelen van een inschrijfsysteem, waarbij ik van iedere inschrijving moet weten hoe ver deze is. De deelnemer moet in een aantal stappen informatie invoeren, de inschrijving wordt al dan niet goedgekeurd, en daarna ontvangt de deelnemer een aantal keer informatie van de organisatie.
Waar ik mee zit is de manier waarop ik dit bij ga houden. Volgens mij heb ik twee opties:
- Veld 'voortgang', numeriek, waarbij ik iedere stap een nummer geef, en deze steeds met 1 ophoog.
- Aparte velden voor iedere stap, enum, waarbij ik iedere stap true of false geef.
Voordeel van 1 veld is dat je direct kunt zien waar je bent, nadeel is dat je later geen stap kunt toevoegen, of de volgorde veranderen zonder een hoop gedoe en aanpassingen.
Voordeel van aparte velden is dat je extra stappen kunt toevoegen zonder problemen, maar dat je een x-aantal velden moet gaan checken om te weten bij welke stap de deelnemer is.
Suggesties?
Daarmee voorkom je SQL injections tot op zekere hoogtequote:Op maandag 20 augustus 2007 13:36 schreef markiemark het volgende:
[..]
is dat alles? is het daarmee veilig?
Beste keuzequote:Op donderdag 23 augustus 2007 08:11 schreef WyriHaximus het volgende:
[..]
3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder worden.
Het voordeel is ook dat je exact kunt zien wie er op welk tijdstip een bepaalde stap deed. Klinkt control-freakish, maar zelf plak ik aan elke nuttige tabel een DateAdded en DateUpdated veld.quote:Op donderdag 23 augustus 2007 08:11 schreef WyriHaximus het volgende:
[..]
3e optie je maakt een tabel met stappen, een tabel met users en een tabel waarom je een user_id en een step_id invoegt voor iedere stap die een user heeft gedaan. Voordeel hier van is dat je heel makkelijk nieuwe stappen kan toevoegen. Nadeel is dat je queries wat ingewikkelder worden.
De derde optie is helemaal niet zo'n slecht idee iddquote:Op donderdag 23 augustus 2007 09:23 schreef Geqxon het volgende:
Het voordeel is ook dat je exact kunt zien wie er op welk tijdstip een bepaalde stap deed. Klinkt control-freakish, maar zelf plak ik aan elke nuttige tabel een DateAdded en DateUpdated veld.
1 2 3 4 5 6 | if ($zoek_klantnummer != "") { $query = "SELECT * FROM reservering WHERE Klantnummer = '$zoek_klantnummer'"; $result = mysql_query($query) or die ("Kan opdracht niet uitvoeren"); ?> |
Dan doe je iets fout met het fetchen van je queryquote:Op vrijdag 24 augustus 2007 14:59 schreef Xtr3mE het volgende:
een snel vraagje:
waarom kan ik met deze SQL query niet meer dan 1 resultaat uitlezen uit de tabel:
[ code verwijderd ]
Er zijn nu 2 records in de tabel (in de toekomst komen hier wel meer bij) die hetzelfde klantnummer hebben.
Als uitvoer krijg ik altijd maar 1 te zien en terwijl ik die in de SQL van bijv. phpMyAdmin doe dan krijg ik ze wel alle 2...
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 | echo "<table width="80%" cellpadding="0" cellspacing="2">"; echo "<tr><td colspan='200'></td></tr>"; echo "<tr> <td><strong>Reserveringsnummer</strong></td> <td><strong>Klantnummer</strong></td> <td><strong>Klantnaam</strong></td> <td><strong>Huurdatum</strong></td> <td><strong>tot</strong></td> <tr><td colspan='40'><hr></td></tr>"; while (@$row = mysql_fetch_array($result)) { extract($row); ... echo "<tr> <td><a href='wijzigen.php?reserveringsnummer=" . urlencode($Reserveringsnummer) ."'>$Reserveringsnummer</a></td> <td>$Klantnummer</td> <td>$Klantnaam</td> <td>$Datum_begin</td> <td>$Datum_eind</td> <td>$Postcode</td> <td>$Plaats</td> </tr>n"; } echo "</table>n"; $gevonden = ""; if ($Klantnummer == "") { $gevonden = "Geen reserveringen gevonden die aan de zoekcriteria voldoen"; } } ?> |
Probeer dit eensquote:Op vrijdag 24 augustus 2007 15:03 schreef Xtr3mE het volgende:
oke hier dan de rest van de code:
[ code verwijderd ]
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 | echo "<table width="80%" cellpadding="0" cellspacing="2">"; echo "<tr><td colspan='200'></td></tr>"; echo "<tr> <td><strong>Reserveringsnummer</strong></td> <td><strong>Klantnummer</strong></td> <td><strong>Klantnaam</strong></td> <td><strong>Huurdatum</strong></td> <td><strong>tot</strong></td> <tr><td colspan='40'><hr></td></tr>"; while ($row = mysql_fetch_assoc($result)) { extract($row); ... echo "<tr> <td><a href='wijzigen.php?reserveringsnummer=" . urlencode($row['Reserveringsnummer']) ."'>$row['Reserveringsnummer']</a></td> <td>$row['Klantnummer']</td> <td>$row['Klantnaam']</td> <td>$row['Datum_begin']</td> <td>$row['Datum_eind']</td> <td>$row['Postcode']</td> <td>$row['Plaats']</td> </tr>n"; } echo "</table>n"; $gevonden = ""; if ($Klantnummer == "") { $gevonden = "Geen reserveringen gevonden die aan de zoekcriteria voldoen"; } } ?> |
1 2 3 4 5 6 7 | //klantnaam uit andere tabel halen $query = "SELECT Klantnaam FROM klant WHERE Klantnummer = '$Klantnummer'"; $result = mysql_query($query) or die ("Kan opdracht niet uitvoeren"); $Klantnaam = mysql_result($result, 0, "Klantnaam"); ?> |
Dat werkt, dank je wel.quote:Op vrijdag 24 augustus 2007 21:01 schreef Farenji het volgende:
select * from artikelen a inner join tags t on a.ID = t.artikelID where a.ID = ? and t.tag = ?
oid
joins;quote:Op vrijdag 24 augustus 2007 22:48 schreef -Orion- het volgende:
Ik ben bezig met een forum, en heb een tabel 'topics' met de volgende velden:
"topic_id, topic_titel, forum_id, user_id, topic_views, topic_status, topic_type, last_post"
last_post geeft het id weer van de laatste post, waarvan hij dan weer het userid en tijd ophaalt. Maar ik heb dan 2x een user_id, van de topicstarter, en van de last_post.
Hoe kan ik het oplossen dat ik beide kan krijgen met 1 query!?![]()
MySQL heeft ook een en enorm handige ON DUPLICATE functionaliteit, misschien biedt dat wat je nodig hebtquote:Op zondag 26 augustus 2007 16:42 schreef qu63 het volgende:
ah hier!
Hoi!
meteen een vraagje,
je kan met MySQL ook met IF/ELSE/WHEN enzo werken, dus ik ga dat leuk proberen, alleen nu werkt het dus niet...
Ik heb 3 rijen, 1) ID 2) mms_ID 3) IP
nu is het de bedoeling dat ik controleer of het IP-adres al in de database staat, en zo niet, deze toevoegd.
Ik kan dat wel doen dmv php en mysql (dus uit de database halen, controleren, en dan er weer in), maar dit leek me sneller. Iemand tips over hoe ik het moet doen
1 2 3 | header("HTTP/1.0 404 Not Found"); ?> |
je bedoelt dus:quote:Op zondag 26 augustus 2007 16:49 schreef Xcalibur het volgende:
kan je dat niet gewoon met een REPLACE doen, ipv INSERT?
Komt het wel op neer jaquote:
Moet je alleen je IP-adres uniek maken, maar dat is net het punt volgens mijquote:REPLACE works exactly like INSERT, except that if an old row in the table has the same value as a new row for a PRIMARY KEY or a UNIQUE index, the old row is deleted before the new row is inserted.
1 2 3 4 5 6 | header ("content-type: image/jpeg"); $signature = imagecreatefromjpeg ( "np_1.jpg" ); imagejpeg ( $signature, "", 100 ); imagedestroy ( $signature ); ?> |
1 2 | RewriteRule index/([^/]*)/(.*)$ /index.php?page=$1&wat=$2 |
quote:Op maandag 27 augustus 2007 12:37 schreef Swetsenegger het volgende:
Hoe kan ik mssql fouten onderdrukken in php?
1 |
Idd je moet wel goed opletten als je het gebruikt aangezien o.a. IE (met JS vooral) debiel is en veel bots ook (die snappen de tag helamaal niet) (let wel op dat de bots waar hem om gaat (google, yahoo, MS etc) geen problemen hebben, het gaat vooral om hack/spam etc bots).quote:Op zondag 26 augustus 2007 23:30 schreef wobbel het volgende:
je kan een base tag gebruiken
<base href="http://forum.fok.nl/" />
bijv.... alleen dat werkt niet altijd lekker (ik gebruik zelf ook index.php/nieuws/35) dus ik heb overal en altijd het volledig pad staan (dmv een #variable aangezien ik een template parser gebruik)
Ja dat word lastig. Kan je geen test database regelen dan?quote:Op maandag 27 augustus 2007 12:51 schreef Swetsenegger het volgende:
[..]
ik weet niet of dat werktKan helaas lastig testen in een live MSSQL database.
Niet op korte termijn.quote:Op maandag 27 augustus 2007 12:53 schreef WyriHaximus het volgende:
[..]
Ja dat word lastig. Kan je geen test database regelen dan?
probeer dit eens....quote:Op zondag 26 augustus 2007 20:06 schreef ralfie het volgende:
ben een beetje aan het experimenteren met htaccess en mod_rewrite, maar kom even ergens niet uit
ik heb de volgende url
http://localhost/index.php?page=news&wat=anders
dit wil ik omzetten naar
http://localhost/index/news/anders
lukt me op zich wel met:
[ code verwijderd ]
Maar wanneer ik dat doe werken alle relatieve links op die pagina (plaatjes, css, etc) niet meer. (gaat om links als 'css/base.css' en 'img/test.jpg' op die pagina) Kan dit in htaccess gefixed worden zonder al die relatieve links te moeten aanpassen? Zie ik iets doms over het hoofd?
1 2 | RewriteBase / |
Een @-teken voor een functie onderdrukt alle foutmeldingen tot en met het niveau van een warning; daarboven (zoals fatal errors) komen er gewoon door. Het is verder niet zo dat het @-teken de functionaliteit van je script aanpast, dus je kunt het gewoon proberen (alhoewel het dus in een liveomgeving niet echt wenselijk is).quote:Op maandag 27 augustus 2007 12:51 schreef Swetsenegger het volgende:
[..]
ik weet niet of dat werktKan helaas lastig testen in een live MSSQL database.
Ik heb met 100 als kwaliteit ook wel eens rare problemen gehad. Vervangen door 99 deed de trick.quote:Op zondag 26 augustus 2007 17:50 schreef wobbel het volgende:
Waarom levert het voglende script een plaatje op met kut brakke kwaliteit?
[ code verwijderd ]
Ik ga het gewoon proberen. Het is toch een database die alleen ikzelf gebruikquote:Op maandag 27 augustus 2007 13:31 schreef JeRa het volgende:
[..]
Een @-teken voor een functie onderdrukt alle foutmeldingen tot en met het niveau van een warning; daarboven (zoals fatal errors) komen er gewoon door. Het is verder niet zo dat het @-teken de functionaliteit van je script aanpast, dus je kunt het gewoon proberen (alhoewel het dus in een liveomgeving niet echt wenselijk is).
Je kunt het beter anders benaderen; je kunt de result set van je eerste query cachen (opslaan in een array bijvoorbeeld) en die bij het verwerken van de result set van je tweede query benaderenquote:Op dinsdag 28 augustus 2007 11:54 schreef Swetsenegger het volgende:
[..]
Andere vraag. Kan ik in een whilelus van mijn query results eenvoudig kijken wat de resultaten zijn in de volgende loop?
Nee, het gat niet om een 2e query.quote:Op dinsdag 28 augustus 2007 17:11 schreef JeRa het volgende:
[..]
Je kunt het beter anders benaderen; je kunt de result set van je eerste query cachen (opslaan in een array bijvoorbeeld) en die bij het verwerken van de result set van je tweede query benaderen
Misschien denk ik iets te simpel, maar toch een poging:quote:Op dinsdag 28 augustus 2007 18:09 schreef Swetsenegger het volgende:
[..]
Nee, het gat niet om een 2e query.
De resultaten van een query worden in een while lus uitgelezen, record voor record.
En als die whilelus nu bij record 11 is, wil eigenlijk weten wat er in record 12 staat.
Dit ivm presentatie.
Mjah, zou kunnen werken inderdaad, maar ik vind 'm niet chiquequote:Op dinsdag 28 augustus 2007 18:24 schreef Geqxon het volgende:
[..]
Misschien denk ik iets te simpel, maar toch een poging:
-Alles in een numeric array
-Met een "for ( $i = 0, $i < sizeof($array), $i ++) " alles uitlezen
-$array[$i + 1] voor de volgende rij.
?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |