Hallo
Ik heb ooit een beetje in PHP gescript zoals een nieuws systeem maken in PHP & MySQL. Dit is ongeveer een half jaar geleden en sinds deze vakantie had ik weer zin om te gaan PHP-en. Alleen nu wou ik het ook gelijk goed doen. Eerst weer even wat basis kennis opdoen en dan weer wat maken. Nu zijn hier waarschijnlijk mensen op het forum die ook echt als werk PHP-en hebben. Nu wou ik wat aan die mensen vragen.
Natuurlijk scripten jullie netjes etc. Maar hoe? Unsetten jullie alle vars aan het eind van een script? En doen jullie dit:
Of dit?Code:<?php $sql = "SELECT * FROM paginas"; $res = mysql_query($sql); ?>
Gewoon uit pure intersse hoor :P.Code:<?php $sql = mysql_query("SELECT * FROM paginas"); ?>
Alvast bedankt
Omar
- Netjes PHP scripten
-
23-12-2008, 17:01 #1
- Berichten
- 28
- Lid sinds
- 16 Jaar
Netjes PHP scripten
-
-
23-12-2008, 17:06 #2
- Berichten
- 530
- Lid sinds
- 18 Jaar
Ik vind $query = ""; echt overbodig, ik doe altijd gewoon in mysql_query() de query
-
23-12-2008, 17:21 #3
- Berichten
- 330
- Lid sinds
- 17 Jaar
En hoe wilde je dan mysql_fetch_assoc/object/array doen?
Ik neem aan dat je dan bedoeld dat je $query = mysql_query doet en niet via de volgende regel...
-
23-12-2008, 17:24 #4
- Berichten
- 2.971
- Lid sinds
- 18 Jaar
Code:$sql = "SELECT * FROM paginas WHERE pagina = 1 AND status = 0 "; $query = mysql_query($sql);
Unsetten van vars an het einde van script overigens wel :p
Als je een stijl wilt leren raad ik aan:
http://pear.php.net/manual/en/standards.php
-
23-12-2008, 17:36 #5
- Berichten
- 59
- Lid sinds
- 17 Jaar
In dit geval vind ik dit nogal onnodig:
Code:<?php $sql = "SELECT * FROM paginas"; $res = mysql_query($sql); ?>
-
23-12-2008, 17:41 #6
- Berichten
- 2.971
- Lid sinds
- 18 Jaar
Nouja, gezien mijn queries regelmatig een 100 vout aan karakters bevat is meerdere regels eigenlijk niet uit te sluiten.
Queries, joins, subqueries, etc moeten wel overzichtelijk blijven.
-
23-12-2008, 19:04 #7
- Berichten
- 415
- Lid sinds
- 17 Jaar
Persoonlijk vind ik $sql = mysql_query("SELECT * FROM paginas"); fijner werken.
Anders krijg je erg veel regels en dat vind ik persoonlijk irritanter als dat alles in één regeltje zit.
-
24-12-2008, 00:12 #8
- Berichten
- 1.331
- Lid sinds
- 19 Jaar
Gewoon in 1 regel doen. Het levert nauwelijks (lees: geen) extra overzicht op en je moet wel weer een variabele aanmaken die het geheugen in moet. En waar je kan besparen zou ik het je aanraden. ;)
-
24-12-2008, 08:24 #9
- Berichten
- 31
- Lid sinds
- 16 Jaar
Gewoon aan je eigen coding standards houden?
Wat is overzichtelijk. Als ik afspreek met mijn partner/klant/baas dat ik alle querys met maximaal 1 conditie (of het nu ORDER, WHERE oid. is maakt even niet uit) in 1 regel mag zetten. Dan is dat overzichtelijk.
Code:<?php $res = mysql_query("SELECT * FROM tabel WHERE id = $x"); ?>
Code:<?php $select = "SELECT * FROM tabel WHERE id = $x "; $res = mysql_query($select); ?>
Bijvoorbeeld. waar zet ik mijn { en } neer? onder functie/if's of ernaast? Waar en waneer spring ik in, hoe zet ik een array op? Hoe benoem ik mijn variablen?
Ook geen afspraken maken is opzich een afspraak.
Om even een einde te maken. Doe wat jij wilt en wat jij het fijnst vind. Probeer voor jezelf een overzichtelijk standard te maken waarin jij je code snel terug kan vinden en je het ook kan uitleggen als iemand je script ziet. (Ik vond het er mooi uitzien is geen reden om iets te doen natuurlijk)
-
24-12-2008, 08:32 #10
- Berichten
- 854
- Lid sinds
- 19 Jaar
PHP Code:
function SchoonMaken($variabele, $actie){
switch($actie){
case 1:
// Opslaan
$variabele = addslashes($variabele);
$variabele = mysql_real_escape_string($variabele);
$variabele = mysql_escape_string($variabele);
break;
case 0:
// Weergeven
$variabele = stripslashes($variabele);
$variabele = htmlentities($variabele);
break;
case 2:
// Weergeven content
$variabele = stripslashes($variabele);
break;
}
// Nieuwe variabele terug geven
return $variabele;
}
PHP Code:
MaakVerbinding();
require '_config/mysql_config.php';
$pagina = SchoonMaken($pagina, 1);
$titel_pagina = SchoonMaken($_GET['titel'], 1);
$q_pagina = "SELECT * FROM ".$mysql_prefix."content
WHERE ".$mysql_prefix."content.content_id = ".$pagina."
AND ".$mysql_prefix."content.content_titel LIKE '".$titel_pagina."'
LIMIT 0,1";
$q_result = mysql_query($q_pagina) or die(mysql_error());
-
24-12-2008, 08:59 #11
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Origineel gepost door OmarM
Hallo
Ik heb ooit een beetje in PHP gescript zoals een nieuws systeem maken in PHP & MySQL. Dit is ongeveer een half jaar geleden en sinds deze vakantie had ik weer zin om te gaan PHP-en. Alleen nu wou ik het ook gelijk goed doen. Eerst weer even wat basis kennis opdoen en dan weer wat maken. Nu zijn hier waarschijnlijk mensen op het forum die ook echt als werk PHP-en hebben. Nu wou ik wat aan die mensen vragen.
Natuurlijk scripten jullie netjes etc. Maar hoe? Unsetten jullie alle vars aan het eind van een script? En doen jullie dit:
Code:<?php $sql = "SELECT * FROM paginas"; $res = mysql_query($sql); ?>
Code:<?php $sql = mysql_query("SELECT * FROM paginas"); ?>
Alvast bedankt
Omar
De tweede optie is niet geschikt voor grotere queries, debuggen, etc.. dus blijft alleen de eerste over. Lijkt me logisch ;)
-
24-12-2008, 09:08 #12
- Berichten
- 31
- Lid sinds
- 16 Jaar
Origineel gepost door John Timmer
Je volgt je eigen standaarden of je doet je het niet, maar je gebruikt niet 2 standaarden voor 1 oplossing.
De tweede optie is niet geschikt voor grotere queries, debuggen, etc.. dus blijft alleen de eerste over. Lijkt me logisch ;)
(net even van google gevist)
Code:$query = "SELECT categories.id, categories.name, items.id, items.name FROM categories INNER JOIN items ON items.categoryid = categories.id AND items.id = (SELECT items2.id FROM items AS items2 WHERE items2.categoryid = category.id ORDER BY rand() limit 1) $result = mysql_query($query);
-
24-12-2008, 09:15 #13
- Berichten
- 465
- Lid sinds
- 18 Jaar
De opmaak van je code is aan je zelf vind ik. Hier zijn vele manieren voor en smaken verschillen.
Hoe je werkt met fout afhandeling en/of excepties is in mijn ogen netjes scripten. Zorg dat error reporting aan staat op het hoogste niveau en zorg dat er geen fouten in het script zitten, als er dan wel fouten optreden dan je dan deze netjes in een exceptie naar het scherm print. En variabelen buiten quotes zetten.
-
24-12-2008, 09:17 #14
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Origineel gepost door Thijs Damen
De eerste is wel geschikt wou je zeggen?
(net even van google gevist)
Code:$query = "SELECT categories.id, categories.name, items.id, items.name FROM categories INNER JOIN items ON items.categoryid = categories.id AND items.id = (SELECT items2.id FROM items AS items2 WHERE items2.categoryid = category.id ORDER BY rand() limit 1) $result = mysql_query($query);
Ik had de zin omgegooid maar de nummers laten staan :$
-
24-12-2008, 09:59 #15
- Berichten
- 2.971
- Lid sinds
- 18 Jaar
Origineel gepost door Martijn Dwars
Gewoon in 1 regel doen. Het levert nauwelijks (lees: geen) extra overzicht op en je moet wel weer een variabele aanmaken die het geheugen in moet. En waar je kan besparen zou ik het je aanraden. ;)
Code:SELECT * FROM tabel WHERE id = $x
Een minimale querie die ik zou schrijven is toch wel als voorbeeld
Code:$query = mysql_query("SELECT celnaam, celnaam, celnaam, celnaam, celnaam, celnaam FROM table WHERE table_id = " . $db->escape($var) . " AND status = 1");
* gebruiken is natuurlijk geen optie als je het hebt over besparen, overigens moet je dan ook geen fetch_array gebruiken maar fetch_object aangezien de array versie 2x zoveel vars bevat.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic