abonnement Unibet Coolblue Bitvavo
pi_33250759
Ik denk dat die regexp geen chinese karakters accepteerd. Wel als je de /u modifier toevoegt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas dinsdag 20 december 2005 @ 20:16:28 #152
1972 Swetsenegger
Egocentrische Narcist
pi_33254878
tabel users bestaat uit user_id en verder NAW gegevens
tabel produkten bestaat uit product_id, articlecode, price
tabel orders bestaat uit order_id, user_id en een datum
tabel order_content bestaat uit content_id, order_id, product_id en aantallen

Op een bepaald punt heb ik de beschikking over het order_id
1
2
3
4
5
SELECT oc.number, p.articlecode, p.name, oc.giftwrap, p.first_price, p.second_price
                        FROM order_content AS oc
                        LEFT JOIN produkten AS p
                        USING (product_id)
                        WHERE oc.order_id=5

Dit geeft prachtig de bestelde produkten terug, met de juiste naam per besteld produkt en de hoeveelheid en de hele rotzooi.

Maar.... ik wil nu graag de naam erbij van degene welke de bestelling geplaatst heeft.

1
2
3
4
5
6
7
8
SELECT u.name, oc.number, p.articlecode, p.name, oc.giftwrap, p.first_price, p.second_price
                        FROM order_content AS oc
                        LEFT JOIN produkten AS p
                        USING (product_id)
                        , orders AS o
                        RIGHT JOIN users as u
                        USING (user_id)
                        WHERE oc.order_id=5

Dit geeft in ieder geval niet het verwachte resultaat terug .
Kan dit uberhaupt in 1 query?
pi_33256900
Het eerste wat me opvalt is de tabel orders. Waarom staat die in de tweede query, je doet er niets mee
[edit]
Je gebruikt het om de user_id bij de order te halen, alleen specificeer je helemaal geen relatie tussen order_content en orders.
(Ik vind die USING syntax niet erg overzichtelijk als er meer dan 2 tabellen worden gebruikt)

[ Bericht 41% gewijzigd door SuperRembo op 20-12-2005 21:19:06 ]
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas dinsdag 20 december 2005 @ 21:23:20 #154
1972 Swetsenegger
Egocentrische Narcist
pi_33257325
quote:
Op dinsdag 20 december 2005 21:11 schreef SuperRembo het volgende:
Het eerste wat me opvalt is de tabel orders. Waarom staat die in de tweede query, je doet er niets mee
[edit]
Je gebruikt het om de user_id bij de order te halen, alleen specificeer je helemaal geen relatie tussen order_content en orders.
(Ik vind die USING syntax niet erg overzichtelijk als er meer dan 2 tabellen worden gebruikt)
orders dus om order_id te kunnen koppelen aan user_id.
Ik weet dat ik die relatie niet specificeer, ik heb geen flauw idee hoe ik doet moet aanpakken. -edit- Ik dacht dat dit de relatie was WHERE oc.order_id=5
Ik was al helemaal trots op mezelf dat die eerste query werkte
pi_33257345
Je hebt een order, daar hoort de order_content bij. Bij de order_content horen produkten. Bij de order hoort ook een user. In SQL:

1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT
   u.name, 
   oc.number, 
   p.articlecode, 
   p.name, 
   oc.giftwrap, 
   p.first_price, 
   p.second_price
FROM order o
INNER JOIN order_content oc ON oc_order_id = o.order_id
INNER JOIN produkten p ON p.product_id = oc.product_id
INNER JOIN users u ON u.user_id = o.user_id
WHERE o.order_id = 5


Je zou er ook LEFT JOINs van kunnen maken, maar een order zonder user of produkten lijkt me niet zo logisch.

(Tabel produkten, kolom product_id )
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas dinsdag 20 december 2005 @ 21:25:07 #156
1972 Swetsenegger
Egocentrische Narcist
pi_33257403
quote:
Op dinsdag 20 december 2005 21:23 schreef SuperRembo het volgende:

[ code verwijderd ]

Je zou er ook LEFT JOINs van kunnen maken, maar een order zonder user of produkten lijkt me niet zo logisch.

(Tabel produkten, kolom product_id )
Mjah, ik heb de tabel verzuimt products te noemen. Dat lijkt me nou toch niet echt een groot probleem

-edit-
1
2
3
Error: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'order o
INNER JOIN order_content oc ON oc_order_id = o.order_id
INNER JOIN pro' at line 9

Ik heb het ook geprobeerd met USING ipv ON, maar geeft dezefde foutmelding.
En geprobeerd met oc.order_id ipv oc_order_id .

leermomentje... LEFT JOIN koppelt altijd de tabellen, INNER JOIN alleen als er een relatie bestaat toch?

[ Bericht 19% gewijzigd door Swetsenegger op 20-12-2005 21:36:12 ]
pi_33258145
Dat moest natuurlijk oc.order_id zijn. En order moet orders zijn.

Een inner join geeft alleen resultaten waarvoor de relatie bestaat.
Een left outer join geeft alle regels uit de 1e tabel en alleen de regels uit de 2e tabel waarvoor de relatie bestaat.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  dinsdag 20 december 2005 @ 21:50:08 #158
65516 gieling
Live from NYC
pi_33258451
Niet om te spammen ofzo maar misschien heeft hier iemand interesse
  FOK!-Schrikkelbaas dinsdag 20 december 2005 @ 21:54:06 #159
1972 Swetsenegger
Egocentrische Narcist
pi_33258604
quote:
Op dinsdag 20 december 2005 21:42 schreef SuperRembo het volgende:
Dat moest natuurlijk oc.order_id zijn. En order moet orders zijn.


Hij doet het
  donderdag 22 december 2005 @ 16:20:57 #160
65471 SkaterSam
Lurking Galore
pi_33312442
kan dit: $_SESSION['var1']['var2'] , dus een een variabele binnen de array var1 ?
Let's make life easy
Typo's are the demon spawn from hell !
pi_33313918
quote:
Op donderdag 22 december 2005 16:20 schreef SkaterSam het volgende:
kan dit: $_SESSION['var1']['var2'] , dus een een variabele binnen de array var1 ?
Ja, dat kan.
pi_33321767
Ik zoek in mijn tabel in mysql via deze 2 bestanden:

1
2
3
4
5
FORM METHOD="POST" ACTION="filmpjes_wijzig_result.php">

    Zoeken naar filmpje:<br>
    <input type="text" name="zoekterm" size="30"><br>
    <input type="submit" name="submit" value="Zoeken">


1
2
3
<?php
    $sql
= "SELECT * FROM filmpjes WHERE titel LIKE '%$HTTP_POST_VARS[zoekterm]%' ORDER BY titel ASC";
?>


Hoe kan ik nu instellen dat de zoekterm minimaal 3 tekens lang moet zijn?
  donderdag 22 december 2005 @ 21:34:20 #163
46383 Tiemie
sowieso wel!
pi_33322560
http://nl3.php.net/strlen

(strlen -- Get string length)

1
2
3
4
5
6
7
<?php
if(strlen($_POST['zoekterm']) &lt; 3){
   
// foutmelding
} else {
   
// select query :-)
}
?>
  donderdag 22 december 2005 @ 23:27:08 #164
65471 SkaterSam
Lurking Galore
pi_33328451
Ik heb nu dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function checkError($string) {
    if (
array_key_exists($string, $this-&gt;error)) {
        return
"<span class=\"error\">" . $this-&gt;error[$string] . "</span>";
    } else {
        return
"huh";
    }
}
    
function
setError($field, $message) {
    
$this-&gt;error[$field] = $message;
    
$this-&gt;num_error = count($this-&gt;error);
}
?>

Deze roep ik aan met
1
2
3
<?php
$form
-&gt;setError("username", "username is niet correct");
?>

Maar nu als ik de checkError("username") functie uitvoer krijg ik alleen maar "huh" ook al is de invoer niet correct ingevoerd.
Let's make life easy
Typo's are the demon spawn from hell !
pi_33328572
Je zou natuurlijk een print_r($this->error) kunnen doen in je checkError()-methode?
  donderdag 22 december 2005 @ 23:34:36 #166
65471 SkaterSam
Lurking Galore
pi_33328808
Hmmm, lege arrays...waarom krijg ik nou lege arrays?

[ Bericht 44% gewijzigd door SkaterSam op 22-12-2005 23:50:00 ]
Let's make life easy
Typo's are the demon spawn from hell !
  donderdag 22 december 2005 @ 23:58:13 #167
32768 DionysuZ
Respect my authority!
pi_33329871
gebruik je het wel in een class?

edit: nevermind ik zie hoe je em aanroept
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
  vrijdag 23 december 2005 @ 00:00:18 #168
65471 SkaterSam
Lurking Galore
pi_33329958
quote:
Op donderdag 22 december 2005 23:58 schreef DionysuZ het volgende:
gebruik je het wel in een class?

edit: nevermind ik zie hoe je em aanroept
Is er iets verkeerds aan hoe ik hem aanroep?
Let's make life easy
Typo's are the demon spawn from hell !
  vrijdag 23 december 2005 @ 00:01:11 #169
32768 DionysuZ
Respect my authority!
pi_33329994
quote:
Op vrijdag 23 december 2005 00:00 schreef SkaterSam het volgende:

[..]

Is er iets verkeerds aan hoe ik hem aanroep?
Nee het beantwoordt mijn vraag
□ Reality is merely an illusion,albeit a very persistent one-A.Einstein
■ Of ik ben gek of de rest van de wereld.Ik denk zelf de rest van de wereld-Rudeonline
□ The war is not meant to be won.It is meant to be continuous-G.Orwell
  vrijdag 23 december 2005 @ 00:07:49 #170
65471 SkaterSam
Lurking Galore
pi_33330233
quote:
Op vrijdag 23 december 2005 00:01 schreef DionysuZ het volgende:
Nee het beantwoordt mijn vraag
Niet de mijne

--edit: Ik geloof dat het iets te maken heeft met 'variable scope'

--edit: of toch niet...

[ Bericht 7% gewijzigd door SkaterSam op 23-12-2005 00:32:38 ]
Let's make life easy
Typo's are the demon spawn from hell !
  vrijdag 23 december 2005 @ 02:39:29 #171
65471 SkaterSam
Lurking Galore
pi_33334361
Hmm, ik heb de simpelste oplossing gekozen om fouten te voorkomen, en gewoon een login class gemaakt met alle benodigdheden daarin.
Let's make life easy
Typo's are the demon spawn from hell !
pi_33335527
quote:
Op vrijdag 23 december 2005 02:39 schreef SkaterSam het volgende:
Hmm, ik heb de simpelste oplossing gekozen om fouten te voorkomen, en gewoon een login class gemaakt met alle benodigdheden daarin.
Als die twee functions die je liet zien in een class staan vermoed ik dat je $fout out of scope laat gaan, maar dat is nogal lastig te zeggen zo zonder verdere code
  vrijdag 23 december 2005 @ 15:14:57 #173
65471 SkaterSam
Lurking Galore
pi_33344978
Ja ik weet dus echt niet waarom die het niet doet, mijn setup is nu als volgt:
1) index.php (loginscherm)
2) login.php (login verwerking)
3) login_class.php (de login class)

Op index.php vul ik een naam en een wachtwoord in, deze gaat dan naar login.php, waar de login_class wordt aangeroepen. Dan is er een if/else statement, die ziet er zo uit:

1
2
3
4
5
6
7
8
9
<?php
if ($login-&gt;logged_in == true) {
    
header("Location:../admin/main.php");
} else {
    
$_SESSION['error_username'] = $login-&gt;checkError('username');
    
$_SESSION['error_wachtwoord'] = $login-&gt;checkError('wachtwoord');
    
header("Location:../admin/index.php");
}
?>

Het probleem ligt dan ook niet of die wel of niet login true teruggeeft, maar het feit dat die errors niet worden geset in de session. Deze session variabelen probeer ik namelijk in de index.php te echo'en, maar daar geeft die niks, terwijl als ik de else statement op login.php verander in:

1
2
3
4
5
6
<?php
} else {
$login-&gt;checkError('username');
$login-&gt;checkError('wachtwoord');
}
?>

Dan echo'ed die gewoon de variabelen correct terug. Ow en de error functie zien er nog steeds hetzelfde uit. Zoals dit dus:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
function checkError($string) {    
    if (
array_key_exists($string, $this-&gt;error)) {
        echo
"<span class=\"error\">" . $this-&gt;error[$string] . "</span>";
    } else {    
        return
false;
    }                    
}
    
function
setError($field, $message) {        
    
$this-&gt;error[$field] = $message;
    
$this-&gt;num_error = count($this-&gt;error);
}
?>

Ik vind het behoorlijk vreemd dat de errors, wanneer ik ze direct op het login.php script aanroep wel echo'en, maar als ik ze opsla in een sessie op het login script en daarna probeer te echo'en op de index.php dat ze verdwenen zijn.
Let's make life easy
Typo's are the demon spawn from hell !
pi_33345221
Ik vind dat niet zo vreemd - je doet immers een 'echo' en geen 'return'
  vrijdag 23 december 2005 @ 15:32:51 #175
65471 SkaterSam
Lurking Galore
pi_33345586
quote:
Op vrijdag 23 december 2005 15:22 schreef JeRa het volgende:
Ik vind dat niet zo vreemd - je doet immers een 'echo' en geen 'return'
Ook met 'return' in plaats van echo in de checkError functie pakt die hem niet.
Let's make life easy
Typo's are the demon spawn from hell !
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')