abonnement Unibet Coolblue
pi_152393912


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

[ Bericht 54% gewijzigd door #ANONIEM op 08-05-2015 20:03:14 ]
pi_152396048
quote:
MySQL 5.7 Labs — Inserting, Updating, and Deleting Records via HTTP
In the MySQL Labs version of MySQL version 5.7, there is a new HTTP plugin. The HTTP plugin documentation from the labs site provides this information (from MySQL Labs):

The HTTP Plugin for MySQL adds HTTP(S) interfaces to MySQL. Clients can use the HTTP respectively HTTPS (SSL) protocol to query data stored in MySQL. The query language is SQL but other, simpler interfaces exist. All data is serialized as JSON. This version of MySQL Server HTTP Plugin is a Labs release, which means it’s at an early development stage. It contains several known bugs and limitation, and is meant primarily to give you a rough idea how this plugin will look some day. Likewise, the user API is anything but finalized. Be aware it will change in many respects.

[...]
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
pi_152446614
Kan iemand mij hiermee op weg helpen?

Hoe kan ik het volgende bereiken:

Ik wil een functie maken:
1
2
3
4
5
6
<?php
function showRandom() {
    
$query    "SELECT `category`, `idHash`, `title`, `urlTitle`, `imgName`, `views`, `active` FROM `entries` ORDER BY RAND() LIMIT 1";
    
$row mysql_fetch_object($query);
}
?>

Vervolgens wil ik daar delen van kunnen printen, door zoiets te doen:
1
2
3
<?php
echo showRandom->$row->title;
?>

De gebruikte syntaxes/benamingen zijn fout, vandaar ook mijn hulp vraag :)
  zondag 10 mei 2015 @ 00:13:08 #4
12221 Tijn
Powered by MS Paint
pi_152447476
1
2
3
4
5
6
7
<?php
function showRandom() {
  
// hier code om een random $row uit de database te halen met de benodigde velden

  
return $row;
}
?>

In recente versies van PHP:
1
2
3
<?php
echo showRandom()['title'];
?>

In oudere versies van PHP:
1
2
3
4
<?php
$randomRow 
showRandom();
echo 
$randomRow['title'];
?>
pi_152447786
quote:
3s.gif Op zondag 10 mei 2015 00:13 schreef Tijn het volgende:

[ code verwijderd ]

In recente versies van PHP:
[ code verwijderd ]

In oudere versies van PHP:
[ code verwijderd ]

Mijn dank is groot, straks even proberen. Heb hier PHP 5.3.29, vrij oud volgens mij.
  zondag 10 mei 2015 @ 00:38:01 #6
272287 henrivo
Tikt tegen jassies
pi_152448723
quote:
3s.gif Op zondag 10 mei 2015 00:13 schreef Tijn het volgende:

[ code verwijderd ]

In recente versies van PHP:
[ code verwijderd ]

In oudere versies van PHP:
[ code verwijderd ]

Ik heb het nu zo en lijkt te werken:
1
2
3
4
5
6
7
8
9
10
11
<?php
function showRandom() {
    global 
$mysqli;
    
$query    "SELECT `category`, `idHash`, `title`, `urlTitle`, `imgName`, `views`, `active` FROM `entries` ORDER BY RAND() LIMIT 1";
    if (
$result $mysqli->query($query)) {
         while (
$row $result->fetch_object()) {
            return 
$row;
        }
    }
}
?>

1
2
3
<?php
echo showRandom()->title;
?>

Weet alleen niet of dit DE manier is :)

/edit
Hmm, nu ik er zo over na denk wil ik dit helemaal niet.
Want als ik ergens op de pagina echo showRandom->views; doe, en iets later echo showRandom()->imgName;. Zal de views niet uit hetzelfde result komen als van imgName, omdat iedere ik showRandom(); en nieuwe query wordt gedraaid :(

[ Bericht 6% gewijzigd door xaban06 op 10-05-2015 00:53:21 ]
  zondag 10 mei 2015 @ 02:16:16 #8
363995 Reemi
Zeg maar Remi.
pi_152450625
quote:
0s.gif Op zondag 10 mei 2015 00:46 schreef xaban06 het volgende:

[..]

Ik heb het nu zo en lijkt te werken:
[ code verwijderd ]

[ code verwijderd ]

Weet alleen niet of dit DE manier is :)

/edit
Hmm, nu ik er zo over na denk wil ik dit helemaal niet.
Want als ik ergens op de pagina echo showRandom->views; doe, en iets later echo showRandom()->imgName;. Zal de views niet uit hetzelfde result komen als van imgName, omdat iedere ik showRandom(); en nieuwe query wordt gedraaid :(
Resultaat van showRandom() bewaren:
1
2
3
$random = showRandom();
echo $random->views;
echo $random->imgName;
Smile like you mean it
www.wefut.com
pi_152452953
quote:
0s.gif Op zondag 10 mei 2015 00:38 schreef henrivo het volgende:
Symfony _O_
pi_152456599
quote:
14s.gif Op zondag 10 mei 2015 02:16 schreef Reemi het volgende:

[..]

Resultaat van showRandom() bewaren:
[ code verwijderd ]

En die functie niet showRandom() noemen. Iets als getRandomEntry() geeft beter aan wat de functie doet.
pi_152456725
Sowieso kan het geen kwaad om eerst eens de basisconcepten van object georiënteerd programmeren te leren; classes, methodes, fields, scopes, objecten, enzovoort.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_152509574
quote:
Tweakers: Sql-optimalisatie - Eén grote versus veel kleine queries
In de afgelopen periode hebben we bij Tweakers diverse belangrijke stukken code herschreven. Eerder dit jaar is ons vernieuwde reactiesysteem geïntroduceerd, en in april en mei zijn we bezig geweest om het karmasysteem te herschrijven.

[...]

Wat ons betreft valt de database van Tweakers met 219GB trouwens niet in de orde van grootte om over te stappen op sharding of andere technieken om verscheidene servers tegelijk te gebruiken. Overigens hebben we er wel op diverse manieren voor gezorgd dat de MySQL-database niet voor alle gegevens gebruikt hoeft te worden. We hebben er bijvoorbeeld voor gekozen om bepaalde stukken data in MongoDB op te slaan of in memcached te cachen en veel van de informatie wordt via onze Java-omgeving opgevraagd.

In dit artikel beschrijven we twee toepassingen waarbij de databaseprestaties voor ons belangrijk waren. Daarbij laten we stapsgewijs een aantal optimalisaties zien die signficante verbeteringen in de prestaties gaven. Bedenk wel dat dit artikel niet gaat over het plaatsen van de juiste indices of het optimisaliseren van de instellingen van een database. Dit is een parallelle taak waarbij bekeken wordt of de database wel optimaal ingezet wordt, maar een goed geoptimaliseerde tabelstructuur en database zijn uiteraard ook belangrijk voor goede prestaties.
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  dinsdag 12 mei 2015 @ 09:21:32 #13
230788 n8n
Pragmatisch
pi_152515141
Specialization is for insects”.—Robert Heinlein
pi_152515166
How To Prepare For Your MySQL 5.7 Upgrade
MySQL 5.7 is the most current release candidate of the popular open-source database. It offers new scalability features that should have you eager to make the change.

To highlight one of the changes, scalability has been greatly improved. On the high end, MySQL 5.7 scales linearly on 48-core servers. On the low end, MySQL 5.7 also works out of the box on a 512 MB DigitalOcean Droplet (something that was not possible without configuration changes in MySQL 5.6).

The new peak performance for a MySQL server is over 640K queries per second, and the memcached API, which speaks directly to the InnoDB storage engine, is capable of sustaining over 1.1 million requests per second.


Before you rush to run mysql_upgrade, though, you should make sure you're prepared. This tutorial can help you do just that.

[ Bericht 38% gewijzigd door Aether op 12-05-2015 09:43:49 ]
When the student is ready, the teacher will appear.
When the student is truly ready, the teacher will disappear.
  dinsdag 12 mei 2015 @ 09:37:08 #15
230788 n8n
Pragmatisch
pi_152515469
quote:
maak een padamtssshhh prepare statement 😂
Specialization is for insects”.—Robert Heinlein
pi_152532896
quote:
14s.gif Op zondag 10 mei 2015 02:16 schreef Reemi het volgende:

[..]

Resultaat van showRandom() bewaren:
[ code verwijderd ]

Inderdaad op die manier opgelost ^O^

Nog een vraagje.

In iedere functie die ik maak waar ik een query op de mysql database uitvoer moet ik het volgende meenemen, anders werkt niet het:
1
2
3
<?php
global $mysqli;
?>

De waarde van $mysqli is:
1
2
3
<?php
$mysqli 
= new mysqli("localhost""xx""xx""xx");
?>

Is dat normaal? Kan/moet ik het anders doen? Of is dit de manier.
pi_152532919
quote:
0s.gif Op zondag 10 mei 2015 13:29 schreef Monolith het volgende:
Sowieso kan het geen kwaad om eerst eens de basisconcepten van object georiënteerd programmeren te leren; classes, methodes, fields, scopes, objecten, enzovoort.
Al paar keer daarover gaan lezen, maar ik begrijp het maar niet, ik ben blijven haken bij php4 :(
pi_152533932
Nu ik toch bezig ben. Ik wil 'clean URLs'. Dat moet ik met PHP zien af te vangen en de correcte pagina te laden.
Heb daarvoor dit geschreven, is dit een beetje de manier hoe het moet of kan het VEEL simpeler en beter?

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
<?php

$URI        
$_SERVER['REQUEST_URI'];
$urlPart    explode("/"strtolower($URI));

if (
$URI == "/") {
    
/* Show frontpage as browser URL is http://www.xx.nl */
    
$showPage    "frontpage";

} else {
    
/* We need to show another page than the frontpage */
    /* Lets see which pages we have */
    
$safePages    = array("xx""foo""bar""contact");
    
    if (
in_array($urlPart["1"], $safePages)) {
        
/* The page which needs to be loaded seems to be a valid URL */
        /* Lets see now which page we have to load */
    
        
if ($urlPart["1"] == "xx") {
            
/* We have to load the xx page */
            /* But first we have to check if we have to load the general xx page or we have to show a single xx entry */
        
            
if (empty($urlPart["2"])) {
                
/* Ok, we have to load the xx general page */
                
                
$showPage    "xx";
                
            } else {
                
/* It seems there is more in the URL, so we have to load a xx entry */
                /* But first, lets check if the entry does exists */
                
                
$resultCheck    checkEntry($urlPart["1"], $urlPart["2"]);
                
                if (
$resultCheck) {
                    
/* Result is found. We can safely load a xx entry */
                    
                    
$showPage    "xxEntry";
                    
                } else {
                    
/* Result not found, probably incorrect hash or someone is hacking the website */
                    /* Show Error 404 - entry not found */
                    
                    
$showPage    "404";
                }
            }
        }
        
/* repeat the if for other pages */
        /* STILL TO DO */
    
} else {
        
/* Page not found in safe pages */
        /* Show Error 404 - page not found */
        
        
$showPage    "404";
    }
}
?>

Bovenstaande script include ik in mijn index. In de index kijk ik naar de waarde van $showPage en afhankelijk daarvan include ik de benodigde pagina's.
pi_152534045
quote:
0s.gif Op dinsdag 12 mei 2015 18:58 schreef xaban06 het volgende:

[..]

Al paar keer daarover gaan lezen, maar ik begrijp het maar niet, ik ben blijven haken bij php4 :(
Mja, ik zou het toch blijven proberen. Wat jij hierboven schetst kun je bijvoorbeeld prima regelen met een singleton.
Volkorenbrood: "Geen quotes meer in jullie sigs gaarne."
pi_152538375
quote:
1s.gif Op dinsdag 12 mei 2015 19:27 schreef Monolith het volgende:

[..]

Mja, ik zou het toch blijven proberen. Wat jij hierboven schetst kun je bijvoorbeeld prima regelen met een singleton.
Of dependency injection jo! Het 'Services principe' lijkt steeds meer gebruikt te worden.
  Moderator / Redactie Sport / Devops dinsdag 12 mei 2015 @ 20:57:52 #21
176766 crew  zoem
zoemt
pi_152538459
quote:
0s.gif Op dinsdag 12 mei 2015 19:24 schreef xaban06 het volgende:
Nu ik toch bezig ben. Ik wil 'clean URLs'. Dat moet ik met PHP zien af te vangen en de correcte pagina te laden.
Heb daarvoor dit geschreven, is dit een beetje de manier hoe het moet of kan het VEEL simpeler en beter?
[ code verwijderd ]

Bovenstaande script include ik in mijn index. In de index kijk ik naar de waarde van $showPage en afhankelijk daarvan include ik de benodigde pagina's.
En wat als je site in een ander pad geinstalleerd wordt dan onder de www-root?
pi_152539235
quote:
12s.gif Op dinsdag 12 mei 2015 20:57 schreef zoem het volgende:

[..]

En wat als je site in een ander pad geinstalleerd wordt dan onder de www-root?
Hoe bedoel je? Is mijn script daar afhankelijk van dan?
  dinsdag 12 mei 2015 @ 21:14:44 #23
230788 n8n
Pragmatisch
pi_152539456
quote:
0s.gif Op dinsdag 12 mei 2015 21:10 schreef xaban06 het volgende:

[..]

Hoe bedoel je? Is mijn script daar afhankelijk van dan?
1
2
3
<?php
$URI        
$_SERVER['REQUEST_URI'];
?>
Specialization is for insects”.—Robert Heinlein
  Moderator / Redactie Sport / Devops dinsdag 12 mei 2015 @ 21:18:34 #24
176766 crew  zoem
zoemt
pi_152539732
quote:
0s.gif Op dinsdag 12 mei 2015 21:10 schreef xaban06 het volgende:

[..]

Hoe bedoel je? Is mijn script daar afhankelijk van dan?
Als je http://example.com/site/index.php aanroept zul je 'site' eruit moeten knippen. Anders zullen de array indices van $urlPart niet meer kloppen.
pi_152540015
quote:
0s.gif Op dinsdag 12 mei 2015 21:18 schreef zoem het volgende:

[..]

Als je http://example.com/site/index.php aanroept zul je 'site' eruit moeten knippen. Anders zullen de array indices van $urlPart niet meer kloppen.
Ah op die manier :)

Dan bouw ik er wel iets in dat hij eerste stukje uit de array moet verwijderen :)

Of moet het anders :P
abonnement Unibet Coolblue
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')