Een left join pakt alle records uit een tabel, en plaatst daar dan de bijbehorende informatie naast. In tegenstelling tot een inner join komt hier een null uit als er geen corresponderende record bij hoort.quote:Op maandag 23 april 2007 19:54 schreef Geqxon het volgende:
Maar dan JOIN je met een niet bestaand record? Is iets als dat uberhaupt mogelijk? Ik ga er eens mee klooien, mijn query is toch al bezopen groot
Mooi.quote:Op maandag 23 april 2007 19:57 schreef Aibmi het volgende:
[..]
Een left join pakt alle records uit een tabel, en plaatst daar dan de bijbehorende informatie naast. In tegenstelling tot een inner join komt hier een null uit als er geen corresponderende record bij hoort.
zoek op LEFT OUTER JOINquote:Op maandag 23 april 2007 20:10 schreef Geqxon het volgende:
[..]
Mooi.
Ik ben er nog steeds aan het knutselen, aangezien mijn SQL query boven de 500 karakters zit is het een beetje een geworstel
Jawel die moet het gewoon doen hoorquote:Op maandag 23 april 2007 20:15 schreef Geqxon het volgende:
Nou, ik denk dat ik toch maar op de MySQL update wacht die subquerys sneller maakt. Het is helaas niet mogelijk om de LEFT JOIN in mijn query te stoppen, ik gok dat hij niet compatible is met de andere WHERE clauses.
1 2 3 4 5 6 | SELECT * FROM T1 LEFT JOIN (T2,T3) ON (T2.A=T1.A AND T3.B=T2.B) WHERE T3.C > 0. ?> |
Hoezo een query krijg je toch wel overzichtelijk?quote:Op maandag 23 april 2007 20:26 schreef Geqxon het volgende:
Helaas, ondanks dat ik in mijn query "c.ID" (c alsin "FROM Catagorie AS c") een keer of 3 a 4 gebruik herkent hij hem niet binnen de LEFT JOIN.
Het is op zich wel te doen, de traagheid, ik zocht dan ook meer een simpele fix ervoor. Want anders wordt mijn query denk ik ook veel te lang
Ik durf met een gerust hart te zeggen dat als je een query van 500KB hebt, je iets gruwelijks fout doet.quote:Op maandag 23 april 2007 20:28 schreef JortK het volgende:
[..]
* JortK heeft eenmaal een query van 500kb geschreven, voor het verwijderen van dubbele contacten met koppel tabellen en shit, en dat ging nog best
Klopt, in de query staat dus ook het aanmaken van de SP's en viewsquote:Op maandag 23 april 2007 20:32 schreef JeRa het volgende:
[..]
Ik durf met een gerust hart te zeggen dat als je een query van 500KB hebt, je iets gruwelijks fout doet.(men heeft daarvoor stored procedures, views en meer van dat soort leuke meuk voor verzonnen)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <form> <select name="namenlijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value="" . $aBerichten['naam'] . "></option>"; } </select></td> </tr> </FORM>] ?> |
quote:Op maandag 23 april 2007 21:11 schreef Messenga het volgende:
[ code verwijderd ]
Hier moet de bovenstaande code de gegevens uit de database halen en in het dropdown menu zetten. Die gegevens bestaan uiteraard. Waarom werkt dit dan niet?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <form> <select name="namenlijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value="" . $aBerichten['naam'] . ""></option>"; } </select></td> </tr> </FORM>] ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <form> <select name="namenlijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value=\"" . $aBerichten['naam'] . "\"></option>"; } </select></td> </tr> </FORM>] ?> |
Zet eensquote:Op maandag 23 april 2007 21:27 schreef Messenga het volgende:
Ik heb ze allebei geprobeerd, maar het is net alsof hij de PHP code gewoon niet pakt.
1 2 3 | error_reporting(E_ALL); ?> |
Zo dus op het moment:quote:Op maandag 23 april 2007 21:27 schreef Messenga het volgende:
Ik heb ze allebei geprobeerd, maar het is net alsof hij de PHP code gewoon niet pakt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <form> <select name="namenlijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value='" . $aBerichten['naam'] . "'></option>"; } </select></td> </tr> </FORM> ?> |
Er komt dus ook totaal geen error reportingquote:Op maandag 23 april 2007 21:29 schreef cyberstalker het volgende:
[..]
Zet eens
[ code verwijderd ]
bovenaan in je script en plaats de uitvoer hier.
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 | include('functies.php'); error_reporting(E_ALL); <!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" lang="en" xml:lang="en"> <head> <title>Vrijdag Snack de Waerdenborch | Home</title> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" href="style.css" /> <style type="text/css"> <!-- .style1 {font-family: Georgia, "Times New Roman", Times, serif} --> </style> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="wrapper"> <div class="style1" id="top"> </div> <div id="content"> <div class="style1" id="header"> <p> </p> <p> </p> </div> <div id="menu"> <ul> <li><a href="index.html">Home</a> <ul> <li><a href="Aanwezig.html">Aanwezigheid</a></li> </ul> </li> <li><a href="Bestelling.html">Bestellingen</a></li> <li><a href="kostenoverzicht.html">Kostenoverzicht</a></li> <li></li> </ul> </div> <div id="stuff"> <p>Welkom op de website voor de vrijdagmiddag snack van de Waerdenborch.</p> <p>Hier kunt u uw bestellingen per week aangeven. Daarbij zult u per week kunnen zien wie wanneer betaalt. Door op het kostenoverzicht te klikken kunt u zien wat de kosten zijn. Zowel per persoon als een totaaloverzicht. </p> <p> Hier kies je je naam:</p> <form> <select name="namenlijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value='" . $aBerichten['naam'] . "'></option>"; } </select></td> </tr> </FORM> <p>Hier kies je je keuze voor de snack: </p> <form> <select name="snacklijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value="" . $aBerichten['naam'] . ""></option>"; } </select></td> </tr> </FORM> Hier kies je je Saus: <form> <select name="sauslijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT product FROM producten WHERE type = " saus") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value="" . $aBerichten['saus'] . "></option>"; } </select></td> </tr> </FORM> <p> </p> <FORM action="BestellingOpgeslagen.html"> <input name="Submit" type="submit" value="Opslaan" /> </form> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><br /> <br /> <a href="http://validator.w3.org/check?uri=referer"></a> </p> </div> </div><div id="bottom"></div> </div> </body> </html> ?> |
Dat doet Fok!, die zet automatisch die php tags boven en onder neer en haalt ze in het midden weg....quote:Op maandag 23 april 2007 22:18 schreef H4ze het volgende:
Ja wat ik dus ff niet snap aan die hele code, is waarom je gewoon keiharde html tussen je phptags zet, zonder deze te echo'en?
Ah oke, dat verklaart hetquote:Op maandag 23 april 2007 22:22 schreef _Xbox_Master_ het volgende:
[..]
Dat doet Fok!, die zet automatisch die php tags boven en onder neer en haalt ze in het midden weg....
Er is altijd een logische verklaring voor het feit dat een (zelfgebouwde) applicatie niet werkt.quote:Op maandag 23 april 2007 22:28 schreef Messenga het volgende:
[..]
Wat zou dan de fout kunnen zijn? of is er verder geen logsche verklaring?
Dit geeft gewoon de pulldown menu's, alleen geen resultaat die hij moet pakken uit de databases.quote:Op maandag 23 april 2007 22:35 schreef H4ze het volgende:
[..]
Er is altijd een logische verklaring voor het feit dat een (zelfgebouwde) applicatie niet werkt.
Weetje verder zeker dat het niet aan de quote'jes ligt waar Piles het overhad? En heb je de hele html al is weggehaald en alleen de query uitgevoerd? Gaf dit een resultaat?
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 | include('functies.php'); error_reporting(E_ALL); ?> <!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" lang="en" xml:lang="en"> <head> <title>Vrijdag Snack de Waerdenborch | Home</title> <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1" /> <link rel="stylesheet" type="text/css" href="style.css" /> <style type="text/css"> <!-- .style1 {font-family: Georgia, "Times New Roman", Times, serif} --> </style> <link href="style.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="wrapper"> <div class="style1" id="top"> </div> <div id="content"> <div class="style1" id="header"> <p> </p> <p> </p> </div> <div id="menu"> <ul> <li><a href="index.html">Home</a> <ul> <li><a href="Aanwezig.html">Aanwezigheid</a></li> </ul> </li> <li><a href="Bestelling.html">Bestellingen</a></li> <li><a href="kostenoverzicht.html">Kostenoverzicht</a></li> <li></li> </ul> </div> <div id="stuff"> <p>Welkom op de website voor de vrijdagmiddag snack van de Waerdenborch.</p> <p>Hier kunt u uw bestellingen per week aangeven. Daarbij zult u per week kunnen zien wie wanneer betaalt. Door op het kostenoverzicht te klikken kunt u zien wat de kosten zijn. Zowel per persoon als een totaaloverzicht. </p> <p> Hier kies je je naam:</p> <form> <select name="namenlijst"> <option value="x">Selecteer je keuze <tr> <?php $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value='" . $aBerichten['naam'] . "'></option>"; } ?> </select></td> </tr> </FORM> <p>Hier kies je je keuze voor de snack: </p> <form> <select name="snacklijst"> <option value="x">Selecteer je keuze <tr> <?php $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value='" . $aBerichten['naam'] . "'></option>"; } ?> </select></td> </tr> </FORM> Hier kies je je Saus: <form> <select name="sauslijst"> <option value="x">Selecteer je keuze <tr> <?php $result = mysql_query("SELECT product FROM producten WHERE type = 'saus'") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option value='" . $aBerichten['saus'] . "'></option>"; } ?> </select></td> </tr> </FORM> <p> </p> <FORM action="BestellingOpgeslagen.html"> <input name="Submit" type="submit" value="Opslaan" /> </form> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p><br /> <br /> <a href="http://validator.w3.org/check?uri=referer"></a> </p> </div> </div><div id="bottom"></div> </div> </body> </html> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <form> <select name="namenlijst"> <option value="x">Selecteer je keuze <tr> $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option>" . $aBerichten['naam'] . "</option>"; } </select></td> </tr> </FORM>] ?> |
Whehe. Soms zit je zo op syntaxfouten te kijken dat je de rest niet meer zietquote:Op maandag 23 april 2007 23:01 schreef Piles het volgende:Vind je het gek dat de dropdowns leeg zijn
print "<option value='" . $aBerichten['saus'] . "'>Hier moet ook wat</option>";
Haha ja tochquote:Op maandag 23 april 2007 23:01 schreef Piles het volgende:Vind je het gek dat de dropdowns leeg zijn
print "<option value='" . $aBerichten['saus'] . "'>Hier moet ook wat</option>";
dus
print "<option value='" . $aBerichten['saus'] . "'>". $aBerichten['saus'] ."</option>";
Daarom altijd de html-output bekijkenquote:Op maandag 23 april 2007 23:03 schreef cyberstalker het volgende:
[..]
Whehe. Soms zit je zo op syntaxfouten te kijken dat je de rest niet meer ziet.
Het kan allebei. Het attribuut value is optioneel. Bij gebrek aan een value attribuut wordt de tekst in de <option> meegestuurd.quote:Op maandag 23 april 2007 23:06 schreef H4ze het volgende:
Maar die hele value= in de option is toch doelloos? De dropdownlist stuurt gewoon de waarde door die tussen <option> en </option> staat (en geselecteerd is) toch.
alleen is het dan geen valid XHTML meer volgens mijquote:Op maandag 23 april 2007 23:23 schreef cyberstalker het volgende:
Wil je dus hetzelfde terugsturen als je toont is het attribuut value dus niet nodig.
Jawel. Dit is allemaal W3C approvedquote:Op dinsdag 24 april 2007 10:37 schreef Xcalibur het volgende:
[..]
alleen is het dan geen valid XHTML meer volgens mij
1 2 3 4 5 | FROM table WHERE var1 LIKE '%s' AND var2 LIKE '%s' ORDER BY var1", mysql_real_escape_string($var1), mysql_real_escape_string($var2)); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <form method="post" action="BestellingOpgeslagen.php"> <select name="namenlijst"> <option value="x">Selecteer je keuze</option> <?php $result = mysql_query("SELECT naam FROM gebruikers") or die (mysql_error()); while($aBerichten = mysql_fetch_array($result)) { print "<option>".$aBerichten['naam']."</option>"; } ?> </select></td> </tr> |
Dat werkt inderdaad, dank je.quote:Op dinsdag 24 april 2007 21:25 schreef Geqxon het volgende:
Voor je laatste vraag: http://nl3.php.net/htmlentities
Zoiets?
Waarom doe je niet gewoon zo:quote:Op dinsdag 24 april 2007 21:17 schreef De_Hertog het volgende:
Ik ben weer eens met PHP bezig, twee kleine vraagjes die niet echt googlebaar waren:
Hoe gebruik je mysql_escape_string in combinatie met LIKE? Like is een nogal veel voorkomend woord in het Engels, dus zoeken gaat niet echt, en waarschijnlijk is dit een erg simpel probleem:
[ code verwijderd ]
Als ik het zo doe werkt het alleen als ik het volledige woord intyp. Ik moet dus met wildcards werken, maar hoe krijg ik die om die %s? '%%s%' werkt niet. Hoe moet dit?
De volgende vraag is wat lastiger: ik heb een aantal woorden met 'vreemde tekens' erin, zoals 'überhaupt'. Als ik die weergeef komt er een vraagtekentje te staan, maar als ik uberhaupt (zonder umlaut) intik gaat het wel goed. Waarschijnlijk een encoding probleem, maar meer kon ik via google niet vinden..
Alvast bedankt voor de hulp
1 2 3 4 5 6 7 | $query = "SELECT var1, var2 FROM table WHERE var1 LIKE '" . mysql_real_escape_string($var1) . "' AND var2 LIKE '" . mysql_real_escape_string($var2) . "' ORDER BY var1"; ?> |
Op deze manier is de code net wat makkelijker ingedeeld (eerst de query, dan de variabelen) hetgeen ik er voor de toekomst wat handiger uit vind zien. Bovendien heb je in jouw voorbeeld nog steeds een % symbool voor en na die string nodig, toch?quote:Op woensdag 25 april 2007 08:59 schreef HuHu het volgende:
[..]
Waarom doe je niet gewoon zo:
[ code verwijderd ]
Heb je ook de situatie afgevangen wanneer er een procentteken of underscore in de string voorkomt?quote:Op woensdag 25 april 2007 09:30 schreef De_Hertog het volgende:
[..]
Op deze manier is de code net wat makkelijker ingedeeld (eerst de query, dan de variabelen) hetgeen ik er voor de toekomst wat handiger uit vind zien. Bovendien heb je in jouw voorbeeld nog steeds een % symbool voor en na die string nodig, toch?
Overigens, zoals je hierboven kunt zien heb ik de oplossing al gevonden
Dat mag wat mij betreft gewoon mogelijk zijn, tenminste als je bedoelt dat 'bel%dui' 'België en Duitsland' oplevert. Als mensen er meer illegale dingen mee uit kunnen halen hoor ik dat natuurlijk graagquote:Op woensdag 25 april 2007 09:35 schreef JeRa het volgende:
[..]
Heb je ook de situatie afgevangen wanneer er een procentteken of underscore in de string voorkomt?Of wil je dat dat mogelijk blijft?
Waarom niet timestamp? Met datetime moet je eerst alles door strtotime() halen voor je date() kan gebruiken?quote:Op dinsdag 1 mei 2007 16:50 schreef hornage het volgende:
datetime dus
Kan toch ook gewoon met timestamp?quote:Op dinsdag 1 mei 2007 17:19 schreef Geqxon het volgende:
Zodat je in je queries kan rekenen.
Volgens mij kun je dan direct in de query al op eigenschappen filteren als "gisteren" of "over een jaar"quote:
Dat is zeer zeker waar. Echter zijn dat ook dingen die je vantevoren in PHP kunt doen. Een timestamp neemt als unsigned int maar 4 bytes in beslag, terwijl een datetime 8 bytes in beslag neemt. Een index op een unsigned int is daardoor ook nog eens kleiner (en waarschijnlijk sneller). Verder kun je je afvragen of je de presentatie al op databaseniveau wilt doen, of juist in de presentatielaagquote:Op woensdag 2 mei 2007 00:36 schreef Geqxon het volgende:
[..]
Volgens mij kun je dan direct in de query al op eigenschappen filteren als "gisteren" of "over een jaar"
Precies, als je dan toch met PHP werkt kan het inderdaad vaak makkelijker om met timestamps te werken. Strtotime is een mooie functie waar je simpelweg "-1 day" als string in kan voeren.quote:Op woensdag 2 mei 2007 00:44 schreef JeRa het volgende:
[..]
Dat is zeer zeker waar. Echter zijn dat ook dingen die je vantevoren in PHP kunt doen. Een timestamp neemt als unsigned int maar 4 bytes in beslag, terwijl een datetime 8 bytes in beslag neemt. Een index op een unsigned int is daardoor ook nog eens kleiner (en waarschijnlijk sneller). Verder kun je je afvragen of je de presentatie al op databaseniveau wilt doen, of juist in de presentatielaagik zie persoonlijk een RDMBS als een opslagplatform waarbij de datatypen het liefst zo simpel en klein mogelijk zijn.
1 |
Zo had ik het ook op php.net gevonden...maar dat werkt helaas nietquote:
1 2 3 4 5 | header("Content-Type: audio/mpeg"); header("Content-Disposition: attachment; filename=$file"); readfile('blablabla.mp3'); ?> |
1 2 3 | "Hans" . $tussennaam . "Dieter" ?> |
Jep je hebt gelijk. Had die quotes ook al gelijk aangepast, maar het werkte toen alsnog niet...quote:Op woensdag 2 mei 2007 12:18 schreef Geqxon het volgende:
Je moet even oppassen dat je quotes 100% zoals op bovenstaand voorbeeld typt, daarnaast raad ik je aan een constructie als:
[ code verwijderd ]
te gebruiken om de variabele in de string te verwerken.
Mooi! Met deze doet ie wel wat ik wil.quote:Op woensdag 2 mei 2007 12:19 schreef ViPeRII het volgende:
Voorbeeltje voor H4ze:
<?php
$filename = "theDownloadedFileIsCalledThis.mp3";
$myFile = "/absolute/path/to/my/file.mp3";
$mm_type="audio/mpeg";
header("Cache-Control: public, must-revalidate");
header("Pragma: hack");
header("Content-Type: " . $mm_type);
header("Content-Length: " .(string)(filesize($myFile)) );
header('Content-Disposition: attachment; filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
readfile($myFile);
?>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $filename = "theDownloadedFileIsCalledThis.mp3"; $myFile = "/absolute/path/to/my/file.mp3"; $mm_type="audio/mpeg"; header("Cache-Control: public, must-revalidate"); header("Pragma: hack"); header("Content-Type: " . $mm_type); header("Content-Length: " .(string)(filesize($myFile)) ); header('Content-Disposition: attachment; filename="'.$filename.'"'); header("Content-Transfer-Encoding: binary"); readfile($myFile); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $output = ""; $gegevens = array( array("Voornaam" => "Ans" , "Achternaam" => "Albrechts"), array("Voornaam" => "Bram" , "Achternaam" => "Bertus"), array("Voornaam" => "Carol" , "Achternaam" => "Cyprus"), array("Voornaam" => "Dieter", "Achternaam" => "de Vries"), ); foreach ($gegevens as $persoon){ $output .= """ . $persoon['Voornaam'] . "";"" . $persoon['Achternaam'] . ""n"; } header('Content-type: application/csv'); header('Content-Disposition: attachment; filename="bedrijfsgegevens '.date("H_i - d-m-Y",time()).'.csv"'); echo $output; ?> |
1 2 3 4 5 | FROM movies m JOIN binding b ON m.id = b.movie JOIN actors a ON b.actor = a.id WHERE m.id =1 |
1 2 3 | Titanic Bootje zinkt Leonardo di Caprio Titanic Bootje zinkt Kate Winslet |
1 2 | Titanic Bootje zinkt Leonardo di Caprio Kate Winslet |
Dat is ook onderdeel van het gebrek aan informatiequote:Op woensdag 2 mei 2007 23:01 schreef Piles het volgende:
Ik zou het oplossen met 2 queries: 1 voor de film zelf, en 1 voor de acteurs bij die film. Lijkt me het snelst/handigst toch?
Mjah ik bedacht me dat ik dan met een extra loopje door de variabele velden kan lopen. Dan hoef ik me niet druk te maken over 'in welke film zit ik nu'quote:Op woensdag 2 mei 2007 23:04 schreef JeRa het volgende:
@George.W.Bush
Ik zie twee oplossingen op dit ogenblik. Eén oplossing vereist dat jij gaat specificeren wat je nu precies wilt, wil je echt een variabel aantal kolommen terugkrijgen?
Ik wil het uiteraard presenteren per film. Met bovenstaande query moet ik me dus in php bezig gaan houden of de filmnaam nog gelijk is aan het vorige rondje. En zo ja, dan de gevonden acteur in de tabel spugen, en zo nee de row afsluiten en een nieuwe row aanmaken.quote:Wat is er precies mis met de 'per acteur een record' methode?
Ik ben even snel wat in elkaar an het zetten voor een familielid.... Ik doe het wel met de 'record per acteur' methode.quote:De andere oplossing omvat overstappen op een andere RDBMS die custom group aggregate functions ondersteunt zodat je je acteurs in één veld kunt samenvatten, bijvoorbeeld in een comma separated list
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | m.title, m.description, GROUP_CONCAT(a.name) FROM movies m JOIN binding b, actors a ON m.id = b.movie AND b.actor = a.id GROUP BY m.id |
Ik wil inderdaad een beetje rekening houden met performance.quote:Op woensdag 2 mei 2007 23:05 schreef JeRa het volgende:
[..]
Dat is ook onderdeel van het gebrek aan informatieals het om één film gaat die GWB wil opvragen, dan is dat inderdaad een goede oplossing. Gaat het om meerdere films dan wordt het al gauw slechter.
Twee queries? Eerst alle films opvragen, en daarna aan de hand van het film-id alle acteurs erbij opvragen?quote:Op woensdag 2 mei 2007 23:10 schreef George.W.Bush het volgende:
Ik wil het uiteraard presenteren per film. Met bovenstaande query moet ik me dus in php bezig gaan houden of de filmnaam nog gelijk is aan het vorige rondje. En zo ja, dan de gevonden acteur in de tabel spugen, en zo nee de row afsluiten en een nieuwe row aanmaken.
*denkt* hmz, dat hoeft niet eens want ik weet dat het om 1 film gaat ivm de WHERE clausule. Een simpel tellertje in de while lus is genoeg. Als het tellertje > 1 weet ik dat ik alleen de acteurs moet parsen
[..]
Ah right, ik heb denk ik te lang met MySQL 3.23 en 4.0 gewerkt om die te onthoudenquote:Op woensdag 2 mei 2007 23:11 schreef cyberstalker het volgende:
Zou GROUP_CONCAT niet iets zijn?
[ code verwijderd ]
Dan krijg je de acteurs terug als een kommagescheiden lijst die je vervolgens met php kunt explode()n.
oh wist niet dat er zo'n topic wasquote:Op donderdag 3 mei 2007 08:58 schreef JeRa het volgende:
@Desdinova
Eigenlijk is dit iets voor het Unixtopicmaar goed. Die vijf velden zijn filters en elke minuut wordt er door de crondaemon gecontroleerd of het filter voldoet aan de huidige tijd. Zoals je het nu doet zal er dus om één over zeven elke dag gecontroleerd worden of de dag in de maand even is (voor zover ik weet) en zo ja, dan wordt het uitgevoerd. Als je ook nog een dag van de week instelt zal het dus alleen uitgevoerd worden als béide filters voldoen, dus als de dag in de maand even is én het maandag is, bijvoorbeeld.
Ik hou geen log bij.quote:Op donderdag 3 mei 2007 09:20 schreef JeRa het volgende:
@DJRandall
Er is een aparte DLL die de functies zoals mssql_connect() levert; deze DLL kan tijdens die scheduled tasks kennelijk niet geladen worden. Hou je een log bij met PHP errors zodat je kunt terugzien of het geladen kan worden? Probeer anders eens de mssql.dll (als ie zo heet) in je PHP-map onder extensions eens in C:\windows\system32 te zetten om te zien of ie 'm dan wél kan laden.
Wat let je om het te proberen? Als het dan nog niet werkt kun je 'm weer weghalen uit system32, en zul je dus even achter de reden moeten gaan waarom mssql.dll niet wordt geladenquote:Op donderdag 3 mei 2007 09:35 schreef DJRandall het volgende:
[..]
Ik hou geen log bij.
Moet ik na dll kopieren de server herstarten? ( iig zonder, werkt het niet )
1 2 3 4 | $query = "SELECT klant.Email, klant.C_email, extracontactpersoon.Email FROM klant, extracontactpersoon WHERE klant.Nieuwsbrief ='Ja' AND klant.Email LIKE '%@%' AND klant.Klantvan = '$verkoper' AND klant.Klantvan = extracontactpersoon.Klantvan"; ?> |
Of je past je php.ini gewoon aanquote:Op donderdag 3 mei 2007 10:01 schreef DJRandall het volgende:
Ik heb het antwoord hier gevonden:
http://www.issociate.de/b(...)_-_command_line.html
Ik moet de benodigde DLL's handmatig aanroepen ( en in system32 map zetten )
dus in het begin van de php: dl("php_mssql.dll");
Daarna werkt het prima!
Bedankt voor de input!
echo je query en echo de eventuele mysql_error(). kan je die resultaten even posten?quote:Op donderdag 3 mei 2007 10:19 schreef Xtr3mE het volgende:
Ik heb een probleempje met een SQL query:
Ik wil uit meerdere gegevens uit 2 tabellen halen in 1 query.
Ik heb de tabellen klant en extracontactpersoon en ik wil uit de tabel klant de waardes Email en C_email eruit lezen
Uit de tabel extracontactpersoon wil ik de waarde Emaill uitlezen.
Ik heb de volgende code maar die is denk ik best wel fout, en kom er niet uit zelf..
[ code verwijderd ]
Iemand ?
Met de functie array_rand()quote:Op donderdag 3 mei 2007 21:21 schreef Qunix het volgende:
Ik heb vier kolommen met wat tekst. Ze moeten allemaal getoond worden alleen op welke plek maakt me niet uit. Ieder kolom heeft een nummer. Ik wil dit met een rand(); functie doen.
Als ik rand(1, 4); doe, dan pakt hij een willekeurige nummer. Als ik dit voor iedere kolom doe, dan is er een kans dat hij een kolom 2x toont omdat er bv 2 dezelfde nummers zijn door de rand();. Hoe los ik dit op?
Of kan het op een andere manier?
1 |
Thanks.quote:Op donderdag 3 mei 2007 21:47 schreef doka het volgende:
[..]
Met de functie array_rand()
[ code verwijderd ]
Als $oudearray vier elementen bevat, bevat $newarr hierna die 4 elementen in willekeurige volgorde.
Klein dingetje...quote:
1 2 3 4 5 6 7 8 9 10 | $oldarr = array("left", "leftcenter", "rightcenter", "right"); $kolommen = array_rand($oldarr, 4); echo "<pre>"; print_r($kolommen); echo "</pre><br><br>"; echo $kolommen[3]; ?> |
hierom:quote:Op donderdag 3 mei 2007 22:24 schreef Qunix het volgende:
[..]
Klein dingetje...
[ code verwijderd ]
Ik krijg alleen het getal te zien. Hoe kan dat?
http://nl2.php.net/function.array_randquote:If you are picking only one entry, array_rand() returns the key for a random entry. Otherwise, it returns an array of keys for the random entries. This is done so that you can pick random keys as well as values out of the array.
1 2 3 4 5 6 7 8 9 10 | $oldarr = array("left", "leftcenter", "rightcenter", "right"); $kolommen = array_rand($oldarr, 4); echo "<pre>"; print_r($kolommen); echo "</pre><br><br>"; echo $oldarr[$kolommen[3]]; ?> |
Hij werkt! Tnxquote:Op donderdag 3 mei 2007 22:37 schreef mschol het volgende:
[..]
hierom:
[..]
http://nl2.php.net/function.array_rand
dus als je het goed wilt doen doe je dit:
[ code verwijderd ]
Wat zou ik aan moeten passen in de php.ini?quote:Op donderdag 3 mei 2007 13:05 schreef George.W.Bush het volgende:
[..]
Of je past je php.ini gewoon aan
Conclusie: als je php.exe los aanroept laadt hij die INI-file niet. Al geprobeerd die ini-file in c:\windows\ te zetten? Of kijk even in een README, misschien dat daar wat tips in staan over het gebruik van PHP als CLI executable.quote:Op vrijdag 4 mei 2007 08:48 schreef DJRandall het volgende:
[..]
Wat zou ik aan moeten passen in de php.ini?
De juiste dll's worden al geladen in php.ini!
Alleen php.exe via cmd gebruikt die dll's niet!
Je MOET ze apart aanroepen.
Dus ik moet dan datetime gebruiken?quote:Op woensdag 2 mei 2007 09:16 schreef Geqxon het volgende:
[..]
Precies, als je dan toch met PHP werkt kan het inderdaad vaak makkelijker om met timestamps te werken. Strtotime is een mooie functie waar je simpelweg "-1 day" als string in kan voeren.
Ik vraag mij daardoor ook af wie er MySQL in combinatie met iets anders gebruikt dan bijvoorbeeld PHP of Java / C.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |