abonnement Unibet Coolblue Bitvavo
pi_118954398


Als je vragen hebt over PHP/MySQL, dan zit je hier goed met een vaste kliek guru's en een groot aantal regelmatige bezoekers. Beperk je vragen niet tot "hij doet het niet" of "hij geeft een fout" - onze glazen bol is kapot en we willen graag van je weten wát er niet lukt en wélke foutmelding je precies krijgt :)

Zie ook:
PHP Dataverwerking
Officiële PHP website
PHP Documentatie
MySQL Reference Manual
Yet Another PHP Faq
PHP Cheat Sheet
PHP5 Power Programming - boek met uitleg over OOP, Pear, XML, etc

Tutorials:
W3Schools PHP
W3Schools SQL

Succes heren met het volgende deeltje!
pi_118954449
Mijn laatste post als reactie op KomtTijd:
quote:
0s.gif Op woensdag 7 november 2012 21:18 schreef Xanland het volgende:
Het zijn inderdaad, uiteraard, vaste routes. Waar ik denk dat ik nu eigenlijk naar op zoek te zijn is te weten wat het coördinaat, bijvoorbeeld, 50 meter verderop de polyline is.
Dit aangezien ik de reistijd tussen 2 haltes weet en ook hoeveel meter ik de marker moet verplaatsen. Alleen kan ik zoiets niet in PHP vinden om dus het volgende coördinaat op de polyline in PHP te berekenen.
pi_118959150
Daar heb je de stelling van pythagoras bij nodig en cosinus/sinus functies. Heeft verder weinig met php specifiek van doen maar is gewoon meetkunde.

Je hebt een lijn tussen twee coordinaten, je kan dus de afstand tussen die twee coords berekenen, en ook de hoek van die lijn tov de noord/zuid (of oost/west as). Je wil weten wat het coordinaat is als je n meter op de lijn verder gaat, dus je moet de verschuiving in X en Y richting weten. Je hebt dan dus een rechthoekige driehoek waarvan je de hoek weet en de lengte van de schuine zijde. Aan de hand daarvan kun je mbv sinus en cosinus de lengte van de andere twee zijdes berekenen. En voila, je hebt je nieuwe coordinaat.
pi_118963567
Ik zit weer met het volgende lastige probleem. Via een tutorial op youtube had ik met raw php in notepad++ een universal member page gemaakt. Als ik dan localhost/project/gebruikersnaam deed, dan kreeg ik een pagina te zien die speciaal voor de gebruiker was, een members page dus.

Nu gebruik ik codeigniter, maar dan wordt alles een stuk lastiger. Codeigniter gebruikt standaard geen $_GET en ik wil liever ook niks aanpassen om dat wel werkend te krijgen. Het lijkt me namelijk stug dat CodeIgniter hier geen andere oplossing voor biedt. Ik heb al nagedacht over alternatieven, maar ik kan niet anders bedenken dan een unieke URL voor elke gebruiker, want uiteindelijk wil je een gebruikerspagina ook direct via een URL kunnen benaderen.

Kan iemand mij een zetje in de goede richting geven, ik heb namelijk geen flauw idee hoe ik dit ga googlen. :P
pi_118963868
quote:
0s.gif Op woensdag 7 november 2012 23:49 schreef pascal08 het volgende:
Ik zit weer met het volgende lastige probleem. Via een tutorial op youtube had ik met raw php in notepad++ een universal member page gemaakt. Als ik dan localhost/project/gebruikersnaam deed, dan kreeg ik een pagina te zien die speciaal voor de gebruiker was, een members page dus.

Nu gebruik ik codeigniter, maar dan wordt alles een stuk lastiger. Codeigniter gebruikt standaard geen $_GET en ik wil liever ook niks aanpassen om dat wel werkend te krijgen. Het lijkt me namelijk stug dat CodeIgniter hier geen andere oplossing voor biedt. Ik heb al nagedacht over alternatieven, maar ik kan niet anders bedenken dan een unieke URL voor elke gebruiker, want uiteindelijk wil je een gebruikerspagina ook direct via een URL kunnen benaderen.

Kan iemand mij een zetje in de goede richting geven, ik heb namelijk geen flauw idee hoe ik dit ga googlen. :P
Je gaat in ieder geval een controller moeten maken.
pi_118964067
quote:
0s.gif Op woensdag 7 november 2012 23:56 schreef Light het volgende:

[..]

Je gaat in ieder geval een controller moeten maken.
Dat ik daar niet zelf op gekomen ben. _O-

Nee, grapje, ik denk dat ik zoiets moet doen:

localhost/project/gebruikerspagina/gebruikersnaam, en dan iets met $this->uri... in de controller.
  donderdag 8 november 2012 @ 00:04:11 #7
178193 Juicyhil
Bekende FOK!ker
pi_118964192
Heb je wel al een RewriteRule daarvoor aangemaakt binnen je htaccess?

Anders is het iets van index.php/project/gebruikersnaam
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_118964310
quote:
0s.gif Op donderdag 8 november 2012 00:04 schreef Juicyhil het volgende:
Heb je wel al een RewriteRule daarvoor aangemaakt binnen je htaccess?

Anders is het iets van index.php/project/gebruikersnaam
Ja, heb ik. :)

Ik heb het nu zo: localhost/project/home/userpage/username, dus dan is home m'n controller, userpage m'n view en username m'n model. Ik heb de view userpage.php al aangemaakt, dus ik krijg die pagina wel te zien. Nu even uitvogelen wat ik moet doen met username.
  donderdag 8 november 2012 @ 00:10:43 #9
178193 Juicyhil
Bekende FOK!ker
pi_118964401
Zie hier: http://codeigniter.com/user_guide/general/urls.html
Je kunt ook argumenten meegeven in je url. Als print_r(func_get_args()) neerzet in de userpage action van je homecontroller, zou je hem moeten kunnen zien.
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_118964556
quote:
0s.gif Op donderdag 8 november 2012 00:10 schreef Juicyhil het volgende:
Zie hier: http://codeigniter.com/user_guide/general/urls.html
Je kunt ook argumenten meegeven in je url. Als print_r(func_get_args()) neerzet in de userpage action van je homecontroller, zou je hem moeten kunnen zien.
Kan het ook zo?:

Eerst naar localhost/project/ gaan, daar de link aanklikken die naar localhost/project/home/userpage/username verwijst. Dan in de view "userpage":
1
2
3
<?php
$this
->uri->segment(3);
?>

Ik krijg dan namelijk wel de gebruikersnaam die ik nodig heb om de pagina uniek te maken.
  donderdag 8 november 2012 @ 00:17:29 #11
178193 Juicyhil
Bekende FOK!ker
pi_118964598
quote:
0s.gif Op donderdag 8 november 2012 00:15 schreef pascal08 het volgende:

[..]

Kan het ook zo?:

Eerst naar localhost/project/ gaan, daar de link aanklikken die naar localhost/project/home/userpage/username verwijst. Dan in de view "userpage":
[ code verwijderd ]

Ik krijg dan namelijk wel de gebruikersnaam die ik nodig heb om de pagina uniek te maken.
Als je hem zo krijgt, zou het ook kunnen. Maar lijkt me als parameter in je functie wat netter. Je kunt hem immers ook gewoon een default value meegeven.
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_118964676
quote:
0s.gif Op donderdag 8 november 2012 00:17 schreef Juicyhil het volgende:

[..]

Als je hem zo krijgt, zou het ook kunnen. Maar lijkt me als parameter in je functie wat netter. Je kunt hem immers ook gewoon een default value meegeven.
Ik moet die uri->segments in m'n controller plaatsen, dat bedoel je toch?

Het werkt. *O* :o Nu is $username gewoon al direct een variabele in m'n view, fantastisch! ;) ^O^
  donderdag 8 november 2012 @ 00:23:31 #13
178193 Juicyhil
Bekende FOK!ker
pi_118964765
quote:
0s.gif Op donderdag 8 november 2012 00:20 schreef pascal08 het volgende:

[..]

Ik moet die uri->segments in m'n controller plaatsen, dat bedoel je toch?

Het werkt. *O* :o Nu is $username gewoon al direct een variabele in m'n view, fantastisch! ;) ^O^
In je action ja :Y
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_119042240
Is het eigenlijk verstandig om meerdere controllers aan te maken in CodeIgniter? Moet ik die dan elkaar laten extenden of allemaal de CI_controller? Ik snap niet wat het nut hiervan is, buiten dat m'n code er overzichtelijker van wordt. Ik zie namelijk bij heel veel tutorials meerdere controllers.
  zaterdag 10 november 2012 @ 00:05:10 #15
178193 Juicyhil
Bekende FOK!ker
pi_119042407
quote:
0s.gif Op zaterdag 10 november 2012 00:00 schreef pascal08 het volgende:
Is het eigenlijk verstandig om meerdere controllers aan te maken in CodeIgniter? Moet ik die dan elkaar laten extenden of allemaal de CI_controller? Ik snap niet wat het nut hiervan is, buiten dat m'n code er overzichtelijker van wordt. Ik zie namelijk bij heel veel tutorials meerdere controllers.
Ik zou dit eens lezen als ik jou was: http://nl.wikipedia.org/wiki/Model-view-controller-model

Een controller is onderdeel van MVC, een design pattern waarmee je je code kan inrichten. Een controller is bedoeld om je data uit modellen en andere bewerkingen te doen en hiervan het resultaat naar je view te sturen om dit vervolgens naar de browser te sturen.

Dus ja, over het algemeen gebruik je meerdere controllers. Die laat je inderdaad allemaal erven van CI_Controller :Y
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
  zaterdag 10 november 2012 @ 00:07:42 #16
178193 Juicyhil
Bekende FOK!ker
pi_119042505
Ligt er natuurlijk wel helemaal aan wat je precies gaat maken. Als je straks voor iedere dingetje een controller hebt, wordt ook weer zo onoverzichtelijk :P
Op dinsdag 9 augustus 2011 23:01 schreef SuperrrTuxxx het volgende:
Ik hou zoveel van jou, ik doe alles voor je! O+
pi_119042959
quote:
0s.gif Op zaterdag 10 november 2012 00:07 schreef Juicyhil het volgende:
Ligt er natuurlijk wel helemaal aan wat je precies gaat maken. Als je straks voor iedere dingetje een controller hebt, wordt ook weer zo onoverzichtelijk :P
Ik heb echt al enorm veel gelezen, want ik wil in een paar weken met 0 kennis een mooie website bouwen. Schoonheidsfoutjes of een amateuristische code kan mij op zich niet zoveel schelen zolang alles maar veilig is.

In het begin had ik alleen de controller: "main", maar die begint nu wel uit te puilen. Ik denk dat ik een paar hoofdcontrollers maak, die een categorie aan functies bevatten om het zo overzichtelijk mogelijk te maken. Ook m'n CSS zal ik straks helemaal opnieuw moeten schrijven, want dat ding is echt een chaos geworden. :P
pi_119073962
Ik breek echt m'n nek over het volgende:

Ik krijg elke keer deze *@!#$*!#@$ foutmelding, terwijl de controller MAIN gewoon bestaat en er gewoon netjes naar een .php bestand wordt verwezen in de index() functie. Ik had het werkend, maar nu lijkt alles naar de klote. Ik heb al m'n config files gecheckt, maar ik kwam niets tegen dat dit probleem veroorzaakt. :(



Zo doet 'ie het trouwens wel, maar linken naar andere pagina's geeft de foutmelding van hierboven. :(

pi_119074198
Zit dit probleem in in de apache server? Anders moet je stap voor stap gaan debuggen om te kijken of er toch ergens iets verkeerd wordt geladen.
  zondag 11 november 2012 @ 00:31:08 #20
75592 GlowMouse
l'état, c'est moi
pi_119074214
loggen en debuggen hoort erbij
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_119074298
quote:
14s.gif Op zondag 11 november 2012 00:31 schreef GlowMouse het volgende:
loggen en debuggen hoort erbij
Soms kan het tijdstip debuggen wel tegen werken, als je gewoon dom door kunt programmeren dan maakt het tijdstip opzich niet uit, maar als er ook maar 1 slash of iets anders mist dan kun je daar eeuwen op dood staren :P
pi_119074300
quote:
0s.gif Op zondag 11 november 2012 00:30 schreef Pakspul het volgende:
Zit dit probleem in in de apache server? Anders moet je stap voor stap gaan debuggen om te kijken of er toch ergens iets verkeerd wordt geladen.
Ik kan het me niet voorstellen, want een map met een ander project op hetzelfde niveau doet het wel. Als ik de mapnaam verander krijg ik dezelfde foutmeldingen. Ik denk dus dat ik iets vreselijk over het hoofd zie. :')
pi_119074348
quote:
0s.gif Op zondag 11 november 2012 00:34 schreef pascal08 het volgende:

[..]

Ik kan het me niet voorstellen, want een map met een ander project op hetzelfde niveau doet het wel. Als ik de mapnaam verander krijg ik dezelfde foutmeldingen. Ik denk dus dat ik iets vreselijk over het hoofd zie. :')
Als je dan een echo "jeej"; in je alle eerste PHP script neer zet dan moet deze boven de foutmelding komen te staan. Gebeurd dit niet dan komt hij al geen eens in je PHP script en zit Apache te kutten.
pi_119074403
quote:
0s.gif Op zondag 11 november 2012 00:35 schreef Pakspul het volgende:

[..]

Als je dan een echo "jeej"; in je alle eerste PHP script neer zet dan moet deze boven de foutmelding komen te staan. Gebeurd dit niet dan komt hij al geen eens in je PHP script en zit Apache te kutten.


Het eerste woord staat in de index() functie, het tweede woord wordt aangeroepen via een functie. Het werkt dus wel, maar niet als ik index.php weghaal, terwijl ik in de config file index.php weg heb gehaald.
pi_119074429
quote:
0s.gif Op zondag 11 november 2012 00:37 schreef pascal08 het volgende:

[..]

[ afbeelding ]
Je URL is nu wel ineens anders. index.php staat er nu ineens tussen.
pi_119074470
quote:
0s.gif Op zondag 11 november 2012 00:38 schreef Pakspul het volgende:

[..]

Je URL is nu wel ineens anders. index.php staat er nu ineens tussen.
Klopt. Ik gebruik CodeIgniter trouwens, ben ik vergeten te vermelden.
pi_119074513
quote:
0s.gif Op zondag 11 november 2012 00:39 schreef pascal08 het volgende:

[..]

Klopt. Ik gebruik CodeIgniter trouwens, ben ik vergeten te vermelden.
ok, ben ik niet bekend mee, maar als de URL goed is dan kun je verder gaan om de if statement uit te zoeken waarom die de keuze maakt om toch een foutmelding af te drukken. Variabelen weergeven helpt hierbij om te kijken wat er in zit.
pi_119074580
Toen ik dit las keek ik zo: :'). Ik ben helemaal vergeten om mod_rewrite in de .htaccess file te zetten. |:( |:( |:(

pi_119074745
Goedemorgen :P
pi_119074783
quote:
0s.gif Op zondag 11 november 2012 00:49 schreef Pakspul het volgende:
Goedemorgen :P
Arggggh, zo vervelend is dat hè. Ik ben gewoon niet geschikt voor dit soort dingen, veel te slordig en ik maak er heel vaak een puinhoop van. :')

Het gekke is wel, dat als ik mijn probleem hier post, ik vaak zelf het antwoord vind. 8)7
pi_119078012
Ik heb eindelijk eens tijd kunnen maken om te kunnen spelen met PDO. Om PDO gemakkelijk te kunnen toevoegen aan huidige projecten heb ik een wrapper / class geschreven die ik normaal ook gebruik om queries uit te voeren. Echter zit ik met een probleem als het gaat om LIMIT.

Een stukje code:
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
<?php
function q($query$data = array())
{
    
/* run query with data */
    
$this->query = array('query' => $query
                         
'data'  => $data);
    try
    {
        
$this->prep $this->dbConnection->prepare($query);
        
        foreach (
$data AS $key => $val)
        {
            if (
is_int($val))
            {
                
$this->prep->bindParam($key, (int)$valPDO::PARAM_INT); // regel 43
            
}
            else
            {
                
$this->prep->bindParam($key$val);
            }
        }
                    
        
$this->prep->execute();
        
        
$this->prep->setFetchMode(PDO::FETCH_ASSOC);
        
        return 
$this->prep// can return false
    
}
    catch (
Exception $e
    {
        
$this->pdoException($e->getMessage());
        exit;
    }
}
?>

Zo voer ik deze code uit:
1
2
3
4
5
6
7
8
9
10
<?php
    $tst
->q("SELECT * 
             FROM `fish` 
             WHERE `user_id` > :id 
             LIMIT :startCnt, 
                   :numberCnt"
,
            array(
":id"        => 0
                  
":startCnt"  => 1
                  
":numberCnt" => 5));
?>

echter als ik de query zonder LIMIT uitvoer krijg ik geen foutmelding maar data, maar als ik limit toevoeg wel, nu las ik overal op het net dat ik dan moet zorgen dat de gegevens gebonden worden als INT, dus heb ik een stukje code toegevoegd om INT's als INT toe te voegen maar op een of andere manier blijf ik foutmeldingen krijgen.

foutmelding:
1Fatal error: Cannot pass parameter 2 by reference in D:\EasyPHP-12.1\www\pdoclass.php on line 43

$data bevat volgens de foutmelding dit:
1
2
3
4
array (size=3)
  ':id' => int 0
  ':startCnt' => int 1
  ':numberCnt' => int 5

help!? :D

-edit-

1
2
$val = (int)$val;
$this->prep->bindParam($key, $val, PDO::PARAM_INT);

nadat ik (int)$val als extra variabel heb aangemaakt en deze doorgeef aan bindparam krijg ik de volgende foutmelding:

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
array (size=4)
  'error' => string 'PDO-SQL-ERROR' (length=13)
  'PDO_error' => string 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 ''5', 
                   '5'' at line 4' (length=231)
  'SQL' => 
    array (size=2)
      'query' => string 'SELECT * 
             FROM `fish` 
             WHERE `user_id` > :id 
             LIMIT :startCnt, 
                   :numberCnt' (length=136)
      'data' => 
        array (size=3)
          ':id' => int 0
          ':startCnt' => int 1
          ':numberCnt' => int 5
  'debug_backtrace' => 
    array (size=2)
      0 => 
        array (size=7)
          'file' => string 'D:\***\pdoclass.php' (length=32)
          'line' => int 60
          'function' => string 'pdoException' (length=12)
          'class' => string 'pdoWrapper' (length=10)
          'object' => 
            object(pdoWrapper)[1]
              ...
          'type' => string '->' (length=2)
          'args' => 
            array (size=1)
              ...
      1 => 
        array (size=7)
          'file' => string 'D:\***\pdoclass.php' (length=32)
          'line' => int 145
          'function' => string 'q' (length=1)
          'class' => string 'pdoWrapper' (length=10)
          'object' => 
            object(pdoWrapper)[1]
              ...
          'type' => string '->' (length=2)
          'args' => 
            array (size=2)
              ...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_119078163
quote:
0s.gif Op zondag 11 november 2012 00:51 schreef pascal08 het volgende:

[..]

Arggggh, zo vervelend is dat hè. Ik ben gewoon niet geschikt voor dit soort dingen, veel te slordig en ik maak er heel vaak een puinhoop van. :')

Het gekke is wel, dat als ik mijn probleem hier post, ik vaak zelf het antwoord vind. 8)7
Dat heet het "teddybeer-effect". Doordat je je probleem aan iemand moet uitleggen wordt het voor jezelf ook duidelijker en doordat je extra houvast hebt aan dit topic / je collega / je teddybeer zie je de oplossing opeens zelf.
pi_119078230
quote:
7s.gif Op zondag 11 november 2012 10:48 schreef Farenji het volgende:

[..]

Dat heet het "teddybeer-effect". Doordat je je probleem aan iemand moet uitleggen wordt het voor jezelf ook duidelijker en doordat je extra houvast hebt aan dit topic / je collega / je teddybeer zie je de oplossing opeens zelf.
Rubber ducking.
pi_119092620
Problem solved! :)

Geen bindParam maar bindValue aangezien bindParam er vanuit gaat dat de value kan veranderen en bindValue verbind de gegeven 'value' aan de parameter! :D

jeej

Wat vinden jullie trouwens van mijn pdoWrapper?

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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
<?php
class pdoWrapper
{
    private 
$dbConnection;
    private 
$lastQuery 0;
    private 
$prep;

    public 
$queries = array();

    private function 
mtime_float()
    {
        list(
$usec$sec) = explode(" "microtime());
        return ((float)
$usec + (float)$sec);
    }    

    function 
__construct($hostname$username$password$database)
    {
        
/* open the connection to the database server and database */
        
$this->queries['connection'] = array('hostname'  => $hostname
                                             
'username'  => $username,
                                             
'database'  => $database,
                                             
'startTime' => $this->mtime_float());
        try
        {
            
$con "mysql:dbname=" $database ";host=" $hostname;
            
$this->dbConnection = new PDO($con
                                          
$username
                                          
$password);
        } 
        catch(
Exception $e
        {
            
$this->pdoException($e->getMessage());
            exit;
        }
        
        
$this->dbConnection->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);

        
$this->queries['connection']['endTime']     = $this->mtime_float();
        
$this->queries['connection']['totalTime']   = round($this->queries['connection']['endTime'] - $this->queries['connection']['startTime'], 
                                                          
6);
        
$this->queries['connection']['connectTime'] = $this->queries['connection']['totalTime'];
        
        
$this->queries['connection']['queries']          = 0;
        
$this->queries['connection']['longestQueryTime'] = 0;
        
$this->queries['connection']['longestQuery']     = 0;
        
    }

    function 
q($query$data = array())
    {
        
/* run query with data */
        
$this->lastQuery++;
        
        
// start logging
        
$this->queries[$this->lastQuery] = array('query'     => $query
                                                 
'data'      => $data,
                                                 
'rows'      => -1,
                                                 
'startTime' => $this->mtime_float());
        try
        {
            
$this->prep $this->dbConnection->prepare($query);
            
            
// loop elements and bind to there requested value
            
foreach ($data AS $bindValue => $replaceValue)
            {
                
// int, add PDO::PARAM_INT for processing as REAL int -d
                
if (is_int($replaceValue))
                {
                    
$val intval($replaceValue);
                    
$this->prep->bindValue($bindValue$replaceValuePDO::PARAM_INT);
                }
                else
                {
                    
$this->prep->bindValue($bindValue$replaceValuePDO::PARAM_STR);
                }
            }
                        
            
$this->prep->execute();
            
        }
        catch (
Exception $e
        {
            
$this->pdoException($e->getMessage());
        }

        
$this->queries[$this->lastQuery]['rows'] = $this->prep->rowCount();
            
        
$this->prep->setFetchMode(PDO::FETCH_ASSOC);
        
        
// end the logging
        
$this->queries[$this->lastQuery]['endTime']   = $this->mtime_float();
        
$this->queries[$this->lastQuery]['totalTime'] = round($this->queries[$this->lastQuery]['endTime'] - $this->queries[$this->lastQuery]['startTime'],
                                                              
6);

        
// update the database total connection time.
        
$this->queries['connection']['endTime']   = $this->mtime_float();
        
$this->queries['connection']['totalTime'] = round($this->queries['connection']['endTime'] - $this->queries['connection']['startTime'], 
                                                        
6);
        
$this->queries['connection']['queries']++;

        if (
$this->queries[$this->lastQuery]['totalTime'] > $this->queries['connection']['longestQueryTime'])
        {
            
$this->queries['connection']['longestQueryTime'] = $this->queries[$this->lastQuery]['totalTime'];
            
$this->queries['connection']['longestQuery']     = $this->queries[$this->lastQuery];
        }
        
        return 
$this->prep// can return false
    
}

    function 
fetch()
    {
        
/* fetch all data */
        
return $this->prep->fetchAll();
    }

    function 
rows()
    {
        
/* retrieve number of found rows */
        
return $this->queries[$this->lastQuery]['rows'];
    }

    function 
result()
    {
        
/* result for used more then 0 yes or no */
        
        
return ( $this->queries[$this->lastQuery]['rows'] > 0) ? false true;
    }

    function 
insert_id()
    {
        
/* return last insert id */
        
$this->queries[$this->lastQuery]['insert_id'] = $this->dbConnection->lastInsertId();
        
        return 
$this->queries[$this->lastQuery]['insert_id'];
    }

    function 
affected()
    {
        
/* return number affected rows alternative */
        
        
return  $this->queries[$this->lastQuery]['rows'];
    }
    
    function 
pdoException($message
    {
        
$this->queries['connection']['errorQueries'][$this->lastQuery] = $message;
        
$this->queries[$this->lastQuery]['error'] = array('error'           => 'PDO-SQL-ERROR',
                                                          
'PDO_error'       => $message,
                                                          
'debug_backtrace' => debug_backtrace());
        
    }    
}
?>


[ Bericht 98% gewijzigd door Chandler op 12-11-2012 10:43:57 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_119119724
Waar laat ik mijn PHP-code in JSFiddle?
pi_119119783
quote:
0s.gif Op maandag 12 november 2012 12:05 schreef pascal08 het volgende:
Waar laat ik mijn PHP-code in JSFiddle?
Eh.
Heet het PHPFiddle?
pi_119119932
quote:
15s.gif Op maandag 12 november 2012 12:06 schreef KomtTijd... het volgende:

[..]

Eh.
Heet het PHPFiddle?
Nee... toch? :P

Maarja, ik heb dus het volgende probleem. Ik heb met Bootstrap een typeahead veld gemaakt en ik heb de JS code onder aan m'n HTML pagina geschreven. Als ik dit doe werkt het wel:



..., maar zodra ik een query laat uitvoeren vanuit een ander PHP-bestand, dan gaat er iets niet goed. Het PHP-bestand stand-alone draaien werkt wel.



SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
pi_119120088
...een javascript probleem dus. Wat moet dat in het PHP-topic?
pi_119120156
quote:
2s.gif Op maandag 12 november 2012 12:14 schreef KomtTijd... het volgende:
...een javascript probleem dus. Wat moet dat in het PHP-topic?
Ik post toch ook een JS-code én een PHP-bestand.
pi_119120176
...je zegt net dat het php-script gewoon werkt? :?
pi_119120224
quote:
14s.gif Op maandag 12 november 2012 12:17 schreef KomtTijd... het volgende:
...je zegt net dat het php-script gewoon werkt? :?
Stand-alone ja, maar misschien moet het PHP-script wel aangepast worden om het op deze manier te laten werken, weet ik veel. :?
  maandag 12 november 2012 @ 12:21:18 #42
75592 GlowMouse
l'état, c'est moi
pi_119120296
Ik denk dat de fout niet in het php-script zit. Misschien kom je verder met de developer-console in je browser.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_119120356
quote:
0s.gif Op maandag 12 november 2012 12:21 schreef GlowMouse het volgende:
Ik denk dat de fout niet in het php-script zit. Misschien kom je verder met de developer-console in je browser.
Ik heb 'm al in het JS-topic gepost. ;) Waar moet ik precies naar kijken in de developer-console van Chrome?
  maandag 12 november 2012 @ 13:40:21 #44
118585 Crutch
Filantroop || Taalzwengel
pi_119122887
Heb je ook gekeken wat er terugkomt in die datavariabele?
In de PHP-log gekeken?
Misschien is ?query= wel leeg?
Je moeder is een hamster
pi_119151699
quote:
0s.gif Op maandag 12 november 2012 12:10 schreef pascal08 het volgende:

[..]

Nee... toch? :P

Maarja, ik heb dus het volgende probleem. Ik heb met Bootstrap een typeahead veld gemaakt en ik heb de JS code onder aan m'n HTML pagina geschreven. Als ik dit doe werkt het wel:

[ afbeelding ]

..., maar zodra ik een query laat uitvoeren vanuit een ander PHP-bestand, dan gaat er iets niet goed. Het PHP-bestand stand-alone draaien werkt wel.

[ afbeelding ]

SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
Kwestie van search.php testen. .ajax wil niet zeggen dat hij een $_POST verstuurd controleer eerst of hij dit uberhaupt doet. Door een variable terug te krijgen van PHP script. dus dat je een visuele output ergens maakt. Je PHP file is leuk gemaakt, maar voor test willen we eerst zien of hij dat stukje code bereikt.

Controleer met behulp van Firebug (firefox addon)in de console of er een output richting de server gaat en of je daar iets van terug krijgt maak daarvoor bvb:
1
2
3
4
5
6
<?php 
if(isset($_POST['Een_bestaande_variabele']))
{
  echo 
"het werkt!";
}
?>
van en ga dan vervolgens kijken of je dat terug krijgt in de console.
Mocht dit niet het geval zijn dan weet je dat je Javascript niet werkt. Desnoods stop je eronder iets wat een kleurtje oranje maakt op de site met behulp van JQuery om te testen of het script werkt of niet.

Mocht het Javascript werken dan kan hij mogelijk "search.php" niet vinden. en zul je dit anders moeten benaderen.
Redacted
pi_119152027
quote:
0s.gif Op maandag 12 november 2012 13:40 schreef Crutch het volgende:
Heb je ook gekeken wat er terugkomt in die datavariabele?
In de PHP-log gekeken?
Misschien is ?query= wel leeg?
quote:
0s.gif Op dinsdag 13 november 2012 00:10 schreef cablegunmaster het volgende:

[..]

Kwestie van search.php testen. .ajax wil niet zeggen dat hij een $_POST verstuurd controleer eerst of hij dit uberhaupt doet. Door een variable terug te krijgen van PHP script. dus dat je een visuele output ergens maakt. Je PHP file is leuk gemaakt, maar voor test willen we eerst zien of hij dat stukje code bereikt.

Controleer met behulp van Firebug (firefox addon)in de console of er een output richting de server gaat en of je daar iets van terug krijgt maak daarvoor bvb:
[ code verwijderd ]

van en ga dan vervolgens kijken of je dat terug krijgt in de console.
Mocht dit niet het geval zijn dan weet je dat je Javascript niet werkt. Desnoods stop je eronder iets wat een kleurtje oranje maakt op de site met behulp van JQuery om te testen of het script werkt of niet.

Mocht het Javascript werken dan kan hij mogelijk "search.php" niet vinden. en zul je dit anders moeten benaderen.
Bedankt voor het meedenken, maar het probleem was al vrij snel opgelost in het JS topic. Ik ben in ieder geval vandaag heel veel wijzer geworden over debuggen, dus dat voorkomt een hoop onnodige posts in de toekomst.
pi_119156803
Jammer dat niemand een reactie wil geven op mijn pdoWrapper maar goed, boeiend, maar nu een andere inzichts vraag.

Stel ik heb een string met de volgende gegevens.
/x/y/z/a/b

nu wil ik van deze string het laatste lettertje uitlezen, dus dacht ik, ach simpel dat doen we gewoon zo

1
2
3
4
5
<?php
$string 
"/x/y/z/a/b";
$e explode("/"$string);
echo 
end($e);
?>

dat werkt, maar natuurlijk!. Dus dacht ik, het moet toch ook simpeler kunnen? dus dacht ik dat dit ook wel moest werken

1
2
3
4
<?php
$string 
"/x/y/z/a/b";
echo 
end(explode("/"$string));
?>

maar dat mag niet? Strict standards: Only variables should be passed by reference in

dus mijn vraag, zit ik nu vast aan mijn 2 regels? of kan het nog korter?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  dinsdag 13 november 2012 @ 10:48:27 #48
12221 Tijn
Powered by MS Paint
pi_119157083
Dat laatste voorbeeld werkt bij mij gewoon, hoor.
  dinsdag 13 november 2012 @ 10:51:52 #49
118585 Crutch
Filantroop || Taalzwengel
pi_119157162
quote:
5s.gif Op dinsdag 13 november 2012 10:48 schreef Tijn het volgende:
Dat laatste voorbeeld werkt bij mij gewoon, hoor.
Hier ook.
Je moeder is een hamster
pi_119157166
quote:
5s.gif Op dinsdag 13 november 2012 10:48 schreef Tijn het volgende:
Dat laatste voorbeeld werkt bij mij gewoon, hoor.
Hier niet :(

1
2
3
4
<?php
$string 
'/a/b/c/d/e/f';
echo 
end(explode("/"$string));
?>

Krijg deze foutmelding.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Strict standards: Only variables should be passed by reference in D:\EasyPHP-12.1\home\codesource.php on line 3
Call Stack
#    Time    Memory    Function    Location
1    0.0008    138544    {main}( )    ..\codetester.php:0
2    0.0076    176864    include( 'D:\EasyPHP-12.1\home\codesource.php' )    ..\codetester.php:43
Dump $_SERVER
$_SERVER['REMOTE_ADDR'] =
string '127.0.0.1' (length=9)
$_SERVER['REQUEST_METHOD'] =
string 'POST' (length=4)
$_SERVER['REQUEST_URI'] =
string '/home/codetester.php' (length=20)
Variables in local scope (#2)
$string =
string '/a/b/c/d/e/f' (length=12)

server info
APACHE 2.4.2 MYSQL 5.5.27 PHP 5.4.6
The people who lost my respect will never get a capital letter for their name again.
Like trump...
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')