quote:Op zondag 13 april 2008 10:54 schreef beerten het volgende:
Een beetje een n00b vraag...
MySQL tabelrijen kan je voorzien van een index. Nu begrijp ik dat dit omwille van doorzoekbaarheid gedaan kan worden.
Wat is nu precies een index, welke kolommen komen hier voor in aanmerking?
Ik vind allerlei info over het hoe, maar niet het waarom.
de td tag heeft natuurlijk title als property die je gewoon kan setten. En als het in je eigen stijl moet zijn of dynamisch gewoon iets in elkaar draaien met javascript/ajaxquote:Op zondag 13 april 2008 11:15 schreef -J-D- het volgende:
Ik heb een tabel met getallen erin. Die getallen geven het aantal rijen in een tabel in mn db aan.
Nu wil ik dat als je over het getal heen gaat er een klein schermpje overheen komt met wat informatie over dat getal. Dat kan natuurlijk met onmouseover enz, maar nu wil ik in dat schermpje geen eigen tekst hebben, maar een tekst gegenereerd door een stukje php.
Weet iemand wel script ik daarvoor kan gebruiken? De mouseover-scipts die ik ken, laten geen php toe in dat schermpje.
quote:Op zondag 13 april 2008 11:15 schreef -J-D- het volgende:
Ik heb een tabel met getallen erin. Die getallen geven het aantal rijen in een tabel in mn db aan.
Nu wil ik dat als je over het getal heen gaat er een klein schermpje overheen komt met wat informatie over dat getal. Dat kan natuurlijk met onmouseover enz, maar nu wil ik in dat schermpje geen eigen tekst hebben, maar een tekst gegenereerd door een stukje php.
Weet iemand wel script ik daarvoor kan gebruiken? De mouseover-scipts die ik ken, laten geen php toe in dat schermpje.
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 | var cX = 0; var cY = 0; function UpdateCursorPosition(e){ cX = e.pageX; cY = e.pageY;} function UpdateCursorPositionDocAll(e){ cX = event.clientX; cY = event.clientY;} if(document.all) { document.onmousemove = UpdateCursorPositionDocAll; } else { document.onmousemove = UpdateCursorPosition; } function AssignPosition(d) { d.style.left = (cX+10) + "px"; d.style.top = (cY+10) + "px"; } function HideContent(d) { if(d.length < 1) { return; } document.getElementById(d).style.display = "none"; } function ShowContent(d) { if(d.length < 1) { return; } var dd = document.getElementById(d); AssignPosition(dd); dd.style.display = ""; } function ReverseContentDisplay(d) { if(d.length < 1) { return; } var dd = document.getElementById(d); AssignPosition(dd); if(dd.style.display == "none") { dd.style.display = ""; } else { dd.style.display = "none"; } } </script> <a onmouseover="ShowContent('uniquename2'); return true;" onmouseout="HideContent('uniquename2'); return true;" href="javascript:ShowContent('uniquename2')">LINKJE</a> <div id="uniquename2" style="display:none; position:absolute; border-style: solid; background-color: #FFFFFF; color: #004A95; padding: 5px;">EN HIER DE TEKST DIE JE WILT LATEN ZIEN</div> |
Ik moet nu weg, maar ga er van de week naar kijkenquote:Op zondag 13 april 2008 12:02 schreef qu63 het volgende:
[..]
[ code verwijderd ]
Zo heb ik het iig gedaan
Kleruen zijn aan te passen aan je website
En ipv een link kan het ook een div, td, of wat dan ook zijn
Hoezo zou een javascript PHP aan moeten kunnen? Je kunt je PHP toch zo schrijven dat hij dat er gewoon inwrot?quote:Op zondag 13 april 2008 11:15 schreef -J-D- het volgende:
Nu wil ik dat als je over het getal heen gaat er een klein schermpje overheen komt met wat informatie over dat getal. Dat kan natuurlijk met onmouseover enz, maar nu wil ik in dat schermpje geen eigen tekst hebben, maar een tekst gegenereerd door een stukje php.
Weet iemand wel script ik daarvoor kan gebruiken? De mouseover-scipts die ik ken, laten geen php toe in dat schermpje.
1 2 3 4 5 6 7 8 9 10 11 12 | $query = "SELECT `tekst` FROM `tooltips` WHERE `tooltip_id`= $tooltip_id; "; $row = mysql_fetch_row(mysql_query($query)); $tooltip_text = $row[0]; ?> <HTML><HEAD> <SCRIPT> ...javascript geblaaat.... var tekst = '<? $tooltip_text ?>' ...javascript geblaaat.... </SCRIPT> ... |
quote:Op zondag 13 april 2008 12:37 schreef redboyonline het volgende:
klen vraagje stel ik heb een telefoonnummer 0472123456
hoe verwijder ik de 0472 gedeelte en vervang ik het door 32472
1 2 3 4 | $oud = '0472'; $nieuw = '32472'; $nieuw_nummer = str_replace ( $oud, $nieuw, $telefoonnummer); |
thxquote:Op zondag 13 april 2008 12:45 schreef RiDo78 het volgende:
[..]
[ code verwijderd ]
En als $telefoonnummer een array is dan wordt $nieuw_nummer ook een array. Je kunt dus ineens een hele reeks van die nummers er doorheen rammen.
Dan moet je wel zeker weten dat '0472' maar 1 keer in het telefoonnummer voor komt, anders gaat het fout.quote:Op zondag 13 april 2008 12:45 schreef RiDo78 het volgende:
[..]
[ code verwijderd ]
En als $telefoonnummer een array is dan wordt $nieuw_nummer ook een array. Je kunt dus ineens een hele reeks van die nummers er doorheen rammen.
Inderdaad, beter zou zijn een substring of iets dergelijks te gebruiken..quote:Op zondag 13 april 2008 14:05 schreef SuperRembo het volgende:
[..]
Dan moet je wel zeker weten dat '0472' maar 1 keer in het telefoonnummer voor komt, anders gaat het fout.
quote:Op zondag 13 april 2008 14:05 schreef SuperRembo het volgende:
[..]
Dan moet je wel zeker weten dat '0472' maar 1 keer in het telefoonnummer voor komt, anders gaat het fout.
1 2 3 4 | $oud = '0472'; $nieuw = '32472'; $nieuw_nummer = preg_replace('/'.$oud.'/', $nieuw, $telefoonnummer, 1); |
1 2 3 4 | $oud = '0472'; $nieuw = '32472'; $nieuw_nummer = $nieuw.substr($telefoonnummer, 3) |
1 2 3 4 5 6 | $oud = '0472'; $nieuw = '32472'; if (substr($telefoonnummer, 0,4) == $oud) { $nieuw_nummer = $nieuw.substr($telefoonnummer, 3) } |
quote:Op zondag 13 april 2008 16:10 schreef DionysuZ het volgende:
maarrrrr.. als je ook telefoonnummers met een ander kengetal gaat parsen dan krijg je daar weer problemen meeaangezien die functie de eerste occurrence vervangt, en zodra het een ander kengetal is kan het getal verderop weer terugkomen in de rest van het telefoonnummer.
Ach de jouwe is 2 2log 47509,quote:Op zondag 13 april 2008 19:50 schreef JeRa het volgende:
[..]
Jij hebt best wel een vet user ID, powers of two
Het werkt als een tiet.quote:Op zondag 13 april 2008 12:02 schreef qu63 het volgende:
[..]
[ code verwijderd ]
Zo heb ik het iig gedaan
Kleruen zijn aan te passen aan je website
En ipv een link kan het ook een div, td, of wat dan ook zijn
Die div kan je overal op je site neergooien, dus ook in een footer ofzoquote:Op zondag 13 april 2008 22:47 schreef -J-D- het volgende:
[..]
Het werkt als een tiet.
Tering veel werk om het op mijn site te implementeren.
Het moet op zo'n 150 plaatsen geplaatst worden
Maar goed, het werkt
aw natuurlijk ^ startwaarde, ff vergeten joh =)quote:Op zondag 13 april 2008 19:30 schreef slakkie het volgende:
[..]
Als je het kengetgal wil wijzigen doe je toch simpel:
preg_replace('/^020/', '010', $tel_no);
Zal alleen de waarde veranderen indien het telefoonnummer begint met 020.
Om bijvoorbeeld wachtwoorden a.d.h.v. een custom format te genereren?quote:Op maandag 14 april 2008 08:51 schreef slakkie het volgende:
Je wilt jezelf gaan pijnigen? Waarom wil je regular expressions reversen?
Is de smarty template geen optie?quote:Op maandag 14 april 2008 00:02 schreef Janteh het volgende:
Goed, ik wil mijn volgende projectje maar eens in een framwork gaan maken, nadat ik ontdekt heb dat die toch wel tot mooie dingen in staat zijn. De vraag is nu alleen nog welke? Ik heb de volgende bekeken en zijn het eigenlijk net allemaal niet.
Ik heb een paar eisen:MVC Goede database class Goede documentatie Het liefst PHP 5
CakePHP: Mooi gebruik van MVC, ook PHP 5. De documentatie is op zich redelijk maar mist wel een wat uitgebreidere uitleg en goede voorbeelden. Ook denk ik dat ik te weinig kan met al die automatische koppelingen tussen de database en de models, zonder er goede documentatie over te hebben. Ook mis ik eigenlijk wel een paar goede extra basisfunctionaliteiten waar je wat aan hebt.
Code Igniter: Ook een mooi framework, helaas wel nog PHP 4. De documentatie is goed, ook denk ik mede doordat er een bedrijf achter zit, dit kan natuurlijk ook een nadeel zijn (?). Werkt prettig alhoewel ik dan wel weer het automatisch laden van functies mis zoals bij Kohana, komt denk ik ook mede doordat het nog in PHP 4 geschreven is (of niet?).
Kohana: Is een fork van Code Igniter en is wel op PHP 5 gebouwd. Ziet er heel goed uit maar de documentatie laat echt heel erg te wensen over en het is zo te zien nog niet heel erg oud, dus hoe het er in de toekomst mee verder gaat bevalt ook nog maar te zien natuurlijk. Op het eerste gezicht met een beetje spelen ziet het er iig wel veelbelovend uit. Toch maar weer overwegen.
Zend Framework: Heel kort bekeken, volgens mij out-of-the-box niet zo'n compleet framework als de anderen, wel heel erg goede documentatie maar het staat me eigenlijk gewoon niet aan.
Iemand nog ervaringen, suggesties of iets anders waardoor ik een goede keuze kan maken? Ik weet het echt niet..
Dat is een template engine en geen frameworkquote:Op maandag 14 april 2008 09:13 schreef dik_voormekaar het volgende:
[..]
Is de smarty template geen optie?
Oops..., sorry.quote:Op maandag 14 april 2008 09:21 schreef JeRa het volgende:
[..]
Dat is een template engine en geen frameworkernstig verschil.
Correct... en om reeksen in een bepaald format te genererenquote:Op maandag 14 april 2008 08:56 schreef JeRa het volgende:
Om bijvoorbeeld wachtwoorden a.d.h.v. een custom format te genereren?
Misschien ben je deze sites al tegengekomen met je kleine onderzoek:quote:Op maandag 14 april 2008 00:02 schreef Janteh het volgende:
Goed, ik wil mijn volgende projectje maar eens in een framwork gaan maken, nadat ik ontdekt heb dat die toch wel tot mooie dingen in staat zijn. De vraag is nu alleen nog welke? Ik heb de volgende bekeken en zijn het eigenlijk net allemaal niet.
Ik heb een paar eisen:MVC Goede database class Goede documentatie Het liefst PHP 5
Hee, dat ziet er wel interessant uitquote:Op maandag 14 april 2008 10:18 schreef slacker_nl het volgende:
Kijk eens naar de source code van deze Perl module en rewrite het naar PHP: http://search.cpan.org/~s(...)lib/String/Random.pm
www.pradosoft.com schijnt ook wel erg goed te zijn. Alleen door tijdgebrek niet voldoende tijd aan kunnen besteden jammergenoeg.quote:Op maandag 14 april 2008 00:02 schreef Janteh het volgende:
Goed, ik wil mijn volgende projectje maar eens in een framwork gaan maken, nadat ik ontdekt heb dat die toch wel tot mooie dingen in staat zijn. De vraag is nu alleen nog welke? Ik heb de volgende bekeken en zijn het eigenlijk net allemaal niet.
Ik heb een paar eisen:MVC Goede database class Goede documentatie Het liefst PHP 5
CakePHP: Mooi gebruik van MVC, ook PHP 5. De documentatie is op zich redelijk maar mist wel een wat uitgebreidere uitleg en goede voorbeelden. Ook denk ik dat ik te weinig kan met al die automatische koppelingen tussen de database en de models, zonder er goede documentatie over te hebben. Ook mis ik eigenlijk wel een paar goede extra basisfunctionaliteiten waar je wat aan hebt.
Code Igniter: Ook een mooi framework, helaas wel nog PHP 4. De documentatie is goed, ook denk ik mede doordat er een bedrijf achter zit, dit kan natuurlijk ook een nadeel zijn (?). Werkt prettig alhoewel ik dan wel weer het automatisch laden van functies mis zoals bij Kohana, komt denk ik ook mede doordat het nog in PHP 4 geschreven is (of niet?).
Kohana: Is een fork van Code Igniter en is wel op PHP 5 gebouwd. Ziet er heel goed uit maar de documentatie laat echt heel erg te wensen over en het is zo te zien nog niet heel erg oud, dus hoe het er in de toekomst mee verder gaat bevalt ook nog maar te zien natuurlijk. Op het eerste gezicht met een beetje spelen ziet het er iig wel veelbelovend uit. Toch maar weer overwegen.
Zend Framework: Heel kort bekeken, volgens mij out-of-the-box niet zo'n compleet framework als de anderen, wel heel erg goede documentatie maar het staat me eigenlijk gewoon niet aan.
Iemand nog ervaringen, suggesties of iets anders waardoor ik een goede keuze kan maken? Ik weet het echt niet..
Zal ook heel blij zijn als PHP6 stable wordt, namespaces zijn geweldig. De keren dat ik een XMLWriter/Reader class heb geschreven zonder te weten dat ze ook al in PHP5 aanwezig zijn, zijn helaas talloosquote:Op maandag 14 april 2008 23:18 schreef Tiemie het volgende:
Nadeel van Nusoap is dat een aantal namen van classes overeen komen met (standaard?) php5-modules.
Moet PHP6 jouw gebrek aan kennis van PHP compenseren?quote:Op maandag 14 april 2008 23:23 schreef JeRa het volgende:
[..]
Zal ook heel blij zijn als PHP6 stable wordt, namespaces zijn geweldig. De keren dat ik een XMLWriter/Reader class heb geschreven zonder te weten dat ze ook al in PHP5 aanwezig zijn, zijn helaas talloos
Geef toe, voorgedefiniëerde global classes zijn gewoon ernstig nutteloos en in zo'n geval alleen maar hinderlijkquote:Op maandag 14 april 2008 23:40 schreef SuperRembo het volgende:
[..]
Moet PHP6 jouw gebrek aan kennis van PHP compenseren?
Kijk eens naar de query die uitgevoerd wordt, dus naar de uitkomst van sprintf(). Dan zie je vast zelf wel wat er mis is.quote:Op dinsdag 15 april 2008 10:09 schreef Skyrise het volgende:
Wat is er mis met mijn query?
1 |
Nog lelijker, sprintf en dan nog $string . "andere string doen"... IEEK.quote:Op dinsdag 15 april 2008 11:46 schreef Chandler het volgende:
Ik zeg het wel even voor SR
de fout zit um hier
WHERE volgorde >= '%s',$form['volgorde'] AND `afdeling` = $form['afdeling']));
oftewel dit er van maken
[ code verwijderd ]
1 2 3 | $sql = sprintf("UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '%s' AND `afdeling` = '%s'", $form['volgorde'], $form['afdeling']); ?> |
* WyriHaximus zuchtquote:Op dinsdag 15 april 2008 11:46 schreef Chandler het volgende:
Ik zeg het wel even voor SR
de fout zit um hier
WHERE volgorde >= '%s',$form['volgorde'] AND `afdeling` = $form['afdeling']));
oftewel dit er van maken
[ code verwijderd ]
1 |
Maar wat is nou de query die uitgevoerd wordt?quote:Op dinsdag 15 april 2008 13:33 schreef Skyrise het volgende:
Hehe,... goedzo, het werkt alleen nog niet. Hij update nu uberhaupt geen volgorde meer.
`afdeling` en `volgorde` vallen wel allebei onder dezelfde entry (parent), waarom ik dus geen simpele mutatie (+1 voor alles gelijk aan en hoger voor `volgorde`) voor alles met dezelfde `afdeling` kan maken snap ik niet.
1 2 3 | echo $sql; $result = db_query($sql); |
1 2 3 4 | INNER JOIN SHOP_Subcategory_Lang ON ( SHOP_Subcategory.IdSubcategory = SHOP_Subcategory_Lang.SubcategoryId ) WHERE SHOP_Subcategory.CategoryId = '1' |
In het vorige topic had ik dit probleem gepost, en iemand kwam met deze onderstaande code:quote: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 'INNER JOIN SHOP_Subcategory_Lang ON ( SHOP_Subcategory.IdSubcat' at line 3
1 2 3 4 | FROM SHOP_Subcategory s INNER JOIN SHOP_Subcategory_Lang l ON s.IdSubcategory = l.SubcategoryId WHERE s.CategoryId = 1 |
Unknown table SHOP_Subcategory?? De tabelnaam is gewoon goed hoor :Pquote:Unknown table 'SHOP_Subcategory' in MULTI DELETE
Alvast bedanktquote:<?php
include "connect.php";
include "var.php";
session_start();
print "<link rel='stylesheet' href='style.css' type='text/css'>";
if(isset($_SESSION['topadmin']))
{
print "<table width=90%>";
print "<tr><td valign='top'>";
include "adminleft.php";
print "</td>";
print "<td valign='top' width=80%>";
print "<table class='maintable'>";
print "<tr class='headline'><td><center>Validate Sites</center></td></tr>";
print "<tr class='mainrow'><td>";
if(isset($_POST['submit']))
{
$ID=$_POST['ID'];
$selectsite="SELECT * from ts_sites where ID='$ID'";
$selectsite2=mysql_query($selectsite) or die("no select");
$selectsite3=mysql_fetch_array($selectsite2);
$validatesite="Update ts_sites set validated='1' where ID='$ID'";
mysql_query($validatesite) or die("Could not validate site");
print "Site Validated";
mail("$selectsite3[email]","Je site is goedgekeurd", "Je site $selectsite3[title] is goedgekeurd bij $title");
}
else if(isset($_POST['submit2']))
{
$ID=$_POST['ID'];
$selectsite="SELECT * from ts_sites where ID='$ID'";
$selectsite2=mysql_query($selectsite) or die("no select");
$selectsite3=mysql_fetch_array($selectsite2);
$deletesite="DELETE from ts_sites where ID='$ID'";
mysql_query($deletesite) or die("Could not delete site");
print "Site Deleted";
mail("$selectsite3[email]","Site verwijderd", "Helaas hebben wij je site $selectsite3[title] moeten verwijderen van $title");
}
else
{
$getnotvalidated="SELECT * from ts_sites where validated='0'";
$getnotvalidated2=mysql_query($getnotvalidated) or die("Could not get sites");
while($getvalidated3=mysql_fetch_array($getnotvalidated2))
{
print "<form action='validate.php' method='post'>";
print "Site: <A href='$getvalidated3[url]' target='_blank'>$getvalidated3[title]</a><br>";
print "<img src='$getvalidated3[button]'><br>";
print "Category:$getvalidated3[catparent]<br>";
print "Description: $getvalidated3[description]<br>";
print "<input type='hidden' name='ID' value='$getvalidated3[ID]'>";
print "<input type='submit' name='submit' value='validate'>";
print " <input type='submit' name='submit2' value='Delete'></form>";
}
}
print "</td></tr></table>";
print "</td></tr></table>";
}
else
{
print "Not logged in";
}
?>
De bedrijventabel bevat: id, naam, branche, website, algemeen emailadresquote:Op dinsdag 15 april 2008 20:43 schreef Xcalibur het volgende:
Scriptje maken wat de oude tabel leest, en daar doorheen loopt... In de nieuwe bedrijventabel een record aanmaken, ID opvragen en de hele meuk in de filialen tabel importeren?
Om hoeveel bedrijven gaat het? En komt er helemaal geen info in de bedrijventabel?
Je gebruikt de functie mail() om je berichten te verzenden.quote:Op dinsdag 15 april 2008 23:20 schreef bartoz het volgende:
Dit hieronder is een script om de pagina's goed of af te keuren. Als ze gekeurd zijn krijgen de leden een email, maar de afzender is md108183@geenpunt.nl (dus volgens mij onbekend)
Hoe kan ik dit veranderen?
[..]
Alvast bedankt
Ok bedankt....maar is het niet gewoon 1 zin die ik er tussen kan zetten?quote:Op dinsdag 15 april 2008 23:36 schreef svierkant het volgende:
[..]
Je gebruikt de functie mail() om je berichten te verzenden.
Als je deze pagina doorleest, kom je al een stuk verder.
wat staat er in var.php? ik denk dat daar de afzender vermeldt staat, of in de php.iniquote:Op dinsdag 15 april 2008 23:50 schreef bartoz het volgende:
[..]
Ok bedankt....maar is het niet gewoon 1 zin die ik er tussen kan zetten?
Ten eerste weet ik niet wat er allemaal in de bestanden staat, waaronder var.php. Je zult je iets meer in de code moeten verdiepen dan je nu doet.quote:Op dinsdag 15 april 2008 23:50 schreef bartoz het volgende:
[..]
Ok bedankt....maar is het niet gewoon 1 zin die ik er tussen kan zetten?
http://www.geeklog.net/faqman/index.php?op=view&t=38quote:Op dinsdag 15 april 2008 14:16 schreef Skyrise het volgende:
afdeling is een text, volgorde een integerik zal die quotjes even omwisselen.
De warning die ik krijg is:
UPDATE portfolio SET volgorde = volgorde +1 WHERE volgorde >= '17', AND `afdeling` = projects
Warning: Cannot modify header information - headers already sent
Ik stuur echter geen headers volgens mij, ff dubbelchecken.
edit:: Ik heb gekeken waar die headers dan verzonden worden, maar die andere .php waar hij naar verwijst
gaat in die line over thumbs, dus dat is het iig niet.
Dat worden user friendly urls genoemd. Met apache (webserver software) is dat vrij eenvoudig te realiseren dmv een zogenaamde mod rewrite.quote:Op zaterdag 19 april 2008 15:11 schreef fate het volgende:
Ik heb 2 vragen maar ben niet eens zeker of het wel onder php zelf valt.
Op een website die ik gemaakt heb gebruikte ik tot nu toe altijd om bijvoorbeeld naar een artikel te gaan een link zoals deze: www.blabla.com/blabla.php?id=965
Op fora zoals hier bijvoorbeeld op fok worden echter links gebruikt zoals bijvoorbeeld: forum.fok.nl/topic/1145006.
Ik vraag me echter af hoe je links maakt zoals de laatste? Dat je dus geen gebruik maakt van ?id=965 maar dat je gewoon /1145006 hebt. Ik zou namelijk de 2e manier willen gebruiken maar heb geen idee hoe je dat moet doen.
M'n vraag is nogal onduidelijk maar hopelijk begrijp je wat ik bedoel.
Mjah, als je via het cms de pagina opslaat schrijft je de url zo weg en dmv een stukje scripting zorg je dat het goed komt.quote:En dan nog een vraagje dat ook over links gaat:
(Als voorbeeld neem ik nu een artikel vanop de frontpage)
Op de FP staat momenteel een artikel dat 'Operatie onder hypnose in plaats van verdoving' noemt. Als je naar de link kijkt van deze pagina zie je dat de pagina -Operatie-onder-hypnose-in-plaats-van-verdoving.html heet. M'n vraag is nu hoe je ervoor zorgt dat een html pagina aangemaakt wordt (of hoe het ook juist werkt) met als naam de titel van je artikel? Het is veel praktischer om de titel in de link te hebben dan louter een id dat verwijst naar je database.
Bedankt alvast!
quote:Op zaterdag 19 april 2008 20:05 schreef Swetsenegger het volgende:
Hmz, eenvoudig wordt het in ieder geval niet.
Sowiezo klinkt bovenstaand verhaal niet iets waar je Excel voor zou moeten gebruiken, een database is dan beter op z'n plaats.quote:Op zaterdag 19 april 2008 19:59 schreef Five_Horizons het volgende:
Stel: er is een Excel-bestand met verschillende werkbladen (ongeveer 15) met daarin alle klantgegevens. De verschillende werkbladen zijn met elkaar gelinkt.
Zo is snel te zien welke producten de klanten hebben. (werkblad 1 -> NAWT-gegevens klant, werkblad 2 geeft product X aan en in dit werkblad staan dus alle verschillende producten X met de klantnummers. Werkblad 3 gaat over product Y, enz. enz.)
Elk product heeft ook nog een bepaalde provisiestructuur. Product X bij producent A geeft 10% van de omzet, product X van producent B geeft 15% van de omzet. Enz. enz.
Elk verkocht product wordt dagelijks toegevoegd en dus automatisch gelinkt aan de klant en alle andere gegevens van deze klant.
<...>
De uiteindelijke vraag is dan ook: is het mogelijk om deze Excel-sheet m.b.v. PHP in te lezen in MySQL, op een dusdanige manier dat alle koppelingen behouden blijven en er nog steeds dezelfde managementsrapportages uit te extraheren zijn?
Nee en nee.quote:Op zaterdag 19 april 2008 20:26 schreef Five_Horizons het volgende:
Ik vermoed dat het louter invullen van de velden niet zo'n probleem is (toch?). Maar dat is slechts een kopie van alle velden op de werkbladen. Er is dan wel een database, maar een hele platte.
Als alle werkbladen op een bepaalde manier aan elkaar gekoppeld zijn, moet het herschrijven van deze koppeling toch relatief eenvoudig zijn? (ik kan me voorstellen dat ik het nu heel erg simplificeer) Dan kunnen de gegevens die in MySQL staan op dezelfde manier gekoppeld worden.
Ik weet wat een database is. Het excel-bestand wordt daadwerkelijk als database gebruikt. Dat het geen database is, is wat anders. Toch is een eenvoudig Excel-bestand in te lezen in MySQL. De centrale vraag hier is dan ook of het in dit geval mogelijk is.quote:Op zaterdag 19 april 2008 20:47 schreef HenryHill het volgende:
[..]
Nee en nee.
Een database is heel wat anders als een Excel-werkblad. De data bestaat in beide gevallen in rijen en kolommen, maar daar houdt de vergelijking ook echt op. Zie bijv. deze link over hoe een database conceptueel opgezet moet worden.
Simpel, het laatste stuk na de / wordt gewoon genegeerd (m.b.v. mod rewrite). Daar kan je dus invullen wat je maar wil.quote:Op zaterdag 19 april 2008 15:11 schreef fate het volgende:
En dan nog een vraagje dat ook over links gaat:
(Als voorbeeld neem ik nu een artikel vanop de frontpage)
Op de FP staat momenteel een artikel dat 'Operatie onder hypnose in plaats van verdoving' noemt. Als je naar de link kijkt van deze pagina zie je dat de pagina -Operatie-onder-hypnose-in-plaats-van-verdoving.html heet. M'n vraag is nu hoe je ervoor zorgt dat een html pagina aangemaakt wordt (of hoe het ook juist werkt) met als naam de titel van je artikel? Het is veel praktischer om de titel in de link te hebben dan louter een id dat verwijst naar je database.
Wat bedoel je hier precies mee? Zijn de gegevens in dat Excel-bestand volledig gestructureerd, en stelt elke rij een apart element voor? Worden de gegevens programatisch toegevoegd en uitgelezen (bijv. via een ODBC koppeling die je Excel-bestand doet voorkomen als een database)?quote:Op zaterdag 19 april 2008 20:58 schreef Five_Horizons het volgende:
[..]
Ik weet wat een database is. Het excel-bestand wordt daadwerkelijk als database gebruikt. Dat het geen database is, is wat anders.
quote:Op zaterdag 19 april 2008 20:42 schreef HenryHill het volgende:
[..]
Sowiezo klinkt bovenstaand verhaal niet iets waar je Excel voor zou moeten gebruiken, een database is dan beter op z'n plaats.
quote:Dan: Ja, het is mogelijk om een Excel-bestand als een ODBC datasource te gebruiken, zodat je vanuit PHP (of MySQL) die data kunt benaderen, maar: deze methode is verre van stabiel en kent behoorlijk wat beperkingen.
Ik zou deze methode afraden, en ervoor kiezen om de data uit Excel te exporteren naar bijvoorbeeld CSV, en deze in MySQL in te lezen.
quote:Houdt er rekening mee dat je de werkbladen niet 1 op 1 over wilt nemen als tabellen in je database, en dat je dus eerst een goed database-schema (= tabelstructuur) zult moeten hebben. Hiervoor zul je de data moeten herschikken zodat het correspondeert met de vorm zoals je het in de database wilt hebben. Dit kan je voor de export (dus in Excel) of na de import (als je de 'ruwe' data in tijdelijke tabellen hebt geladen) doen - ik zou je de eerste optie aanraden.
Ook dat klinkt logisch voor me.quote:Ook zullen de formules die je in je Excel-bestand hebt gedefinieerd verloren gaan tijdens de migratie. Hiervoor zul je een database-oplossing moeten verzinnen (stored procedures, of views met calculated fields, bijv.).
Dat lukt inderdaad sowieso niet. Ik ga er van de week nog eens goed mee stoeien en mocht ik daar iets zinniger antwoorden kunnen geven, dan meld ik me weer.quote:En ik weet niet hoe jullie je management-rapportages nu maken, maar de kans is vrijwel 0% dat je deze 1 op 1 over kunt nemen als je de data in een database hebt zitten.
't Wordt een flinke klus iig.
je zal sowieso de aparte werkbladen als losse bestanden moeten opslaan. Vervolgens is ze stuk voor stuk inlezen niet zo'n probleem, vervolgens zal je de key's moeten aanbrengen. Je moet je alleen wel afvragen of de database structuur optimaal is.quote:Op zaterdag 19 april 2008 20:58 schreef Five_Horizons het volgende:
[..]
Ik weet wat een database is. Het excel-bestand wordt daadwerkelijk als database gebruikt. Dat het geen database is, is wat anders. Toch is een eenvoudig Excel-bestand in te lezen in MySQL. De centrale vraag hier is dan ook of het in dit geval mogelijk is.
Als dat blijkbaar niet zo is, dan is het niet zo.
PHP zou kunnen, maar wat je ook zou kunnen overwegen is een aparte reporting tool te gebruiken zoals Crystal Reports of Microsoft Reporting Services. Van de laatste weet ik iig dat deze in theorie ook overweg kan met andere RDBMSen dan MS SQL, maar in hoeverre dat in de praktijk ook echt praktisch is, durf ik niet te zeggen.quote:Op zaterdag 19 april 2008 21:07 schreef Swetsenegger het volgende:
[..]
je zal sowieso de aparte werkbladen als losse bestanden moeten opslaan. Vervolgens is ze stuk voor stuk inlezen niet zo'n probleem, vervolgens zal je de key's moeten aanbrengen. Je moet je alleen wel afvragen of de database structuur optimaal is.
De rapporten kan je vervolgens in PHP opbouwen.
Dat eerste ga ik even moeten nakijken hoe ik het juist moet doen. Dat tweede is eigelijk logisch, dom dat ik daar niet op kwam hoe je dat kan makenquote:Op zaterdag 19 april 2008 20:07 schreef Swetsenegger het volgende:
[..]
Dat worden user friendly urls genoemd. Met apache (webserver software) is dat vrij eenvoudig te realiseren dmv een zogenaamde mod rewrite.
[..]
Mjah, als je via het cms de pagina opslaat schrijft je de url zo weg en dmv een stukje scripting zorg je dat het goed komt.
Leuk he dat afrikaans... best leuk om te lezen (engels/ oud nederlands door elkaarquote:Op zaterdag 19 april 2008 22:47 schreef wobbel het volgende:
Ik had net m'n PHPMyAdmin op Afrikaans staan per ongeluk![]()
"Jou SQL-navraag is suksesvol uitgevoer"
"Beloer data"
"Kies asb. 'n databasis"
(n)iemand?quote:Op zaterdag 19 april 2008 11:18 schreef qu63 het volgende:
Ik weet dat je met PHP-auth je website kan 'beveiligen' (aub geen discussie of het wel veilig genoeg is, daar gaat het me nu niet om), maar kan je met PHP ook de username en password doorgeven? Zodat je die prompt niet krijgt..
http://nl2.php.net/manual/en/features.http-auth.phpquote:Op maandag 21 april 2008 17:07 schreef jusdOrange het volgende:
Verduidelijk je vraag eens?
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 | /* Check for values in $PHP_AUTH_USER and $PHP_AUTH_PW */ if ((!isset($PHP_AUTH_USER)) || (!isset($PHP_AUTH_PW))) { /* No values: send headers causing dialog box to appear */ header('WWW-Authenticate: Basic realm="My Private Stuff"'); header('HTTP/1.0 401 Unauthorized'); echo 'Authorization Required.'; exit; } else if ((isset($PHP_AUTH_USER)) && (isset($PHP_AUTH_PW))){ /* Values contain some values, so check to see if they're correct */ if (($PHP_AUTH_USER != "validname") || ($PHP_AUTH_PW != "goodpassword")) { /* If either the username entered is incorrect, or the password entered is incorrect, send the headers causing dialog box to appear */ header('WWW-Authenticate: Basic realm="My Private Stuff"'); header('HTTP/1.0 401 Unauthorized'); echo 'Authorization Required.'; exit; } else if (($PHP_AUTH_USER == "validname") || ($PHP_AUTH_PW == "goodpassword")) { /* if both values are correct, print success message */ echo "<P>You're authorized!</p>"; } } ?> |
zo is het dus niet, wel zoals je hieronder beschrijftquote:Op dinsdag 22 april 2008 08:11 schreef RiDo78 het volgende:
Het ligt eraan hoe de pagina zijn authenticatie regelt. Als dat door middel van een form gebeurd, dan zul je de inhoud van dat form moeten versturen en een cookie accepteren voordat je de bewuste pagina kunt downloaden.
en dat werkt dus helaas niet.quote:Als het door middel van de webserver-authenticatie gebeurd (dus met een popup waar je gebruikersnaam/wachtwoord in moet vullen) dan kun je de pagina simpelweg opvragen door alle gegevens in de URL mee te geven: http://username:password@webserver:port/dir/page.html
voordat ik het vertel, wil ik wel weten waarvoor je het wilt wetenquote:Op dinsdag 22 april 2008 10:03 schreef RiDo78 het volgende:
[..]
Bij gebrek aan PM, om welke website gaat het?
pmquote:Op woensdag 23 april 2008 09:02 schreef RiDo78 het volgende:
Username en password heb ik niet nodig, ik wil gewoon even kijken hoe die authorisatie onderwater geregeld is, om te voorkomen dat we langs elkaar heen praten.
Je kunt een socket openen. Dan stuur je zelf de headers en leest daarna de response uit.quote:Op maandag 21 april 2008 17:25 schreef qu63 het volgende:
nu wil ik alleen een pagina, die niet van mijzelf is, includen in een pagina zodat ik niet steeds username en ww in hoef te vullen
en hoe doen we dat?quote:Op woensdag 23 april 2008 10:27 schreef SuperRembo het volgende:
[..]
Je kunt een socket openen. Dan stuur je zelf de headers en leest daarna de response uit.
quote:Op woensdag 23 april 2008 13:13 schreef SuperRembo het volgende:
[..]
Daartoe lezen we de f... manual :P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $fp = fsockopen("server.busbroker.nl", 80, $errno, $errstr, 30); if (!$fp) { echo "$errstr ($errno)<br />\n"; } else { $out = "GET / HTTP/1.1\r\n"; $out .= "Host: www.example.com\r\n"; $out .= "Connection: Close\r\n\r\n"; fwrite($fp, $out); while (!feof($fp)) { echo fgets($fp, 128); } fclose($fp); } ?> |
1 2 | $out.= "Authorization: Basic " . base64_encode($credentials) |
nope.quote:Op woensdag 23 april 2008 13:56 schreef RiDo78 het volgende:
Aii... NTLM authenticatie... dat kan nog rottig worden. Hopen dat de server ook Basic wil slikken...
maar voeg deze eens toe:
[ code verwijderd ]
ik moet dan eerst nog een NTLM-Proxy opzetten, heb er wel een gevonden, maar die werkt met Python, en ik heb geen diee of mn webhost het ondersteundquote:Op woensdag 23 april 2008 14:05 schreef RiDo78 het volgende:
Het probleem wordt hier beschreven, maar ik heb het niet getest...
http://blog.thinkphp.de/a(...)ources-with-PHP.html
gwoon $array_met_elke_regel_op_een_rij = file ( "C:\bestand_met_meerdere_regels.ext");quote:Op woensdag 23 april 2008 15:52 schreef ursel het volgende:
Voor het inlezen van een file per lijn gebruiken we de preg_match functie:
$aData = preg_split("/\r\n/", $fileData['content']);
Alleen nu krijgen we ook files binnen welke opeens een \n als reguliere expressie moeten hebben.
Weet iemand hoe we de preg_match het beste op kunnen stellen dat we ongeacht het type "new line" we elke lijn in de array kunnen stouwen?
Soms zijn dingen makkerlijker dan je wel eens wil denken..quote:Op woensdag 23 april 2008 16:04 schreef ralfie het volgende:
[..]
gwoon $array_met_elke_regel_op_een_rij = file ( "C:\bestand_met_meerdere_regels.ext");
Ik dacht er ook heel simpel over, maar helaasquote:Op woensdag 23 april 2008 15:40 schreef SuperRembo het volgende:
Ok, dan is 't toch iets ingewikkelder dan ik in eerste instantie veronderstelde
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | if ($p="nh") echo "Noord-Holland"; elseif ($p="nb") echo "Noord-Branbant"; elseif ($p="zh") echo "Zuid-Holland"; else echo "Verkeerde invoer, probeer het opnieuw!"; ?> |
quote:Op donderdag 24 april 2008 10:56 schreef nlboy het volgende:
Ik heb denk ik een hele simpele vraag, maar ik kom er niet uit.
Het volgende wil ik graag hebben:
Als ik in het adresbalk test.php?p=nh in typ wil ik als echo Noord-Holland hebben.
Wanneer ik test.php?p=nb invoer wil ik als echo Noord-Brabant hebben.
Kortom elke provincies wil ik zo benaderen en dan als echo te tekst van de provincie.
Ik heb al iets zitten maken, maar helaas lukt het me niet om de goede resultaat te krijgen. Het volgende heb ik:
[ code verwijderd ]
Ik krijg alleen maar Noord-Holland te zien i.pv. bijvoorbeeld Noord-Brabant of ik krijg geen foutmelding wanneer ik niks invul. Wat doe ik fout?Alvast bedankt!
1 2 3 4 5 6 7 8 9 10 11 12 13 | nh => "Noord-Holland", nb => "Noord-Brabant", ); # Dan kan je heel makkelijk die conversie doen: $input = 'nh'; if (array_key_exists( $input, $plaatnamen)) { printf("De plaatsnaam die hoort bij %s is %s\n", $input, $plaatsnamen[$input]); } else { printf("Kan geen plaatsnaam vinden voor %s\n", $input); } |
http://www.dynamicajax.com/fr/AJAX_Suggest_Tutorial-.htmlquote:Op donderdag 24 april 2008 22:50 schreef wobbel het volgende:
Hoe kan ik zelf zoiets maken als dit?
http://www.google.com/webhp?complete=1&hl=en&btnG=Google+Search
Dat ie dus automatisch aanvult met gegevens uit de database? Dat het met AJAX werkt snap ik wel, maar hoe doe ik dat precies?is er al zoiets kant-en-klaar wat ik om kan bouwen zeg maar?
Even snelquote:Op vrijdag 25 april 2008 10:25 schreef Flipper01 het volgende:
Ik wil een archief maken van alle nieuwsberichten geordend per maand. Ik heb nu in MySQL een kolom datum waarin de datum als DATETIME wordt weergegeven. Ik wil nu graag het volgende resultaat bereiken:
- 2008
januari (2)
april (1)
mei (8)
.....
Hoe kan ik dit voor elkaar krijgen?
1 2 3 | FROM posts GROUP BY MONTH(datumkolom) |
Ik heb hem wat aangepast, zie deze link die je verder kan helpenquote:Op vrijdag 25 april 2008 10:38 schreef Flipper01 het volgende:
Waarvoor dient DATEPART en kan ik dit ook op een linux server gebruiken?
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 | #create a sql backup and send it to your e-mail address //define settings //database host DEFINE('dbhost','localhost'); //database name DEFINE('dbnaam','dbnaam'); //database user DEFINE('dbuser','dbuser'); //database passwordt DEFINE('dbpass','dbpass'); //domeinnaam DEFINE('domein','domein.nl'); //doel DEFINE('email','backup@domein.nl'); //connect with database $link = mysql_connect(dbhost,dbuser,dbpass) or die('No datbase conection could be establised'); mysql_select_db(dbnaam,$link) or die('No datbase selected'); //query to recive table names $query = mysql_query('SHOW TABLE STATUS') or die(mysql_error()); $sql_backup = ''; //whileloop to loop trough every table while($row = mysql_fetch_assoc($query)) { //show sql query to rebuild the query $sql = 'SHOW CREATE TABLE '.$row['Name'].''; //exucte error or give a error $query2 = mysql_query($sql) or die(mysql_error()); //create sql $sql_backup.="\r\n#Create table ".$row['Name']."\r\n\r\n"; $out = mysql_fetch_assoc($query2); $sql_backup.=$out['Create Table'].";\r\n\r\n"; $sql_backup.="#Dump data\r\n\r\n"; //SQL code to select everything for table $sql = 'SELECT * FROM '.$row['Name']; $out = mysql_query($sql); $sql_code = ''; //loop trough the colloms while($code = mysql_fetch_array($out,MYSQL_ASSOC)) { $sql_code .= "INSERT INTO ".$row['Name']." SET "; foreach($code as $insert => $value) { $sql_code.=$insert ."='".addslashes($value)."',"; } $sql_code = substr($sql_code, 0, -1); $sql_code.= ";\r\n"; } $sql_backup.= $sql_code; } //generade a unique id $unique = md5(uniqid(time())); //message $message = "Backup procedure van database: ".dbnaam." is met succes verlopen. U vind in de bijlage een backup van de inhoud gemaakt op. ".date('d-m-Y H:i:s')."\r\n Autobot"; //maak headers aan //form header $headers = "From: Autobot <noreply@".domein.">\r\n"; //terug sturen naar een niet bestaand mail adress (noreply@domein.nl) $headers .= "Reply-To: Autobot <noreply@".domein.">\r\n"; //vertel dat het een mine versie is $headers .= "MIME-Version: 1.0\r\n"; //email bestaat uit meerdere bestanden dus vertel wat de scheidings teken is en dat het een multipart is $headers .= "Content-Type: multipart/mixed; boundary=\"".$unique."\"\r\n"; //we zenden een attachment mee $headers .= "Content-Disposition: attachment\r\n"; //generenen een body. Dit is een multi part gezeik $body.= "This is a multi-part message in MIME format.\r\n"; $body.= "\r\n"; //boundary $body.= "--".$unique."\r\n"; //content type + charater set (iso in dit geval) $body.= "Content-Type: text/plain; charset=iso-8859-1\r\n"; //codering (7 bit) $body.= "Content-Transfer-Encoding: 7bit\r\n"; $body.= "\r\n"; //het bericht $body.= $message ."\r\n"; //boundaty $body.= "--".$unique."\r\n"; //content type + naam bestand (database.sql) $body .= "Content-Type: application/octet-stream; name=database.sql\r\n"; //codering $body .= "Content-Transfer-Encoding: base64\r\n"; //als bijlage toegevoegd $body.= "Content-disposition: attachment\r\n"; $body .= "\n"; //de inhoud van het bestand $body .= chunk_split(base64_encode($sql_backup)) . "\r\n"; //zet alles op email! //hier kan wat tijdsverschil in zitten! mail(email,'Mysql backup '.date('d-m-Y H:i:s'),$body,$headers); ?> |
1 2 3 4 5 | JOIN SHOP_Products_Lang ON SHOP_Products_Lang.ProductId = SHOP_Products.IdProduct JOIN SHOP_Afbeeldingen ON SHOP_Afbeeldingen.ProductId = SHOP_Products.IdProduct WHERE SHOP_Products.SubcategoryId = '1' AND SHOP_Products_Lang.LanguageId = '1' |
Sorry voor m'n n00b vragen.. :$quote:Op vrijdag 25 april 2008 10:41 schreef JortK het volgende:
Ik heb hem wat aangepast, zie deze link die je verder kan helpen
En op wat voor server maakt niet uit natuurlijk
1 2 3 | $query = "SELECT *, DATE_FORMAT(datum, '%d') AS dag, DATE_FORMAT(datum, '%c') AS maand, DATE_FORMAT(datum, '%Y') AS jaar, DATE_FORMAT(datum, '%H:%i') AS tijd FROM weblog ORDER BY -datum LIMIT 0,8"; ?> |
Daar doet MySQL niet moeilijk over.quote:Op vrijdag 25 april 2008 22:02 schreef Arjan321 het volgende:
In principe is de syntax "INNER JOIN", niet "JOIN". Weet niet of mysql daar moeilijk over doet.
Ja, ik heb in SHOP_Afbeeldingen 1 record met ProductId = 1quote:Op vrijdag 25 april 2008 22:02 schreef Arjan321 het volgende:
In principe is de syntax "INNER JOIN", niet "JOIN". Weet niet of mysql daar moeilijk over doet.
Weet je zeker dat er in alle 3 de tabellen de juiste gegevens staan?
Probeer eens LEFT JOIN ipv gewoon JOIN.quote:Op vrijdag 25 april 2008 18:18 schreef wobbel het volgende:
Ik wil nu alle producten met SubcategoryId = 1 weergeven, en daarbij ook alle data uit Products_Lang en Afbeeldingen die hetzelfde product ID hebben.
De tabel SHOP_Afbeeldingen hoeft niet perse records te hebben met hetzelfde ProductIDquote:Op zaterdag 26 april 2008 13:27 schreef Farenji het volgende:
[..]
Probeer eens LEFT JOIN ipv gewoon JOIN.
Ja, daarom juist! Daarom krijg je met een INNER JOIN geen resultaten!!quote:Op zaterdag 26 april 2008 13:52 schreef wobbel het volgende:
[..]
De tabel SHOP_Afbeeldingen hoeft niet perse records te hebben met hetzelfde ProductID
Hehequote:Op zaterdag 26 april 2008 14:03 schreef Farenji het volgende:
[..]
Ja, daarom juist! Daarom krijg je met een INNER JOIN geen resultaten!!
1 2 3 4 | $datum = date_create('NOW'); echo $datum; ?> |
Ooi van het datatype datetime gehoord in MySQL?quote:Op zondag 27 april 2008 11:35 schreef Flipper01 het volgende:
Hoe kan ik de huidige tijd als DateTime in een string zetten? Dit ivm het plaatsen in MySQL.
Ik heb nu het volgende:
[ code verwijderd ]
Maar krijg een foutmelding..
1 2 3 | $datum = date("Y-m-d H:i:s"); ?> |
Hoe kan ik da huidige tijd hierin krijgen als ik m'n tabel op de volgende manier aanvul:quote:Op zondag 27 april 2008 11:39 schreef JortK het volgende:
Ooi van het datatype datetime gehoord in MySQL?
1 2 3 4 5 6 7 | $query = "INSERT INTO weblog_reactie (weblogid, naam, email, website, tekst, ip, spam, datum) VALUES ('$formId', '$formNaam', '$formEmail', '$formWebsite', '$formTekst', '$_SERVER[REMOTE_ADDR]', 'spam', 'NOW')"; mysql_query($query) or die (mysql_error()); ?> |
Dit zocht ik!quote:Op zondag 27 april 2008 11:44 schreef Farenji het volgende:
De functie date_create geeft en DateTime object terug, dus geen string. Ik vind dit echt weer zo'n typische vage php implementatie, gaat ook wel lekker tegen alle verwachting en conventies in maar dat zijn we gewend van php.
Als je gewoon een string wil hebben die in een mysql datetime past, dan zou ik het simpel doen met date:
[ code verwijderd ]
Dat geeft dus iets terug als "2008-04-27 11:44:25".
http://nl3.php.net/manual/en/function.date.php
1 |
1 |
1 2 3 4 | $visitorIp = $_SERVER['REMOTE_ADDR']; $queryRetreiveIp = mysql_query("SELECT * FROM result WHERE poll_id = $pollId AND ip = $visitorIp ") or die("queryRetreiveIp ".mysql_error()); ?> |
1 2 3 4 | $visitorIp = $_SERVER['REMOTE_ADDR']; $queryRetreiveIp = mysql_query("SELECT * FROM result WHERE poll_id = '" . mysql_real_escape_string($pollId) . "' AND ip = "' . mysql_real_escape_string($visitorIp) . "' ") or die("queryRetreiveIp ".mysql_error()); ?> |
Even een vraag die aansluit op hetvolgende:quote:Op donderdag 24 april 2008 18:46 schreef Piles het volgende:
Even kort vraagje: hoe kun je dmv php checken of een site online is? Dus even proberen om een connectie te maken, zo niet: mailtje sturen. Dit wil ik namelijk graag in een cron job hebben (uiteraard op andere host)
Opgelost: file() doet wat ik wil
Hoe vaak staan deze fopen_wrappers uit (bij bijvoorbeeld hosters)? Ik doel dan op allow_url_fopen aangezien je deze niet via ini_set() kan setten voor zover ik de documentatie lees.quote:A URL can be used as a filename with this function if the fopen wrappers have been enabled. See fopen() for more details on how to specify the filename and List of Supported Protocols/Wrappers for a list of supported URL protocols.
Strings moeten tussen aanhalingstekens, getallen niet. Of nouja, MySQL maakt zich er niet zo druk om als je wel aanhalingstekens om getallen zet, maar het is netter om het niet te doen. En een IP-adres is geen getal maar een string, dus moet aanhalingstekens.quote:Op maandag 28 april 2008 00:33 schreef Igen het volgende:
Sowieso moet je de waarden tussen 'aanhalingstekentjes' zetten. Doe je dat niet, dan denkt MySQL dat het een kolom-naam is - en een IP-adres is uiteraard geen geldige naam voor een kolom...
In het voorbeeldje van Interpidity is dit trouwens al verbeterd.
1 2 3 4 5 | LEFT JOIN SHOP_Products_Lang ON SHOP_Products_Lang.ProductId = SHOP_Products.IdProduct LEFT JOIN SHOP_Afbeeldingen ON SHOP_Afbeeldingen.ProductId = SHOP_Products.IdProduct WHERE SHOP_Products.SubcategoryId = '1' AND SHOP_Products_Lang.LanguageId = '1' |
GROUP BY is your best friendquote:Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
[ code verwijderd ]
Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.
Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output
Product 1
Product 1
Product 2
Product 2
Product 2
Product 3
Product 3
Product 3
Product 3
Product 3
Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
Ik heb session_start() helemaal bovenaan staan.quote:Op dinsdag 29 april 2008 13:37 schreef slacker_nl het volgende:
Note: If you are using cookie-based sessions, you must call session_start() before anything is outputted to the browser.
Gebruikt je cookie based sessions?
1 2 | session_start(); |
Ligt er aan wat je wil laten zien. Als je bij elk product een wisselend aantal plaatjes wilt laten zien, dan zal je het in php moeten oplossen. Als je geen plaatjes wil laten zien, waarom join je dan tegen de afbeeldingen tabel? Als je per product 1 plaatje wil laten zien dan moet je de query aanpassen, maar hoe hangt er weer van af welk plaatje je wil laten zien.quote:Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
[ code verwijderd ]
Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.
Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output
[...]
Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
1 2 3 4 | RewriteCond %{HTTP_REFERER} !^http://(.+\.)?123swets\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ RewriteRule .*\.(jpe?g|gif|bmp|png)$ /image/hotlink.gif [L] |
Ik zou hoe dan ook eerst de referer checken op ^$ want en daarna pas je ^123swets.com$. Het is logischer om te checken of de referer bestaat en om dan te checken of het uit het 123swets.com domain komt. Maar dat heeft wellicht niks met je probleem te maken. Of misschien ook wel:quote:Op woensdag 30 april 2008 13:24 schreef Swetsenegger het volgende:
.htaccess probleempje
[ code verwijderd ]
hotlinking wordt wel geblokkeerd, maar alternatieve image wordt niet getoont. Wat doe ik fout?
Volgens mij komt dat door de [NC] en de volgorde van de checks. Als de referer leeg is moet ie de check skippen, maar omdat je eerst checked of het vanuit swets123.com komt en dan door de NC ervoor zorgt dat ie de originele URL weer gaat reprocesses en je dus zorgt voor een loop in je rewrites.quote:Firefox has detected that the server is redirecting the request for this address in a way that will never complete.
klinkt niet zo heel raar neequote:Op woensdag 30 april 2008 14:59 schreef Swetsenegger het volgende:
Hij blokkeerde mijn hotlink image ookDie moet je andere extensie geven dan de fileextensies die je blokkeert
quote:Op woensdag 30 april 2008 14:59 schreef Swetsenegger het volgende:
Hij blokkeerde mijn hotlink image ookDie moet je andere extensie geven dan de fileextensies die je blokkeert
1 2 3 4 5 | RewriteCond %{HTTP_REQUEST} !^/image/hotlink.gif RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(.+\.)?123swets\.com/ [NC] RewriteRule .*\.(jpe?g|gif|bmp|png)$ /image/hotlink.gif [L] |
Dan moet ie een 404 geven ipv een 403 forbidden (Konqueror) en geen redirect errors (FF/Safari).quote:Op woensdag 30 april 2008 15:37 schreef Swetsenegger het volgende:
hotlink.gif bestaat nu niet meer. het is nu hotlink.jpe
ik zie je hotlink plaatje nuquote:
MIjn 404 en 403 verwijst naar de index pagina. Ik heb hier geen errors. Misschien cache?quote:Op woensdag 30 april 2008 15:40 schreef slakkie het volgende:
[..]
Dan moet ie een 404 geven ipv een 403 forbidden (Konqueror) en geen redirect errors (FF/Safari).
1 2 3 4 5 6 | $part = trim($part); $part = strip_tags($part); $part = str_replace("\t", "", $part); $part = str_replace(" ", "", $part); ?> |
Zijn het geen linefeeds of carriage returns?quote:Op woensdag 30 april 2008 20:19 schreef Piles het volgende:
Ik zit met een heel raar probleem, vind ik zelf. Ik heb een html-bestand met daarin allerlei tabs en spaties. Die wil ik er uit hebben. Ik probeer dit:
[ code verwijderd ]
Alle spaties tussen woorden e.d. verdwijnen, maar toch blijven er nog een heleboel over. Wat voor 'soort' spaties kunnen dat zijn, en hoe krijg ik ze weg
1 2 3 | $string = str_replace(array("\t", ''), '', $string); ?> |
quote:Op woensdag 30 april 2008 20:25 schreef JortK het volgende:
Zijn het geen linefeeds of carriage returns?
1 2 3 | $part = trim( preg_replace( '/\s+/', ' ', $part) ); ?> |
Veranderd niks aan de situatiequote:Op woensdag 30 april 2008 20:26 schreef CraZaay het volgende:
Zijn het spaties in de broncode ("view source")? Dit kan overigens ook:
[ code verwijderd ]
Dat snap ik, het ging me vooral om het DRY-karakter en het gebruik van dubbele/enkele quotes.quote:
1 2 3 4 5 6 7 | function checkempty($var){ if(empty($var) ){ echo "$var niet ingevoerd"; } } ?> |
1 2 3 4 5 6 7 8 9 | function ce($var,$dn){ if(empty($var) ){ echo $dn." niet ingevoerd"; } } ce($name,'naam') ?> |
Kan ook, maar wat SuperRembo zegt klopt, ik wil eigenlijk een userfriendly name eruit hebben. Dus nu nog een manier vinden om 10 waardes in te voeren. Ik kan het handmatig doen, dan heb ik 10 regels code. kan het slimmer?quote:Op donderdag 1 mei 2008 18:36 schreef Intrepidity het volgende:
$var is de naam van de variabele toch al?
als je checkempty("blaat") aanroept moet ie checken of $blaat leeg is lijkt me toch?
dan is het
if(empty($$var))
{
// $var nu outputten.. $var uit $$var word dus omgezet naar "blaat" --> $blaat
}
1 2 3 4 5 6 7 8 9 | foreach(not_set( array('var1'=>'naam','var2'=>'lft','var3'=>'tijd','var4'=>'geslacht') as $var ) echo "hee dombo, je hebt '$var' niet gezet!"; function not_set($arr) { $out=array(); foreach($arr as $v=>$x) if(empty($GLOBALS[$v])) $out[]=$x; return $out; } ?> |
Mmm, dat soort code kan ik allemala nietquote:Op donderdag 1 mei 2008 23:05 schreef ralfie het volgende:
umm, waarom niet gwoon een arraytje?
[ code verwijderd ]
mss niet grammaticaal correct, maar het idee klopt toch?
Of gebruik func_get_args() icm met count (of func_num_args()).quote:Op donderdag 1 mei 2008 19:15 schreef SuperRembo het volgende:
Je kunt een functie maken waar je een willekeurig aantal parameters aan mee kunt geven; steeds afwisselend een var en een naam. Daarvoor gebruikt je func_get_arg().
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 | function is_empty() { $args = func_get_args(); $result = array(); if (count($args)) { foreach($args as $v) { if (is_array($v)) { $result = array_merge($result, call_user_func_array(__FUNCTION__, $v)); } else { if (empty($GLOBALS[$v])) { $result[] = $v; } } } return $result; } trigger_error(sprintf("%s requires at least 1 parameter\n", __FUNCTION__), E_USER_NOTICE); return $result; } function is_empty_2defaults() { $result = array(); if (func_num_args()) { $args = func_get_args(); foreach($args as $v) { if (!is_array($v)) { continue; } $tmp = is_empty(array_keys($v)); foreach($tmp as $v2) { $GLOBALS[$v2] = $v[$v2]; } $result = array_merge($result, $tmp); } } else { trigger_error(sprintf("%s requires at least 1 parameter\n", __FUNCTION__), E_USER_NOTICE); } return $result; } $test = "test"; $leeg = '0'; $niks = null; $weer_niks; $array = array(); print_r(is_empty("test")); print_r(is_empty("test", "leeg", "niks", "weer_niks", "array")); # Recursieve arrays print_r(is_empty(array(array(0)))); # En als je met hashes gaat werken: $hash = array("var1" => "leeg"); print_r(is_empty(array_values($hash))); # Maar dit mag ook: print_r(is_empty($hash)); $hash = array("glas" => "half vol"); $tmp = is_empty(array_keys($hash)); foreach($tmp as $v) { printf("%s is maar %s", $v, $hash[$v]); } # Als je default waardes wilt hebben voor de lege velden... $hash_defaults = array("user" => "guest", "password" => "guest"); is_empty_2defaults($hash_defaults); printf("User: %-8s\tPassword: %s\n", $user, $password); ?> |
quote:Op vrijdag 2 mei 2008 05:00 schreef slakkie het volgende:
Heb er maar een recursieve functie van gemaakt, accepteerd zowel arrays, als losse scalars. Persoonlijk zou ik er ook nog check bijgooien om te zien of $GLOBALS[$v] ook gelijk is aan 0 aangezien dat ook een boolean value kan zijn.
[ code verwijderd ]
1 2 3 | trigger_error(sprintf("%s requires at least 1 parameter\n", __FUNCTION__, E_USER_NOTICE)); ?> |
Waarom zou je dat überhaupt willen? Als je bij de beker het drank_id opslaat dan kun je altijd de drank_naam weer achterhalen.quote:Op vrijdag 2 mei 2008 12:57 schreef boskameel het volgende:
Stel je voor: Ik heb een klasse die beker heet, en ik heb een klasse die drank heet.
In de klasse beker heb je de volgende vars:
beker_id
beker_inhoud
beker_materiaal
beker_drank
Daarnaast heb ik de klasse drank, met daarin de volgende vars
drank_id
drank_naam
Ik wil een nieuwe beker aanmaken, want ik heb dorst. In het veld beker_drank van de klasse beker komt een waarde, een getal. Dit getal moet overeenkomen met drank_id uit de klasse drank. Wanneer deze overeenkomt, moet de inhoud van drank_naam worden ingevuld in het veld beker_drank. Ik denk dat het wel mogelijk is, maar hoe doe ik dit dan?
Misschien met foreign keys?quote:Op vrijdag 2 mei 2008 13:05 schreef Light het volgende:
[..]
Waarom zou je dat überhaupt willen? Als je bij de beker het drank_id opslaat dan kun je altijd de drank_naam weer achterhalen.
Dan maak je een JOIN over die twee tabellen, als je tenminste wilt weten welke drank er in een beker zit. Zo'n id is een makkelijk, vast punt. Ander voordeel is dat als je "bier" wilt vervangen door "Heineken" (om verwarring met "Grolsch" te voorkomen bijvoorbeeld) dan hoef je dat maar op 1 plek aan te passen.quote:Op vrijdag 2 mei 2008 13:23 schreef boskameel het volgende:
Als ik bv gebruik maak van een database, en een tabel beker en drank heb. Of denk ik nu te moeilijk?
Ja, dan moet je dus die ID's laten staan en niet ineens ID's door namen gaan vervangen. Da's niet logisch. Dat het in PHP kan, komt alleen maar omdat het loosely typed is.quote:
1 2 | echo $test; |
ai ik zie het al, zit met de verkeerde var te spelenquote:Op vrijdag 2 mei 2008 14:14 schreef CraZaay het volgende:
Die code toont bij mij gewoon je string. Als integer (zonder quotes dus) komt 'ie dichter bij jouw weergave in de buurt (1.0305006007E+77).
Hier ook..quote:Op vrijdag 2 mei 2008 14:14 schreef CraZaay het volgende:
Die code toont bij mij gewoon je string. Als integer (zonder quotes dus) komt 'ie dichter bij jouw weergave in de buurt (1.0305006007E+77).
Kan drank bestaan zonder beker?quote:Op vrijdag 2 mei 2008 12:57 schreef boskameel het volgende:
Stel je voor: Ik heb een klasse die beker heet, en ik heb een klasse die drank heet.
In de klasse beker heb je de volgende vars:
beker_id
beker_inhoud
beker_materiaal
beker_drank
Daarnaast heb ik de klasse drank, met daarin de volgende vars
drank_id
drank_naam
Ik wil een nieuwe beker aanmaken, want ik heb dorst. In het veld beker_drank van de klasse beker komt een waarde, een getal. Dit getal moet overeenkomen met drank_id uit de klasse drank. Wanneer deze overeenkomt, moet de inhoud van drank_naam worden ingevuld in het veld beker_drank. Ik denk dat het wel mogelijk is, maar hoe doe ik dit dan?
1 2 3 4 | $flesje = new fles($drankje->get_contents()) $bekertje = new beker(); $bekertje->vul($flesje->get_contents()); |
Maak er eens SELECT DISTINCT * .... vanquote:Op dinsdag 29 april 2008 13:50 schreef wobbel het volgende:
Oke, na wat geworstel heb ik aan de hand van dit topic de volgende query gekregen:
[ code verwijderd ]
Het probleem is nu alleen, dat als één artikel meerdere afbeeldingen heeft, het product ook meerdere keren erin komt te staan.
Stel ik heb 3 producten, en 1tje heeft 2 plaatjes, eentje heeft 3 plaatjes en de ander heeft 5 plaatjes...dan krijg ik deze output
Product 1
Product 1
Product 2
Product 2
Product 2
Product 3
Product 3
Product 3
Product 3
Product 3
Maar hij moet gewoon Product 1, Product 2 en Product 3 weergeven
heineken verwarren met grolschquote:Op vrijdag 2 mei 2008 13:38 schreef Light het volgende:
[..]
Dan maak je een JOIN over die twee tabellen, als je tenminste wilt weten welke drank er in een beker zit. Zo'n id is een makkelijk, vast punt. Ander voordeel is dat als je "bier" wilt vervangen door "Heineken" (om verwarring met "Grolsch" te voorkomen bijvoorbeeld) dan hoef je dat maar op 1 plek aan te passen.
Duidelijk gevalletje van ja, en zelfs tweequote:Op vrijdag 2 mei 2008 13:02 schreef Light het volgende:
[..]
[ code verwijderd ]
Je geeft aan sprintf 1 string en 2 andere parameters mee, terwijl er in die string maar 1 placeholder is. Gevalletje haakjes verkeerd?
Een simpele oplossing is:quote:Op vrijdag 2 mei 2008 14:10 schreef webbyplus het volgende:
Hallo, waarschijnlijk super simpel op te lossen, maar het lukt me niet;
Ik heb de volgende code:
[ code verwijderd ]
De STRING $test bevat 76 cijfers. Echter als ik hem nu echo krijg ik zoiets te zien : "1.0305006007E+047". Hoe kan ik mijn string correct tonen? bvd
1 2 | echo 0 + $test; |
Perl doet hetzelfdequote:Op vrijdag 2 mei 2008 16:49 schreef CraZaay het volgende:
[..]
Mooi he dat PHP... een int en een string bij elkaar optellen
quote:Op vrijdag 2 mei 2008 16:49 schreef CraZaay het volgende:
[..]
Mooi he dat PHP... een int en een string bij elkaar optellen
Das waar, maar echo (float) $test werkt ook, en is wellicht nog netter ookquote:Op vrijdag 2 mei 2008 17:10 schreef CraZaay het volgende:
[..]
JavaScript en allerlei andere loosely typed talen ook, maar dat maakt het nog niet netter
1 |
Ik zie niks verkeerd aan deze query om heel eerlijk te zijn. Maar toegegeven SQL is niet mijn sterkste ding.quote:Op zaterdag 3 mei 2008 14:16 schreef Dzy het volgende:
Ik heb een vraagje
Ik ben bezig met een site waar een heleboel gedichten op komen te staan van dezelfde dichter. Deze kan hij taggen met meerdere tags, die allemaal weer in een aparte tabel tags staan. Omdat er meerdere tags bij meerdere gedichten kunnen gebruik ik een koppeltabel gedichten_tags. Alleen hoe kan ik nu mooi in 1 query alle gedichten opvragen die bij 1 of meer tags horen?
Ik zat zelf al een beetje te prutsen met de volgende query:
[ code verwijderd ]
Dit zou dan alle gedichten opvragen die een tag hebben van 1, 3 of 4 maar de bedoeling is natuurlijk dat ze alle drie zo getagd moeten zijn. En voor mijn gevoel is dit een ranzige query, maar dat kan ik verkeerd hebben. Ingewikkelde queries ben ik nog niet zo goed inWie kan me helpen?
1 2 3 4 | WHERE gedichten.gedicht_id = gedichten_tags.gedicht_id AND gedicht_tags.tag_id IN (1,3,4) GROUP BY gedichten.gedicht_id HAVING COUNT(*) = 3 |
Zie andere topic :Pquote:
1 2 3 4 5 6 7 8 9 | FROM gedichten g WHERE g.gedicht_id IN ( SELECT t.gedicht_id FROM gedichten_tags t WHERE t.tag_id IN (1, 3, 4) GROUP BY t.gedicht_id HAVING COUNT(*) = 3 ) |
omfgquote:Op donderdag 1 mei 2008 18:20 schreef Flaccid het volgende:
Ik heb een functie met die checkt of een variable leeg is of niet, wanneer hij leeg is zegt hij dat hij leeg is. Maar dan wordt het: Hoe krijg je de tekst van een variable die leeg is op het scherm, dus de naam van de lege variable?
[ code verwijderd ]
1 2 3 4 5 6 7 8 | WHERE (g.gedicht_id IN ( SELECT t.gedicht_id FROM gedicht_tags t WHERE t.tag_id IN (1,2) GROUP BY t.gedicht_id HAVING COUNT(*) = 2) ) AND (g.gedicht_boekje = '3') |
Zover ik tot nog toe heb ondervonden duren dit queries (dus met querie in querie) langer dan een join.quote:Op zaterdag 3 mei 2008 15:34 schreef SuperRembo het volgende:
[..]
Zie andere topic
Het zou (uitgaande van MySQL 5) zo iets worden:
[ code verwijderd ]
Een subquery dusquote:
In dit geval lukt het ook wel zonder sub-query, alleen wordt 't daar wat minder overzichtelijk van. En de vraag is of 't echt sneller is.quote:Op zaterdag 3 mei 2008 16:40 schreef ursel het volgende:
Zover ik tot nog toe heb ondervonden duren dit queries (dus met querie in querie) langer dan een join.
1 2 3 4 5 6 7 | FROM gedichten g INNER JOIN gedichten_tags t ON t.gedicht_id = g.gedicht_id WHERE g.gedicht_boekje = 3 AND t.tag_id IN (1, 3, 4) GROUP BY g.gedicht_id, g.titel HAVING COUNT(*) = 3 |
Wat bedoel je daar precies mee?quote:Op zaterdag 3 mei 2008 16:56 schreef CraZaay het volgende:
Zijn er hier überhaupt mensen bezig met memcached en dergelijke?
Eigenlijk wat er staatquote:
Een project wat ik voor NU.nl gedaan heb bijvoorbeeld (da's extreem), maar ook een jongerensite met een sociaal netwerk wat met 30.000 pageviews per dag al aardig wat zware queries oplevert.quote:Op zaterdag 3 mei 2008 18:56 schreef Xcalibur het volgende:
Aan wat voor bezoekersaantallen / queries moet ik denken als jij het over een drukke site hebt?![]()
Waarom zou memcached hier niet geschikt voor zijn? In dat geval check ik in de model of het result in de cache zit, en zo niet voer ik de query uit en sla het resultaat op in de cache met een time to live van 24 uurquote:Op zondag 4 mei 2008 01:17 schreef Farenji het volgende:
Memcache gebruik ik niet zo vaak maar ik gebruik wel regelmatig sql caching, waar het resultaat van een loodzware query geserialized wordt opgeslagen in een objectstorage in de db. Aan memory caching heb je in dit geval minder omdat het om queries gaat waar het resultaat hoogstens 1 keer per dag wijzigt en je aan alle bezoekers hetzelfde resultaat wil tonen. Die wil je dus ook maar 1 keer per dag berekenen, niet meer.
punt 3 is alleen uit te lezen bij @home en nog een geloof ik. Bij planet (mijn ISP) wordt het niet meegestuurd. Je hebt wel databases die dat soort info verzamelen en waar je beroep op kunt doen, sommige gratis, sommige niet.quote:Op maandag 5 mei 2008 09:14 schreef Chandler het volgende:
Kleine vraag, stel ik heb een hostname cc93022-a.tu.nogwat.home.nl
Van deze hostname wil ik het volgende uitlezen (maar dit kan natuurlijk ook een andere hostname zijn)
- home.nl
- home
- @home internet Groningen Nederland (dit kun je ergens uitlezen maar waar?)
Is er voor de 1e 2 een regex die ook werkt met co.uk en dergelijke domeinnamen? en waar kan ik de 3e gegeven weg halen?
SELECT MAX(id) FROM gegevens ?quote:Op maandag 5 mei 2008 14:54 schreef wobbel het volgende:
Ik heb een tabel met Auto Increment, hoe krijg ik nu heel makkelijk het laatste ID eruit?
Nu doe ik namelijk SELECT id FROM gegevens ORDER BY id DESC LIMIT 1, maar kan dat niet sneller?
quote:Op maandag 5 mei 2008 15:11 schreef wobbel het volgende:
[..]
moet ik die dan weer opvragen met mysql_fetch_assoc of kan dat ook met mysql_result ofzo?
1 2 3 | $laatste = mysql_result(mysql_query("SELECT MAX(id) FROM gegevens"),0); ?> |
Goede tip zegquote:Op maandag 5 mei 2008 16:36 schreef SuperRembo het volgende:
Als je de id wil weten van de row die je net ge-insert hebt, dan kan je beter mysql_insert_id() gebruiken.
Die kende ik gelukkig alquote:Op maandag 5 mei 2008 16:36 schreef SuperRembo het volgende:
Als je de id wil weten van de row die je net ge-insert hebt, dan kan je beter mysql_insert_id() gebruiken.
1 2 3 4 | USING SHOP_Carts.IdCart LEFT JOIN SHOP_Cartcontents.CartId = SHOP_Carts.IdCart WHERE SHOP_Carts.IdCart = '1' |
quote: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 '.IdCart WHERE SHOP_Carts.IdCart = '1'' at line 1
Moet het niet zijnquote:Op maandag 5 mei 2008 18:54 schreef wobbel het volgende:
[..]
Die kende ik gelukkig al ;)
Andere vraag: Ik heb onderstaande query, alleen daar is blijkbaar iets fout aan :P
[ code verwijderd ]
Foutmelding
[..]
1 |
Ik heb gezocht naar opties voor punt 3 (@home internet) maar kan helaas niets vindenquote:Op maandag 5 mei 2008 11:04 schreef qu63 het volgende:
[..]
punt 3 is alleen uit te lezen bij @home en nog een geloof ik. Bij planet (mijn ISP) wordt het niet meegestuurd. Je hebt wel databases die dat soort info verzamelen en waar je beroep op kunt doen, sommige gratis, sommige niet.
Op jou manier krijg ik de volgende fout:quote:
Dit is m'n query:quote: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 'LEFT JOIN SHOP_Cartcontents on SHOP_Carts.IdCart = SHOP_Cartcontents.CartId WHER' at line 1
1 2 3 4 | LEFT JOIN SHOP_Cartcontents ON SHOP_Carts.IdCart = SHOP_Cartcontents.CartId WHERE SHOP_Carts.IdCart = '5' |
http://www.maxmind.com/app/cityquote:Op dinsdag 6 mei 2008 09:26 schreef Chandler het volgende:
[..]
Ik heb gezocht naar opties voor punt 3 (@home internet) maar kan helaas niets vindenwaarschijnlijk op de verkeerde woorden gezocht maar kun je me een linkje posten?
Waarom een left join in een delete statement?quote:Op dinsdag 6 mei 2008 11:46 schreef wobbel het volgende:
Dit is m'n query:
[ code verwijderd ]
Ik heb de MySQL reference guide er ook al bijgezocht, maar zelfs dan lukt het me nog niet :')
http://dev.mysql.com/doc/refman/5.0/en/delete.html
1 2 | WHERE SHOP_Carts.IdCart = '5' |
1 2 | WHERE SHOP_Cartscontents.IdCart = '5' |
quote:Op dinsdag 6 mei 2008 12:20 schreef ursel het volgende:
Misschien een knullige vraag, maar om 2 tabellen te mergen doe ik een select in een temp tabel en update ik de main tabel.
Nu doe ik een query met SELECT * FROM table. Maar eigenlijk wil ik alle kolommen hebben exclusief kolom ncID. Aangezien er +/- 15 kolommen zijn leek het mij eigenlijk onlogisch om elke kolom in de SELECT statement te plaatsen. Is er geen praktische manier om een specifieke kolom te excluden?
1 |
quote:Op dinsdag 6 mei 2008 12:28 schreef JortK het volgende:
[..]
[ code verwijderd ]
En dan niet de kolom ncID ertussen zetten?
quote:Op dinsdag 6 mei 2008 12:20 schreef ursel het volgende:
...
Aangezien er +/- 15 kolommen zijn leek het mij eigenlijk onlogisch om elke kolom in de SELECT statement te plaatsen. Is er geen praktische manier om een specifieke kolom te excluden?
Nou omdat ik dit wil uitvoeren eigenlijk:quote:Op dinsdag 6 mei 2008 12:07 schreef JortK het volgende:
[..]
Waarom een left join in een delete statement?
Je kan toch gewoon dit doen:
[ code verwijderd ]
En als je ook de content wil verwijderen:
[ code verwijderd ]
WHER of WHEREquote:Op dinsdag 6 mei 2008 11:46 schreef wobbel het volgende:
[..]
Op jou manier krijg ik de volgende fout:
Zoals je kon zien had ik de goede query er ook bijgezet, aangezien een MySQL foutmelding niet de gehele query teruggeeft. Ik had gewoon WHERE dusquote:
Zo dan:quote:Op dinsdag 6 mei 2008 13:23 schreef wobbel het volgende:
[..]
Zoals je kon zien had ik de goede query er ook bijgezet, aangezien een MySQL foutmelding niet de gehele query teruggeeft. Ik had gewoon WHERE dus ;)
1 2 | WHERE SHOP_Carts.Tijd < '250000' |
1 2 | WHERE SHOP_Cartcontents.CartID IN (SELECT CartID from SHOP_Carts WHERE SHOP_Carts.Tijd < '250000') |
Stomme vraag, moet ik die 2 query's apart uitvoeren of alleen de onderste?quote:Op dinsdag 6 mei 2008 13:40 schreef JortK het volgende:
[..]
Zo dan:
[ code verwijderd ]
[ code verwijderd ]
Lijkt mij allebei, de bovenste verwijderd je 'winkelwagen' de onderste je 'winkelwageninhoud'quote:Op dinsdag 6 mei 2008 14:21 schreef wobbel het volgende:
[..]
Stomme vraag, moet ik die 2 query's apart uitvoeren of alleen de onderste?
Goed gezien jaquote:Op dinsdag 6 mei 2008 15:44 schreef Intrepidity het volgende:
Wel andersom lijkt me, als je eerst die bovenste uitvoert levert de subquery in de onderste niks meer op
met ongeveer iets als dit:quote:Op woensdag 7 mei 2008 11:38 schreef Dzy het volgende:
Bovenaan z'n site in het menu staat "Contact me" :)
http://aruljohn.com/contact.php
En mocht je erachter zijn kun je het hier dan even posten? :)
Vraagje: Als ik een locatie op Googlemaps heb hoe kan ik daar dan de hoogte/breedtegraag van krijgen om google maps te integreren in een site van me?
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 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Maps JavaScript API Example</title> if($_SERVER['SERVER_SOFTWARE'] == "Abyss/2.0.0.20-X2-Win32 AbyssLib/2.0.0.20"){$key = "ABQIAAAAplnifruwGrfwpWvbEV5auhS4B2hPn9jRGCWcnfTi9eR2TxbJAxRuquOiECed3a0MS8kKy014S0rXIg";}else{$key = "ABQIAAAAplnifruwGrfwpWvbEV5auhSKsMW_Q8n2eDtD9HmS6wzqCxy26xRijJuhQRwy1t661WeJIX7FqoSNPw";}echo '<script src="http://maps.google.com/maps?file=api&v=2&key='.$key.'" type="text/javascript"></script>' <script type="text/javascript"> var map; var gdir; var geocoder = null; var addressMarker; function locatie() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map_canvas")); map.setCenter(new GLatLng(52.264680, 5.161900), 17); map.enableScrollWheelZoom(); map.addControl(new GScaleControl()); map.addControl(new GLargeMapControl()); GEvent.addListener(map, "click", function(geen,test) { document.getElementById("naar").value = test.toUrlValue().replace(/,/gi, ", "); }); } } function reken() { if (GBrowserIsCompatible()) { gdir = new GDirections(map, document.getElementById("directions")); GEvent.addListener(gdir, "load", onGDirectionsLoad); GEvent.addListener(gdir, "error", handleErrors); var van = document.getElementById("van").value; van = van.replace(/CS/gi, "Centraal Station") var naar = document.getElementById("naar").value naar = naar.replace(/CS/gi, "Centraal Station") var sp = document.getElementById("sp").value; if(document.getElementById("ms").checked) { setDirectionsSP(sp, van, naar, sp, "nl_NL"); } else { setDirections(van, naar, "nl_NL"); } } } function setDirections(fromAddress, toAddress, locale) { gdir.load("from: " + fromAddress + " to: " + toAddress, { "locale": locale }); } function setDirectionsSP(sp, fromAddress, toAddress, sp, locale) { gdir.load("from: " + sp + " to: " + fromAddress + " to: " + toAddress + " to: " + sp, { "locale": locale }); } function handleErrors(){ if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS) alert("No corresponding geographic location could be found for one of the specified addresses. This may be due to the fact that the address is relatively new, or it may be incorrect.\nError code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_SERVER_ERROR) alert("A geocoding or directions request could not be successfully processed, yet the exact reason for the failure is not known.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_MISSING_QUERY) alert("The HTTP q parameter was either missing or had no value. For geocoder requests, this means that an empty address was specified as input. For directions requests, this means that no query was specified in the input.\n Error code: " + gdir.getStatus().code); // else if (gdir.getStatus().code == G_UNAVAILABLE_ADDRESS) <--- Doc bug... this is either not defined, or Doc is wrong // alert("The geocode for the given address or the route for the given directions query cannot be returned due to legal or contractual reasons.\n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_KEY) alert("The given key is either invalid or does not match the domain for which it was given. \n Error code: " + gdir.getStatus().code); else if (gdir.getStatus().code == G_GEO_BAD_REQUEST) alert("A directions request could not be successfully parsed.\n Error code: " + gdir.getStatus().code); else alert("An unknown error occurred."); } function add() { document.getElementById("naar").value = document.getElementById("naar").value + " to:"; document.getElementById("naar").focus(); } function onGDirectionsLoad(){ var afstand = Math.round((gdir.getDistance().meters/1000)*10)/10; document.getElementById("reken").value = afstand + " km"; var sec = Math.round(gdir.getDuration().seconds/60); //document.getElementById("tijd").value = sec + " minuten"; if(sec == 60) { document.getElementById("tijd").value = "1 uur" + sec; } else if(sec > 60) { var test = sec/60; var uur = Math.floor(test); var minuten = sec - (uur * 60); document.getElementById("tijd").value = uur + " uur en " + minuten + " minuten"; } else { document.getElementById("tijd").value = sec + " minuten"; } var gem = Math.round(gdir.getDistance().meters/gdir.getDuration().seconds*3.6); document.getElementById("gem").value = gem + " km/h"; } </script> </head> <body onload="locatie()"> <table> <tr> <td> </td><td><input type="hidden" id="sp" value="701 @52.264680, 5.161900"><input type="checkbox" id="ms">Vanaf standplaats?</td><td><input type="text" id="van" value=""></td><td><input type="text" id="naar" value="" size="50"></td><td><input type="button" onclick="reken()"></td><td><input type="text" id="reken"></td><td><input type="text" id="tijd"></td><td><input type="text" id="gem"></td> </tr> <tr> <td>Voorbeeld:</td><td>Standplaats</td><td>Amsterdam Centraal Station</td><td>Hilversum to: Jaarbeursplein, Utrecht</td><td> </td><td> </td><td> </td><td> </td> </tr> <tr> <td> </td><td> </td><td> </td><td><a href="#" onclick="add()">bestemming toevoegen</a></td><td> </td><td> </td><td> </td><td> </td> </tr> <div id="totaal"></div> <div id="klant"></div> </table> <script type="text/javascript"> //document.write(startAddress); </script> <div id="map_canvas" style="width: 600px; height: 400px"></div> <!-- <div id="directions" style="width: 275px; height: 400px"></div> <div id="map_canvas" style="width: 70%; height: 480px; float:left; border: 1px solid black;"></div> <div id="route" style="width: 25%; height:480px; float:right; border; 1px solid black;"></div>--> </body> </html> ?> |
Check ook de site van WyriHaximus die heeft er ook aardig wat informatie opstaan.quote:Op woensdag 7 mei 2008 11:38 schreef Dzy het volgende:
Bovenaan z'n site in het menu staat "Contact me"
http://aruljohn.com/contact.php
En mocht je erachter zijn kun je het hier dan even posten?
Vraagje: Als ik een locatie op Googlemaps heb hoe kan ik daar dan de hoogte/breedtegraag van krijgen om google maps te integreren in een site van me?
als je nu naar maps.google.com gaat, een locatie opzoekt, en dan klikt op "link naar deze pagina", dan zie je in die url de coördinaten en het zoomniveau staan:quote:Op woensdag 7 mei 2008 11:58 schreef Dzy het volgende:
Key heb ik, maar het gaat erom dat ik bij maps.google.com bij een locatie de hoogte en lengtebreedte kan vinden zodat ik die kan integreren. Als ik bij die examples kijk staat er overal dit soort dingen:
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
Daar gaat het me om, hoe bepaal ik van een bepaalde straat als ik die opzoek bij googlemaps wat de GLatLng moet zijn?
Lees dit eens, dit gaat over geocoding (het omzetten van een adres naar lat/long coördinaten) http://code.google.com/ap(...)vices.html#Geocodingquote:Op woensdag 7 mei 2008 11:58 schreef Dzy het volgende:
Key heb ik, maar het gaat erom dat ik bij maps.google.com bij een locatie de hoogte en lengtebreedte kan vinden zodat ik die kan integreren. Als ik bij die examples kijk staat er overal dit soort dingen:
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
Daar gaat het me om, hoe bepaal ik van een bepaalde straat als ik die opzoek bij googlemaps wat de GLatLng moet zijn?
Altijd leukquote:Op woensdag 7 mei 2008 14:46 schreef Dzy het volgende:
Dank jullie allen voor de links, ik ben er al uitgekomen
Ik ga nu maar eens met cURL spelen om automagisch allerlei dingen van imdb te plukken en in mijn database te gooien zodat ik mooi links kan leggen tussen allerlei films in mijn collectie.
Bij dezequote:Op woensdag 7 mei 2008 11:38 schreef Dzy het volgende:
Bovenaan z'n site in het menu staat "Contact me"
http://aruljohn.com/contact.php
En mocht je erachter zijn kun je het hier dan even posten?
1 2 3 4 5 6 7 8 9 10 11 | $ch = curl_init(); echo curl_error($ch); curl_setopt($ch, CURLOPT_URL, "http://www.google.com/"); //movie PI curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); $output = curl_exec($ch); echo curl_error($ch); curl_close($ch); echo $output; ?> |
Waarschijnlijk moet je cookies meesturenquote:Op woensdag 7 mei 2008 19:48 schreef Dzy het volgende:
Hmm, hoe doen jullie dat met headers enzo sturen met curl? Als ik met cURL imdb probeer te openen geeft hij een 111 error, volgens google betekent dit dat hij geen connectie kan openen. Ik heb ook een paar andere pagina's geprobeerd te openen maar allen geven error 111. Dit is m'n code, ik doe toch niets fout of wel?
[ code verwijderd ]
Volgens phpinfo support mn host wel cURL:
CURL support enabled
CURL Information libcurl/7.10.6 OpenSSL/0.9.7a ipv6 zlib/1.1.4
Dus ik snap niet precies wat er mis is. Iemand?
1 2 | curl_setopt($ch, CURLOPT_COOKIEFILE, "cook"); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | GET /title/tt0481536/ HTTP/1.1 Host: www.imdb.com User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11 Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Cookie: cs=3uSEDutJagOs3OFX9fmfTA/+EDT6WFdifP3CJGjY9wH/yGBUL0AnYnHqV+pf+MPgb+hXYnlesCI/yFdiSd9X6n/IV1RH2N9ifdZ1YvjrR/b4nrEkL19RlX/IVyLf2BdCf+hXYn/IVyI/mBdSc=; uu=+mWv/hKNWfFsRJrmViWWKAronhA8qJ42rzudgD/b7UM/rt1DLyu9Bm+bvWN9z8lDGt7I4JyonhAPqx6wPAjdct/7vPNq3h6wfP/4lq5OeNCaLmjGaExesEwInrAYXFrUbAj7tU/afWMf6n0zLyu880877rD/2+0DT7u9AxyoPrCc6L4QO57IRtyonhB5n56YIfgKkiw8HA48qJ4QCw5+UByo2AbiRs4QPLgKkiyInhA8qJ5QfPjeID; session-id=613-0180128-2350691; session-id-time=1210266528 HTTP/1.x 200 OK Date: Wed, 07 May 2008 18:14:36 GMT Server: Server Set-Cookie: uu=grgE9OCRwbH3IQaed7gfHAronhA8qJ42rzudgD/b7UM/rt1DLyu9Bm+bvWN9z8lDGt7I4JyonhAPqx6wPAjdct/7vPNq3h6wfP/4lq5OeNCaLmjGaExesEwInrAYXFrUbAj7tU/afWMf6n0zLyu880877rD/2+0DT7u9AxyoPrCc6L4QOr5JttyonhB4KoHp/KieAKpI3jA876hGZLieED69qRCypc6EvJgKkiyInhA8qJ5QfPjeID;expires=Thu, 30 Dec 2037 00:00:00 GMT;path=/;domain=.imdb.com Set-Cookie: cs=accfTfBlqOPm1/G+Z8Z1YQH1umv2w+17xkvd83JB8mM2w+1LYEOtW/bD2zyhpZ179fRpbVZQrlhgVQo7VsPte8DU7fP2w+1NztNle/Tdz3tx4P3vcZULPaZU64z2w+07VtOtW/bj7Xv2w+07tpOtS/;expires=Thu, 08 May 2008 07:00:00 GMT;path=/;domain=.imdb.com Cache-Control: private Content-Type: text/html Vary: Accept-Encoding,User-Agent Content-Encoding: gzip Content-Length: 13154 nnCoection: close |
Waar slaat dat nou weer op? Curl is geschikt om o.a. GET, POST, PUT en DELETE requests uit te kunnen voeren, bijvoorbeeld om een RESTful interface te gebruiken. Hoe kom je erbij dat het vooral is om een formulier te posten?quote:Op woensdag 7 mei 2008 19:50 schreef qu63 het volgende:
en curl is vooral om een formulier te submitten (om bijvoorbeeld automatisch op fok te kunnen posten)
omdat ik het zo alleen gebruikquote:Op woensdag 7 mei 2008 20:40 schreef CraZaay het volgende:
[..]
Waar slaat dat nou weer op? Curl is geschikt om GET, POST, PUT en DELETE requests uit te kunnen voeren, bijvoorbeeld om een RESTful interface te gebruiken. Hoe kom je erbij dat het vooral is om een formulier te posten?
1 2 3 4 5 6 7 8 9 10 | echo curl_error($ch); $timeout = 5; // set to zero for no timeout curl_setopt ($ch, CURLOPT_URL, 'http://www.imdb.com/nowplaying/'); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $file_contents = curl_exec($ch); echo curl_error($ch); curl_close($ch); echo $file_contents; |
ik krijg eenquote:Op donderdag 8 mei 2008 00:00 schreef Dzy het volgende:
Kan iemand anders proberen IMDB te benaderen via cURL? Ik heb een joomla extension gevonden waarin ze ook met cURL imdb aanspreken en daar stond alleen extra een regeltje curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); bij, en ook daarmee deed hij het bij mij niet. Ik ben dus bang dat er bij mijn host iets niet helemaal goed zit. Dit is de volledige code die zou moeten werken:
[ code verwijderd ]
Ze hebben gewoon een firewall aanstaan dat al het verkeer via poort 80 naar buiten tegenhoudt.quote:Het is op onze machines niet meer mogelijk om externe URL's te 'includen' met Perl of met het PHP commando "fopen" of "curl" (allow_url_fopen). Het betreft hier uitsluitend http includes en connecties met het IRC en MSN netwerk.
Dit is gedaan in verband met de veiligheid van de aanwezige sites op deze servers, en voorkomt dat persoonlijke informatie zoals o.a. passwords makkelijk te verkrijgen is door hackers. Daarnaast kregen wij regelmatig klachten van website beheerders dat content zonder toestemming werd overgenomen en dat er via onze server getracht werd illegale activiteiten te ontplooien gebruikmakend van een Proxy-script (Als PHProxy), om zodoende de identiteit van de surfer te verbergen.
We verontschuldigen ons voor het onwaarschijnlijke geval dat u hinder ondervindt van deze configuratieaanpassing, echter hopen we dat u begrijpt dat deze aanpassing vrijwel uitsluitend voordelen heeft voor de beveiliging op de gehele server, en dat dit door ons ook niet per hostingpakket in te stellen is.
Overigens zijn er wel mogelijkheden om via html externe url's te includen. U doet dat door een zgn. "iframe" op te nemen, met daarin een directe link naar de pagina die u wilt includen. Zodoende loopt de include vanaf de server van de eigenaar zelf, en laadt daarnaast uw website veel sneller. (En het scheelt u dataverbruik).
Het openen van sockets via poort 80 is door de maatregel ook niet meer mogelijk. Wellicht kunt u gebruik maken van poort 81 of 443 voor https communicatie.
Bizar zeg. Ze gaan er vanuit dat je nooit een of andere API van een webservice wilt gebruiken?quote:Op donderdag 8 mei 2008 00:51 schreef Dzy het volgende:
Ze hebben gewoon een firewall aanstaan dat al het verkeer via poort 80 naar buiten tegenhoudt.
Ik heb er uitgebreid mee geëxpirimenteerd, dus het is zeker wel geïnstalleerdquote:Op donderdag 8 mei 2008 00:16 schreef Dzy het volgende:
Er is geen cURL geinstalleerd dan
Edit: Maar toch bedankt
Ja.quote:Op donderdag 8 mei 2008 08:39 schreef CraZaay het volgende:
[..]
Bizar zeg. Ze gaan er vanuit dat je nooit een of andere API van een webservice wilt gebruiken?
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 | /* Load main library Files */ require_once ( "lib/htconfig.php" ); require_once ( LIB_PATH . "/f_core.php" ); $path = BASE_PATH . "/include/upload/fck/voorkant.jpg"; $to = "wobbel@gmail.com"; $subject = "Test"; $body = "testberichtje"; $filename = "plaatje.jpg"; // Open te file $fp = @fopen ( $path, "r" ); // Check for errors if ( !$fp ) { die ( "Error #4" ); } // Grab file from server while ( !feof ( $fp ) ) { $file_content .= fread ( $fp , 1024 ); } // Close file fclose ( $fp ); // Encode file base 64 $file_content = chunk_split ( base64_encode ( $file_content ) ); // Create unique boundary using md5 $boundary = strtoupper ( md5 ( uniqid ( time ( ) ) ) ); // Create the headers $header .= "MIME-version: 1.0\n"; $header .= "Content-Type: multipart/mixed;\n"; $header .= "\tboundary= " . $boundary . "\n\n"; $header .= "This is a multi-part message in MIME format.\n\n"; // Creathe message body $header .= "--" . $boundary . "\n"; $header .= "Content-type: text/html; charset=iso-8859-1;\n"; // Adding the message to the body $header .= "De tekst in mijn email\n\n"; // Adding headers for the attachment $header .= "--" . $boundary . "\n"; $header .= "Content-Type: application/octet-stream; name=\"" . $filename . "\"\n"; $header .= "Content-Transfer-Encoding: base64;\n"; $header .= "Content-Disposition: attachment; filename=\"" . $filename . "\"\n\n"; // Add the attachment to the headers $header .= $file_content . "\n\n"; $header .= "--" . $boundary . "--"; // Send the e-mail mail ($to,$subject,"",$header); echo "verzonden..."; ?> |
Oke, ik heb nu dit...maar die leegt alsnog de hele tabel SHOP_Cartcontents, ongeacht de datum van SHOP_Carts.Datequote:Op dinsdag 6 mei 2008 14:23 schreef JortK het volgende:
[..]
Lijkt mij allebei, de bovenste verwijderd je 'winkelwagen' de onderste je 'winkelwageninhoud'
1 2 3 4 | mysql_query ( "DELETE FROM SHOP_Cartcontents WHERE SHOP_Cartcontents.CartID IN (SELECT CartID from SHOP_Carts WHERE SHOP_Carts.Date < '1210246772')" ) or die ( mysql_error ( ) ); mysql_query ( "DELETE FROM SHOP_Carts WHERE Date < '1210246772'" ) or die ( mysql_error ( ) ); ?> |
Is er een reden dat je zelf bijlagen wilt versturen? Anders kun je beter phpMailer gebruiken. Die kan ook bijlagen versturen en nog veel meer stoere dingenquote:Op donderdag 8 mei 2008 12:42 schreef wobbel het volgende:
Ik heb een script dat bijlagen verzend, maar die werkt niet helemaal goed
De bijlagen komen in Mozilla Thunderbird wel goed binnen, alleen Gmail ziet ze als beschadigd...en sommige andere e-mail clients vreten hem ook niet
Dit is de code:
[ code verwijderd ]
BASE_PATH is gewoon goed gedefinieerdalleen de bestanden die ik binnenkrijg zijn allemaal beschadigd
Bestandsgrootte's kloppen wel ongeveer
Als ik het goed begrijp kan SOAP alleen met HTTP authenticatie overweg, de rest zal je dus in de soap-server moeten oplossen. Wat ik dus gedaan heb, en dat lijkt allemaal te werkenquote:Op vrijdag 9 mei 2008 08:21 schreef Xcalibur het volgende:
Ik heb pas een mooie SOAP/XML server gemaakt met NuSOAP, met een aantal bijbehorende clients. Hartstikke leuk, en het werkt ook prima... Deze data is natuurlijk voor iedereen beschikbaar, dus nu krijg ik alleen de vraag of er ook een authorisatie mechanisme kan komen. Dus dat je eerst moet inloggen, voordat je de data krijgt.
In NuSOAP heb ik wel de functie SetCredentials() gevonden, waarmee je dus je username en password kan zetten. Wat ik alleen niet begrijp is waartegen deze gechecked worden... Moet ik een functie maken die de inloggegevens met de database vergelijkt, is dit een HTTP authenticatie, etc. ?
Wie weet raad?
1 2 3 4 5 6 7 | $limit = 50000; $num_records = $db->result('SELECT COUNT(id) FROM stat_info'); if ($num_records > $limit) { $db->query('DELETE FROM stat_info ORDER BY date ASC LIMIT '.($num_records-$limit)); } ?> |
Volgens mij gaat de delete-query mis, omdat date een keyword is in MySQL. Daar zou je dan backtics omheen moeten zetten, dus `date`. Nog mooier is het om geen keywords als kolomnamen te gebruikenquote:Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts![]()
![]()
[ code verwijderd ]
Als je DELETE even vervangt door SELECT *, dan kun je zien wat er allemaal verwijderd gaat worden.quote:Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts![]()
![]()
[ code verwijderd ]
Het is wel een keyword. Maar voor dit specifieke geval heb je inderdaad geen backticks nodig. Dat zegt de MySQL documentatie.quote:Op maandag 12 mei 2008 13:40 schreef Farenji het volgende:
Nee hoor, date is geen keyword, als kolomnaam heb je geen backticks nodig. Deze query moet gewoon goed gaan. En ja, hij wist alleen oude records.
quote:Op maandag 12 mei 2008 13:26 schreef wipes66 het volgende:
kan iemand voor mij verifieren dat deze query alleen de oude gegevens verwijdert? Het is zo lullig als er belangrijke gegevens verloren gaan door mijn gepruts![]()
![]()
[ code verwijderd ]
1 |
of als er 50001 records zijn blijft er nog maar 1 record over.quote:Op maandag 12 mei 2008 14:18 schreef SuperRembo het volgende:
[..]
Als dit script twee maal tegelijk wordt uitgevoerd bestaat (theoretisch) de kans dat je alle records verwijderd. Waarom niet gewoon zo?
[ code verwijderd ]
Foutje. De nieuwste 50000 moeten natuurlijk blijven staan, niet de oudste. Dus ORDER BY date DESC niet ASC.quote:Op maandag 12 mei 2008 14:23 schreef qu63 het volgende:
[..]
of als er 50001 records zijn blijft er nog maar 1 record over.
1 2 3 4 5 6 7 | $limit = 50000; $num_records = $db->result('SELECT COUNT(id) FROM stat_info'); if ($num_records > $limit) { $db->query('DELETE FROM stat_info ORDER BY date DESC LIMIT ?,?',array($limit,$num_records)); } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |