Staat er ook een hoofdstuk over netjes coden en over dubuggen in?quote:Op woensdag 11 mei 2005 16:10 schreef TheSeeker_NL het volgende:
[..]
Ik zit aan de hand van een boek dit te oefenen
goeie site! Staat alles duidelijk uitgelegdquote:Op woensdag 11 mei 2005 14:10 schreef DionysuZ het volgende:
[..]
het is al een beetje roestig voor mij, maar heb zelf ook een heleboel problemen gehad met het versturen van MIME mails met attachments via PHP. Misschien heb je hier iets aan: http://www.theukwebdesign(...)file-attachments.php
1 2 | $content = "Hallo dit is een test.\nMet een break, hier en daar een komma, \nsoms wat tekst en verder veel bla."; |
1 | mma,soms wat tekst en verder veel bla.ÓÆÞÝÇxsn|quæßóovÓ§wmÎ |
1 | mysql_close($rDbConn); |
1 | @mysql_close($rDbConn); |
Dat maakt eigenlijk wel uit, je moet rekening houden met het feit dat mysql_close() een geldige link nodig heeft. Als ie dat niet krijgt, betekent dat er óf geen verbinding kon worden gemaakt met de MySQL-server óf dat de verbinding ergens werd verbroken (door een andere mysql_close() wellicht?). In beide gevallen zou je dit moeten kunnen afvangen met een bericht naar de gebruikerquote:Op woensdag 11 mei 2005 18:08 schreef BaggerUser het volgende:
simpele vraag:
op die regel krijg ik soms een foutmelding en dat maakt verder niet uit
ik krijg het als er een verkeerde loginnaam of verkeerde wachtwoord wordt opgegeven het is de 1e close die er in zit en er wordt wel een verbinding opgebouwt anders kan die ook niet weten dat de gebruikersnam niet kloptquote:Op woensdag 11 mei 2005 19:04 schreef JeRa het volgende:
[..]
Dat maakt eigenlijk wel uit, je moet rekening houden met het feit dat mysql_close() een geldige link nodig heeft. Als ie dat niet krijgt, betekent dat er óf geen verbinding kon worden gemaakt met de MySQL-server óf dat de verbinding ergens werd verbroken (door een andere mysql_close() wellicht?). In beide gevallen zou je dit moeten kunnen afvangen met een bericht naar de gebruiker
MySQL verbreekt de verbinding als de naam of het wachtwoord niet klopt.quote:Op woensdag 11 mei 2005 19:35 schreef BaggerUser het volgende:
[..]
ik krijg het als er een verkeerde loginnaam of verkeerde wachtwoord wordt opgegeven het is de 1e close die er in zit en er wordt wel een verbinding opgebouwt anders kan die ook niet weten dat de gebruikersnam niet klopthm shit nu begin i kme er toch aan te irriteren
Hiermee krijg ik dus de laatste 8 reacties wel onderelkaar, maar niet zoals ik het helemaal wil.quote:$SQL = "SELECT id, ber_id, tijd, soort FROM `reacties` GROUP BY ber_id ORDER BY tijd DESC LIMIT 0, 8";
$query = mysql_query($SQL);
while ( $result = mysql_fetch_array ( $query ) ) {
$ber_id = $result['ber_id'];
$soort = $result['soort'];
if ($soort == "nieuws") {
$titel = "onderwerp";
}
if ($soort == "evenementen") {
$titel = "evenement";
}
if ($soort == "recepten") {
$titel = "recept";
}
$SQL2 = "SELECT id, $titel, reacties FROM `$soort` WHERE id = '$ber_id'";
$query2 = mysql_query($SQL2);
while ( $result2 = mysql_fetch_array ( $query2 ) ) {
$id = $result2['id'];
$titel2 = $result2[$titel];
$reacties = $result2['reacties'];
echo "<a href=\"?page=$soort&action=lees&id=$id\">" . "$titel2" . "</a>" . " ($reacties)" . "<br>";
}
}
Als ik hem niet group dan kan ik 4 keer dezelfde reactie onderelkaar krijgen.quote:Op woensdag 11 mei 2005 20:23 schreef ikke_ook het volgende:
waarom doe je die group by ber_id in de bovenste querie?
Ik zou t geloof ik allemaal in een array gooien en dan dat array sorteren.
ah ok, klopt.quote:Op woensdag 11 mei 2005 20:27 schreef saban het volgende:
[..]
Als ik hem niet group dan kan ik 4 keer dezelfde reactie onderelkaar krijgen.
Dus stel ik heb 4 keer op ber_id 2 gereageerd, dan zie je 4 keer onder elkaar ber_id 2, terwijl ik alleen de nieuwste wil zien.
Leg uit ?quote:Op woensdag 11 mei 2005 20:26 schreef ikke_ook het volgende:
Ik zou er volgens mij 1 tabel van maken...
Ik zie het nut nog niet van 4 tabellen.
Ah ok, maar is bericht in de reactie tabel hetzelfde als bericht in recepten (als het id overeenkomt?)quote:Op woensdag 11 mei 2005 20:31 schreef saban het volgende:
[..]
Leg uit ?
Ieder tabel heeft meerdere velden, ik laat alleen zien welke ik nodig heb voor de reacties.
Nieuws bevat bijv ook bron & bronlink, daarin tegendeel recepten en evenementen weer niet.
Nee, tuurlijk is het niet hetzelfde, met bericht bij nieuws en bericht bij reactie bedoelde ik:quote:Op woensdag 11 mei 2005 20:34 schreef ikke_ook het volgende:
[..]
Ah ok, maar is bericht in de reactie tabel hetzelfde als bericht in recepten (als het id overeenkomt?)
Dat zou namelijk dubbele, en nutteloze informatie zijn.
Ik zou het persoonlijk zo maken.
De reacties tabel bevat alle berichten, met als een veld ID, en dat ID wijst naar het id uit de andere tabel(Hierdoor weet je bij welk recept/nieuwsitem het bericht hoort), en dan nog een evenement_id die aangeeft bij welk evenement hij hoort.
Helaas ben ik nog niet zover om te kunnen werken met join's.quote:Op woensdag 11 mei 2005 20:39 schreef ikke_ook het volgende:
ah dat verklaart een hoop, ik zie nu ook dat de tabbellen andere kolomnamen hebben dan wat je hierboven zegt, hij heet reacties ipv berichten, das ook een stuk duidelijker
Heb je al gedacht aan een join ofzo?dan kun je het met 1 query oplossen volgens mij
Mja ik hoop dat iemand ermee kan helpenquote:Op woensdag 11 mei 2005 20:44 schreef ikke_ook het volgende:
ze zijn lastig, ik ben er ook niet zo goed in, maar ik weet zeker dat er hier iemand rondloopt die dat even aan je kan vertellenIk zal ook ff kijken of het mij lukt
Tip, gewoon snel hier vragenquote:Op woensdag 11 mei 2005 20:46 schreef saban het volgende:
[..]
Mja ik hoop dat iemand ermee kan helpen
Ik ben al maanden bezig met mijn project, nog steeds niet af, loop steeds tegen zulke problemen op.
Als ik even doorzet heb 'm hoop ik begin juni af![]()
Anyone ?
Meestal (altijd) wil ik er gewoon zelf uitkomen, leer ik ook weer van mijn fouten, als ik ze altijd door andere laat oplossen leer ik het zelf niet echt.quote:Op woensdag 11 mei 2005 20:48 schreef ikke_ook het volgende:
[..]
Tip, gewoon snel hier vragenNiet te lang met problemen blijven zitten, vaak zijn het simpele foutjes die wij dummies niet zo snel zien
Als ik me het nog goed herinneren met een INNER JOINquote:Op woensdag 11 mei 2005 20:16 schreef saban het volgende:
Hmm, ik loop tegen een probleem op.
Ik heb 4 tabellen; Nieuws, Evenementen, Recepten, Reacties.
Nieuws ziet er zo uit:
id, nieuws, bericht, tijd
Evenementen ziet er zo uit:
id, evenement, bericht, tijd
Recepten ziet er zo uit:
id, recepten, bericht, tijd
Reacties ziet er zo uit:
id, ber_id, soort, bericht, tijd
ber_id staat gekoppeld aan de id van de andere 3 tabellen en soort is altijd nieuws/evenementen/recepten.
Nu wil ik de laatste 8 reacties onder elkaar plaatsen.
quote:What does the premature end of script headers error mean?
99% of the time, this is caused by improper permission settings. Make sure you have the proper permissions set on your script (CHMOD 755).
You should also make sure that you are using a text-only editor such as Notepad or UltraEdit to edit your scripts (on a PC) or SimpleText or BBEdit (on a Mac).
Also be sure to also upload your scripts in ASCII and not binary.
Failure to do so will result in your files not executing properly.
Nu werk je alleen met nieuws & reacties, terwijl ik niet alleen de laatste 8 reacties van nieuws wil, maar de laatste 8 reacties van nieuws/evenementen/recepten.quote:Op woensdag 11 mei 2005 22:56 schreef Kapt.Ruigbaard het volgende:
[..]
Als ik me het nog goed herinneren met een INNER JOIN
Iets als:
SELECT nieuws.id, nieuws.bericht, reacties.id, reacties.bericht
FROM nieuws INNER JOIN reacties.ber_id ON nieuws.id
WHERE...
Geloof ik
Ik neem aan dat reacties.ber_id een FK van nieuws.id is?
1 2 3 4 5 6 | <input name="option" type="radio" value="1" CHECKED>Open <input name="option" type="radio" value="0" >Dicht //Hij is nu dus open. $query = "UPDATE cols SET status = ".$_POST['option']." WHERE colid = 'Mont Ventoux'"; |
Dat checked niet in hoofdletters. En als je ook nog XHTML valid wil coden wordt het zo iets:quote:
1 2 | <input name="option" type="radio" value="1" checked="checked" />Open <input name="option" type="radio" value="0" />Dicht |
OO is een manier om zelfgemaakte functies die je vaak gebruikt maar één keer te schrijven, en die op verschillende plaatsen in je code aan te roepen.quote:Op donderdag 12 mei 2005 20:57 schreef ikke_ook het volgende:
Ik wil mij eens gaan wagen aan Object georienteerd PHP. Ik snap er nog heel weinig van, en ik zie het nut ook niet echt. Dus ik dacht als ik nou iets weet om te programmeren waarbij het heel handig is om dat object georienteerd te doen, dan snap ik t misschien wel beter
Dus de vraag : Wat is nou echt iets wat je handig met OO kunt programmeren?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | <html> <head> <title>FILMVERSLAGEN</title> <style type="text/css"> body { margin-top: 20px; margin-left: 20px; margin-right: 20px; background-color: #FFFFFF; } body, td, th { font-family: verdana, sans-serif; font-size: 10pt; color: #000000; } img { border: 0px; } form { margin: 0px; } .small { font-size: 8pt; } a:link, a:active, a:visited { color: #336699; text-decoration: none; } a:hover { color: #7F0000; text-decoration: underline; } a.administrator:link, a.administrator:active, a.administrator:visited { color: red; } a.moderator:link, a.moderator:active, a.moderator:visited { color: blue; } input, select, textarea { border: 1px solid silver; background-color: #FFFFFF; font-size: 10pt; } textarea { font-family: verdana, sans-serif; width: 100%; } .main { width: 750px; } a.jemoeder { color: #FFFFCC; } .header { border-collapse: collapse; width: 100%; margin-bottom: 10px; } .header td { padding: 0px; vertical-align: bottom; } .header td.logo { text-align: left; width: 100%; } .header td.namebox { text-align: right; } .header td.namebox .title { font-size: 16pt; font-weight: bold; letter-spacing: 1px; color: #336699; border-bottom: 2px solid #ebd6ad; } .header td.namebox .descr { font-style: italic; padding-top: 2px; } .menu { border: 1px solid #336699; background-image: url(images/menubg.gif); background-repeat: repeat-x; background-color: #E5E5E5; text-align: left; padding-top: 4px; padding-bottom: 4px; margin-bottom: 20px; font-size: 9pt; } .menu a { padding-left: 10px; padding-right: 10px; padding-top: 4px; padding-bottom: 4px; border-right: 1px solid #336699; } .menu a:hover { background-image: url(images/menubg2.gif); background-repeat: repeat-x; background-color: #FFFFFF; text-decoration: none; border-right: 1px solid #336699; } .maintable { border-collapse: collapse; border-left: 1px solid #336699; border-right: 1px solid #336699; border-bottom: 2px solid #336699; width: 100%; margin-bottom: 20px; } .maintable th { color: #EBD6AD; font-weight: bold; background-color: #336699; background-image: url(images/tableheadbg.gif); background-position: top; background-repeat: repeat-x; padding: 6px; padding-top: 3px; padding-bottom: 3px; border-left: 1px solid #336699; border-top: 1px solid #336699; } .maintable td { background-color: #EFEFEF; padding: 6px; text-align: left; border-left: 1px solid #336699; border-top: 1px solid #336699; vertical-align: middle; } .maintable td.forumcat { font-weight: bold; letter-spacing: 1px; background-image: url(images/menubg.gif); background-repeat: repeat-x; background-color: #E5E5E5; } .maintable td.td1 { background-color: #EFEFEF; } .maintable td.td2 { background-color: #E5E5E5; } .linkbar { color: #323232; margin-bottom: 2px; font-size: 8pt; } .copyright { color: #323232; margin-bottom: 20px; font-size: 8pt; } </style> </head> <body> <? //hier wordt geconnect met de database om alle gegevens van de film op te slaan if ($_POST["verzending"] == 1) { mysql_connect('localhost','root',''); mysql_select_db('films'); $query = "INSERT INTO films (id,naam,jaar,ster,acteurs,regis,info,beoordeling) "; $query .= "VALUES ('"; $query .= $_POST["id"] ."', '" ; $query .= $_POST["naam"] ."', '" ; $query .= $_POST["jaar"] ."', '" ; $query .= $_POST["ster"] ."', '" ; $query .= $_POST["acteurs"] ."', '" ; $query .= $_POST["regis"] ."', '" ; $query .= $_POST["info"] ."', '" ; $query .= $_POST["beoordeling"] ."');" ; mysql_query($query) or die(mysql_error()); //hier wordt geconnect met de database om de acteurs die ook zijn ingevoerd in een lange string op te kunnen slaan //if ($_POST["verzending"] == 1) { mysql_connect('localhost','root',''); mysql_select_db('films'); //hier worden de gegevens van alle acteurs in de database opgehaald $resultaat1=mysql_query("SELECT * FROM acteurs"); while(list($id,$naam,$info)=mysql_fetch_row($resultaat1)){ //--- echo "dit is de naam van de acteurs in de database = ".$naam."<BR>"; //hier worden de acteurs die zijn ingevoerd in een string geknipt naar een array $acteurs = $_POST["acteurs"]; $acteurs = str_replace(", ", " als ", $acteurs); $act = explode(" als ", $acteurs); //hier is de forloop die elke acteur 1 x gebruikt binnen deze loop for ($a=0; $a<count($act); $a+=2){ //--- //$a = 0; //while (isset($act[$a])) { //$a = $a+2; $actor = $act[$a]; echo " dit is actor $actor, oftewel $a <BR>";//--------------------------------------------------------------------- //als een naam uit de geknipte string overeen komt met de naam uit de database wordt de database geupdate $resultaat1=mysql_query("SELECT * FROM acteurs"); while(list($id,$naam,$info)=mysql_fetch_row($resultaat1)){ if ($actor == $naam) { $query = 'UPDATE `acteurs` SET `info` = \''.$_POST[naam].'\' WHERE `naam` = \''.$actor. ',' .'\' LIMIT 1;'; mysql_query($query) or die(mysql_error()); echo "$actor bestaat al en wordt geupdate"; }else{ //anders wordt er een nieuwe naam aangemaakt in de database $query = "INSERT INTO acteurs (naam,info) "; $query .= "VALUES ('"; $query .= $actor ."', '" ; $query .= $_POST["naam"] ."');" ; mysql_query($query) or die(mysql_error()); } } } } echo "Klik <a href='index.php'>hier</a> om terug te gaan daar de hoofdpagina"; } else { ?> <form method="POST"> <table width="100%" height="49" border="0" class="maintable"> <tr class="tablehead"> <th height="47" class="tablehead"><font size="+1">Films Invoeren</font></th> </tr> </table> <table width="100%" border="1"> <tr> <td width="22%"><input type="text" size="20" name="naam"></td> <td width="78%">Naam van de Film</td> </tr> <tr> <td><select name="jaar" size="1"> <option>1994</option> <option>1995</option> <option>1996</option> <option>1997</option> <option>1998</option> <option>1999</option> <option>2000</option> <option>2001</option> <option>2002</option> <option>2003</option> <option>2004</option> <option>2005</option> <option>2006</option> </select></td> <td>Year of Release</td> </tr> <tr> <tr> <td><select name="ster" size="1"> <option>0</option> <option>1</option> <option>2</option> <option>3</option> <option>4</option> <option>5</option> <option>0.5</option> <option>1.5</option> <option>2.5</option> <option>3.5</option> <option>4.5</option> </select></td> <td>Ster(ren)</td> </tr> <tr> <td><input type="text" size="20" name="acteurs"></td> <td>Naam van Acteur(s)/Actrice(s)</td> </tr> <tr> <td><input type="text" size="20" name="regis"></td> <td>Naam van Regiseur</td> </tr> </table> <p> </p> <table width="100%" height="126" border="0" class="maintable"> <tr class="tablehead"> <th class="tablehead">Samenvatting van de Film:</th> </tr> <tr> <td><textarea name="info" rows="6" cols="32"></textarea></td> </tr> </table> <p> </p> <table width="100%" height="126" border="0" class="maintable"> <tr class="tablehead"> <th class="tablehead">Beoordeling over de Film:</th> </tr> <tr> <td><textarea name="beoordeling" rows="2" cols="32"></textarea></td> </tr> </table> <table width="100%" border="0"> <tr> <td align="center"><input type="submit" name="verzenden" value="Archiveren"></td> </tr> </table> <p> </p> <p> </p> <p><input type="hidden" name="verzending" value="1"></p> </form> <? } // }4 ?> </td></tr> </table> </body> </html> |
Ja maar dat doe ik nu ook al met die functiesquote:Op donderdag 12 mei 2005 22:05 schreef Ridocar het volgende:
[..]
OO is een manier om zelfgemaakte functies die je vaak gebruikt maar één keer te schrijven, en die op verschillende plaatsen in je code aan te roepen.
Het scheelt typwerk en je code is overzichtelijker.
Je kunt dan de functies in een apart includebestand zetten en deze aanroepen als je ze nodig hebt.
Wat heb je zelf al geprobeerd? Hoe heb je ge-debugged?quote:Op donderdag 12 mei 2005 22:08 schreef Pauluzz_U5 het volgende:
[ code verwijderd ]
Dit is dus mijn script, de bedoeling is dat ik een film toevoeg aan de database en daarbij ook acteurs toevoeg, een voorbeeld van een invulling zou zijn: "fok als forum, Arnold Swets als pipo de clown" en dan zou hij of die 2 toevoegen aan de database, of die 2 (of 1) updaten als ze al reeds in de acteur database staan.
Dit gaat dus fout, blijkbaar, hij voert het niet altijd goed in , en het updaten doet hij helemaal bagger, wie kan mij helpen want ik kijk er nu al wel een paar weken tegenaan en heb van alles geprobeerd.
(p.s. let niet op sommige baggere manieren om php te gebruiken, ik snap wel dat het vast veel kleiner en sneller kan, maar goed)
thanks (ikk_ook ookquote:Op donderdag 12 mei 2005 18:25 schreef DutchBlood het volgende:
[..]
Dat checked niet in hoofdletters. En als je ook nog XHTML valid wil coden wordt het zo iets:
[ code verwijderd ]
Ikke, daar heb je een donders goed punt, ik zal het proberen iets overzichtelijker neer te zetten met voorbeelden en uitkomsten:quote:Op donderdag 12 mei 2005 22:13 schreef ikke_ook het volgende:
[..]
Wat heb je zelf al geprobeerd? Hoe heb je ge-debugged?
probeer tussen resultaten te printen, op die manier kun je misschien zien wat er fout gaat, en wat gaat er fout met updaten?
Ik denk niet dat er hier iemand is die zin heeft om dat allemaal door te gaan lezen en de fout voor jou te gaan zoeken![]()
Dus probeer kleine stukjes code, en als je er dan niet uit komt, post je een klein stukje code, en niet tig regels
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 | //hier wordt geconnect met de database om alle gegevens van de film op te slaan die ik hieronder in met voorbeelden heb aangegeven if ($_POST["verzending"] == 1) { mysql_connect('localhost','root',''); mysql_select_db('films'); $query = "INSERT INTO films (id,naam,jaar,ster,acteurs,regis,info,beoordeling) "; $query .= "VALUES ('"; $query .= $_POST["id"] ."', '" ; //bijv. 1 $query .= $_POST["naam"] ."', '" ; //bijv. Lord of the Rings $query .= $_POST["jaar"] ."', '" ; //bijv. 2004 $query .= $_POST["ster"] ."', '" ; //nvt $query .= $_POST["acteurs"] ."', '" ; //bijv. fok als forum, simon als king Salomo $query .= $_POST["regis"] ."', '" ; //nvt $query .= $_POST["info"] ."', '" ; //nvt $query .= $_POST["beoordeling"] ."');" ;//nvt mysql_query($query) or die(mysql_error()); //hier wordt geconnect met de database om de acteurs die ook zijn ingevoerd in een lange string op te kunnen slaan mysql_connect('localhost','root',''); mysql_select_db('films'); //hier worden de gegevens van alle acteurs die al zijn ingevoerd en in de database staan opgehaald $resultaat1=mysql_query("SELECT * FROM acteurs"); while(list($id,$naam,$info)=mysql_fetch_row($resultaat1)){ //de naam is in dit geval de acteurs die al bestaan //hier worden de acteurs die zijn ingevoerd in een string geknipt naar een array $acteurs = $_POST["acteurs"]; $acteurs = str_replace(", ", " als ", $acteurs); $act = explode(" als ", $acteurs); for ($a=0; $a<count($act); $a+=2){ $actor = $act[$a]; // actor veranderd elke keer naar een andere waarde als hij de vergelijking hieronder heeft gehad, in dit geval als $a == 0; ==>> $actor == fok; // actor veranderd elke keer naar een andere waarde als hij de vergelijking hieronder heeft gehad, in dit geval als $a == 2; ==>> $actor == simon; //als een naam uit de geknipte string overeen komt met de naam uit de database wordt de database geupdate (hier zit de fout ergens) $resultaat1=mysql_query("SELECT * FROM acteurs"); while(list($id,$naam,$info)=mysql_fetch_row($resultaat1)){ if ($actor == $naam) { $query = 'UPDATE `acteurs` SET `info` = \''.$_POST[naam].'\' WHERE `naam` = \''.$actor. ',' .'\' LIMIT 1;'; mysql_query($query) or die(mysql_error()); echo "$actor bestaat al en wordt geupdate"; }else{ //anders wordt er een nieuwe naam aangemaakt in de database $query = "INSERT INTO acteurs (naam,info) "; $query .= "VALUES ('"; $query .= $actor ."', '" ; $query .= $_POST["naam"] ."');" ; mysql_query($query) or die(mysql_error()); } } } } echo "Klik <a href='index.php'>hier</a> om terug te gaan daar de hoofdpagina"; |
dat checked geeft aan welke button aangevinkt is (default) Dus je leest eerst uit je database of hij open of dicht is, en daar zet je dan checked bijquote:Op donderdag 12 mei 2005 22:28 schreef achterop23 het volgende:
[..]
thanks (ikk_ook ook). maar nu post ik alleen toch? ik wil dat de buttons zo gaan staan zoals het ook in de database staat. daarna pas ik het eventueel aan en update de database
Ten eerste, je hoeft maar 1x met je database te connecten in 1 file.quote:Op donderdag 12 mei 2005 22:31 schreef Pauluzz_U5 het volgende:
[..]
Ikke, daar heb je een donders goed punt, ik zal het proberen iets overzichtelijker neer te zetten met voorbeelden en uitkomsten:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <?php //hier wordt geconnect met de database om alle gegevens van de film op te slaan die ik hieronder in met voorbeelden heb aangegeven if ($_POST["verzending"] == 1) { mysql_connect('localhost','root',''); mysql_select_db('films'); $query = "INSERT INTO films (id,naam,jaar,ster,acteurs,regis,info,beoordeling) "; $query .= "VALUES ('"; $query .= $_POST["id"] ."', '" ; //bijv. 1 $query .= $_POST["naam"] ."', '" ; //bijv. Lord of the Rings $query .= $_POST["jaar"] ."', '" ; //bijv. 2004 $query .= $_POST["ster"] ."', '" ; //nvt $query .= $_POST["acteurs"] ."', '" ; //bijv. fok als forum, simon als king Salomo $query .= $_POST["regis"] ."', '" ; //nvt $query .= $_POST["info"] ."', '" ; //nvt $query .= $_POST["beoordeling"] ."');" ;//nvt mysql_query($query) or die(mysql_error()); //hier wordt geconnect met de database om de acteurs die ook zijn ingevoerd in een lange string op te kunnen slaan //hier worden de gegevens van alle acteurs die al zijn ingevoerd en in de database staan opgehaald $resultaat1=mysql_query("SELECT * FROM acteurs"); while(list($id,$naam,$info)=mysql_fetch_row($resultaat1)){ //de naam is in dit geval de acteurs die al bestaan //hier worden de acteurs die zijn ingevoerd in een string geknipt naar een array $acteurs = $_POST["acteurs"]; $acteurs = str_replace(", ", " als ", $acteurs); $act = explode(" als ", $acteurs); for ($a=0; $a<count($act); $a+=2){ $actor = $act[$a]; // actor veranderd elke keer naar een andere waarde als hij de vergelijking hieronder heeft gehad, in dit geval als $a == 0; ==>> $actor == fok; // actor veranderd elke keer naar een andere waarde als hij de vergelijking hieronder heeft gehad, in dit geval als $a == 2; ==>> $actor == simon; //als een naam uit de geknipte string overeen komt met de naam uit de database wordt de database geupdate (hier zit de fout ergens) $resultaat1=mysql_query("SELECT * FROM acteurs"); while(list($id,$naam,$info)=mysql_fetch_row($resultaat1)){ if ($actor == $naam) { $query = 'UPDATE `acteurs` SET `info` = \''.$_POST[naam].'\' WHERE `naam` = \''.$actor. ',' .'\' LIMIT 1;'; mysql_query($query) or die(mysql_error()); echo "$actor bestaat al en wordt geupdate"; }else{ //anders wordt er een nieuwe naam aangemaakt in de database $query = "INSERT INTO acteurs (naam,info) "; $query .= "VALUES ('"; $query .= $actor ."', '" ; $query .= $_POST["naam"] ."');" ; mysql_query($query) or die(mysql_error()); } } } } echo "Klik <a href='index.php'>hier</a> om terug te gaan daar de hoofdpagina"; ?> |
ik snap hemquote:Op donderdag 12 mei 2005 22:33 schreef ikke_ook het volgende:
[..]
dat checked geeft aan welke button aangevinkt is (default) Dus je leest eerst uit je database of hij open of dicht is, en daar zet je dan checked bij
alles gaat hier fout, ik krijg een lege site... kun je ff vertelle wat je hebt aangepast (ik zie het zo nie)quote:Op donderdag 12 mei 2005 22:54 schreef ikke_ook het volgende:
ja ik ben nogal van de smilies
-antislowchat edit-
Is het trouwens een parse error Pauluzz_U5? of wat gaat er nou precies mis?
anders probeer je zelf nog wat uit.quote:Op vrijdag 13 mei 2005 09:41 schreef saban het volgende:
Nog steeds niemand heeft een nette query voor me? Flauw
Hou je geblaat even voor je zelf, wil je.quote:Op vrijdag 13 mei 2005 10:09 schreef hornage het volgende:
[..]
anders probeer je zelf nog wat uit.
Lees ff wat zooi over de joins, wat proberen enzo, komt het vanzelf goed
Wat heb je op dit moment dan?quote:Op vrijdag 13 mei 2005 13:11 schreef saban het volgende:
[..]
Hou je geblaat even voor je zelf, wil je.
Er komt niks vanzelf goed, het komt goed als je het kan, niet vanzelf.
Ja ik heb het geprobeerd, ja ik heb er over gelezen, ja ik begrijp het nu iets beter, maar nee ik kom er niet uit.
Een aantal posts terug heb ik alles staan, ook met mn database/tabellen uitgelegt.quote:Op vrijdag 13 mei 2005 13:33 schreef Kapt.Ruigbaard het volgende:
[..]
Wat heb je op dit moment dan?
Post je querie(s) eens.
Je hebt toch dingen zelf geprobeerd?quote:Op vrijdag 13 mei 2005 13:36 schreef saban het volgende:
[..]
Een aantal posts terug heb ik alles staan, ook met mn database/tabellen uitgelegt.
Het werkt wel, maar niet zoals ik wil. Wat klopt er niet dan ?quote:$SQL = "SELECT id, ber_id, tijd, soort FROM `reacties` GROUP BY ber_id ORDER BY tijd DESC LIMIT 0, 8";
$query = mysql_query($SQL);
while ( $result = mysql_fetch_array ( $query ) ) {
$ber_id = $result['ber_id'];
$soort = $result['soort'];
if ($soort == "nieuws") {
$titel = "onderwerp";
}
if ($soort == "evenementen") {
$titel = "evenement";
}
$SQL2 = "SELECT id, $titel, reacties FROM `$soort` WHERE id = '$ber_id'";
$query2 = mysql_query($SQL2);
while ( $result2 = mysql_fetch_array ( $query2 ) ) {
$id = $result2['id'];
$titel2 = $result2[$titel];
$reacties = $result2['reacties'];
echo "$id" . "$titel2" . "<br>";
}
}
Dat is even uit mijn hoofd wat ik geprobeerd had.quote:SELECT reacties.id, reacties.ber_id, reacties.tijd, nieuws.id, nieuws.bericht, evenementen.id, evenementen.evenement FROM reacties,nieuws,evenementen GROUP BY reacties.ber_id DESC LIMIT 0,8
Over welke query hebben we het nuquote:Op vrijdag 13 mei 2005 13:55 schreef Kapt.Ruigbaard het volgende:
Waarom sorteer je in je query niet op tijd?
Ik heb even snel getest, en volgens mij is dit de goede query:quote:Op vrijdag 13 mei 2005 13:49 schreef saban het volgende:
Ik heb 3 tabellen.
Nieuws, Evenementen, Reacties.
Ieder nieuws bericht wordt opgeslagen in 'Nieuws' met een uniek ID.
Ieder evenement wordt opslagen in 'Evenementen' met een uniek ID.
Ieder reactie op een nieuws bericht of op een evenement wordt opgeslagen in 'Reacties'.
Hoe het wordt opgeslagen heb ik een voorbeeld van;
Tabel Nieuws:
id | bericht | tijd
1 | fok down voor 2 uur | 20050511203821
2 | bush in nederland | 20050510175123
Tabel Evenementen:
id | evenement | tijd
1 | Feest in Delft | 20050410145101
3 | Carnaval Rdam | 20050411015145
Tabel Reacties:
id | ber_id | bericht | soort | tijd
1 | 2 | wat moet bush in nederland | nieuws | 20050501014521
2 | 1 | Nah, delft is veelste ver | evenementen | 20050502015132
3 | 1 | Naar t feest in delft kom ik echt wel | evenementen | 20050502035545
Ik wil de laatste 8 reacties uitlezen uit 'Reacties'.
Daarvoor heb ik een script;
[..]
Het werkt wel, maar niet zoals ik wil. Wat klopt er niet dan ?
Bijvoorbeeld ik heb 5 reacties op een nieuwsbericht met ID 1.
Daarna heb ik 3 keer gereageert op een nieuwsbericht met ID 3.
Daarna 3 keer gereageert op een evenement met ID 6.
Daarna nog 2 keer gereageert op een nieuwsbericht met ID 1.
Dan moet ik de laatste reactie van nieuwsbericht met ID 1 zien, daarna de latste reactie op 't evenement met ID 6, daarna de reactie op nieuwsbericht met ID 3.
Alleen dat gebeurd dus niet.
Ik heb ook zoets geprobeerd als;
[..]
Dat is even uit mijn hoofd wat ik geprobeerd had.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $sql1 = "SELECT reacties.id,reacties.bericht,nieuws.id,nieuws.bericht,evenementen.id,evenementen.evenement FROM nieuws,evenementen LEFT JOIN reacties ON (reacties.ber_id = nieuws.id OR reacties.ber_id = evenementen.id) GROUP BY reacties.id ORDER BY reacties.tijd DESC"; $query1 = mysql_query($sql1) or die(mysql_error()); while ( $result1 = mysql_fetch_array ( $query1 ) ) { $id = $result1[0]; $titel2 = $result1[1]; echo "$id" . "$titel2" . "<br>"; } ?> |
Hier werkt het gewoonquote:Op vrijdag 13 mei 2005 14:38 schreef saban het volgende:
MouseInteractive;
Bijna, maar helaas dat werkt ook niet.
Hij GROUP't ze niet, waarschijnlijk omdat je GROUP BY reacties.id doet ipv reacties.ber_id, maar dan werkt het alsnog niet.
1 2 3 4 | id ber_id bericht soort tijd 1 2 wat moet bush in nederland nieuws 20050501014521 2 1 nah, delft is veelste ver evenementen 20050429015132 3 1 naar het feest in delft kom ik echt wel evenementen 20050503015245 |
1 2 3 | 3naar het feest in delft kom ik echt wel 1wat moet bush in nederland 2nah, delft is veelste ver |
Hmm ik kom er verder ook niet helemaal uit. Ik denk dat je wel op de goede weg zit. Speel eens wat met dat Group by en Order by. Misschien kom je er dan ineens uit.quote:Op vrijdag 13 mei 2005 14:46 schreef saban het volgende:
Als je op ID 1 reageert, daarna op ID 2 en daarna weer op ID 1.
Moet het NIET dit zijn:
Reactie ID 1
Reactie ID 2
Reactie ID 1
Het moet dan zijn
Reactie ID 1
Reactie ID 2
Wanneer er dubbele ID's zijn, zoals nu op ID 1, moet hij die grouperen.
Ik ben er al een tijdje mee bezig, maar kom er steeds niet uit, dus vraag ik het ook niet. Misschien ben ik wel te onduidelijk. Ik zal vanavond wat screenshots maken met verschillende queriesquote:Op vrijdag 13 mei 2005 14:58 schreef MouseInteractive het volgende:
[..]
Hmm ik kom er verder ook niet helemaal uit. Ik denk dat je wel op de goede weg zit. Speel eens wat met dat Group by en Order by. Misschien kom je er dan ineens uit.
Wat ik me net bedenk: Je kunt ook in de tabel met nieuwsberichten en evenementen een apart veld maken, genaamd "last_reply" (of zoiets). En dan zorg je ervoor dat, elke keer als er een reactie wordt geplaatst, de timestamp daarvan ook wordt ingevoegd in de nieuwstabel bij het betreffende bericht d.m.v UPDATE. En dan is het vrij makkelijk om te kijken op welk bericht het laatste is gereageerd.quote:Op vrijdag 13 mei 2005 14:59 schreef saban het volgende:
[..]
Ik ben er al een tijdje mee bezig, maar kom er steeds niet uit, dus vraag ik het ook niet. Misschien ben ik wel te onduidelijk. Ik zal vanavond wat screenshots maken met verschillende queries
Slimquote:Op vrijdag 13 mei 2005 15:52 schreef Roönaän het volgende:
beter om twee velden te nemen, last_reply_date en last_reply_id.. kan je meteen linken naar de reactie.
In welke tabel bedoelen jullie precies?quote:Op vrijdag 13 mei 2005 15:52 schreef Roönaän het volgende:
beter om twee velden te nemen, last_reply_date en last_reply_id.. kan je meteen linken naar de reactie.
1 | SELECT name, value FROM foo GROUP BY name |
1 | SELECT name, max(value) FROM foo GROUP BY name |
1 2 | SELECT name, value FROM foo WHERE name IN (SELECT name FROM foo GROUP BY name) |
Hmm dat wist ik niet. Kijk, ik ben geen SQL expertquote:Op vrijdag 13 mei 2005 16:55 schreef SuperRembo het volgende:
@mouseinteractive: de group by query's die jij geeft worden wel ge-accepteerd door MySql, maar ze zijn wel fout. De gegevens die je terug krijgt zijn onvoorspelbaar.
In nieuws en evenementen.quote:Op vrijdag 13 mei 2005 16:33 schreef saban het volgende:
[..]
In welke tabel bedoelen jullie precies?
Maar zo heb je toch altijd maar 1 record ?
Ik wil bijv de laatste 10 records ..
quote:Parse error: parse error, expecting `T_PAAMAYIM_NEKUDOTAYIM' or `'('' in d:\wwwroot\mvc\include\PageView.php on line 61
je kunt de dat doen met een if-statement. Als eerste vraag je de site op waar je opzit, en als dit overeenkomt met bijv. bewerk.php dan krijg je bovenaan te zien: mijn site - admin - bewerken, tenminste, zo zou ik het doenquote:Op vrijdag 13 mei 2005 19:29 schreef Kapt.Ruigbaard het volgende:
Ik vraag me af hoe ik dit het beste in php kan maken.
Ik kom zeg maar op een menu uit, laten we zeggen de pagina Beheer.
Ik heb daar de optie om een pagina aan te klikken zodat deze ge-eddit kan worden. De pagina Bewerken.
Nu wil ik met php dat als ik op de pagina Bewerken uit kom dat daar komt te staan: Beheer --> Bewerken --> en dan de titel van de pagina die bewerkt moet worden.
Iemand enig idee hoe je zoiets kan maken?
Je bedoelt vergelijken met de header van een pagina?quote:Op vrijdag 13 mei 2005 19:42 schreef Pauluzz_U5 het volgende:
[..]
je kunt de dat doen met een if-statement. Als eerste vraag je de site op waar je opzit, en als dit overeenkomt met bijv. bewerk.php dan krijg je bovenaan te zien: mijn site - admin - bewerken, tenminste, zo zou ik het doen![]()
je hebt helemaal gelijk Nevermindquote:Op vrijdag 13 mei 2005 20:42 schreef Nevermind het volgende:
http://nl2.php.net/in_array
of http://nl2.php.net/manual/en/function.array-search.php
-edit-
timing
1 2 3 4 5 6 7 8 | $resultaat1=mysql_query("SELECT * FROM acteurs"); while(list($id,$naam,$info)=mysql_fetch_row($resultaat1)){ $array = array(naam); } if (in_array($actor, $array)) { echo "de $actor bestaat al"; }else{ echo "de $actor bestaat nog niet" |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <?php $locatie = $_SERVER['REQUEST_URI']; if ($locatie = "/pagina_beheer.php") { $locatie = "Pagina beheer "; } else { $locatie = "Waar zit je? "; } if ($locatie = "/delete.php") { $locatie = "Pagina verwijderen "; } else { $locatie = "Waar zit je? "; } echo $locatie; ?> |
hmmquote:Op zaterdag 14 mei 2005 22:30 schreef SuperRembo het volgende:
Als je het in flash maakt dan kan je de gegevens het beste doorgeven via xml. Het leuke van flash is dat je dan bijvoorbeeld een zoom functie in kan bouwen. Het is denk ik wel veel werk.
Zonder flash kan je met html+css een aantal transparante plaatjes met de routes over een kaart heen leggen. Je moet dan de route-plaatjes absoluut positioneren ten opzichte van de kaart.
Je kan ook met gd de transparante routes over een kaart leggen. Dan krijg je als bezoeker 1 plaatje te zien. Met gd kan je ook de routes met lijntjes tekenen.
Het ligt er ook een beetje aan hoe je de routeinformatie nu beschikbaar hebt.
Thnx het is gelukt.quote:Op zaterdag 14 mei 2005 20:58 schreef SuperRembo het volgende:
Je gebruikt = in plaats van ==.Verder zou ik eenss naar het switch statement kijken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <? $string = $_SERVER['REQUEST_URI']; $var = "$string"; $var = explode("?", $string); "array 1= " . $var['0']; $locatie = $var['0']; switch ($locatie) { case '/pagina_beheer.php': echo 'Pagina beheer '; break; case '/delete.php': echo 'Pagina verwijderen '; break; case '/bewerken.php': echo 'Pagina bewerken '; break; } ?> |
hehe idd veel sneller zo dan elke keer met die if / else shit..quote:Op zondag 15 mei 2005 00:59 schreef Kapt.Ruigbaard het volgende:
[..]
Thnx het is gelukt.
Mocht iemand interesse hebben in de code:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 | <? switch (basename($_SERVER['PHP_SELF'])) { case 'pagina_beheer.php': echo 'Pagina beheer '; break; case 'delete.php': echo 'Pagina verwijderen '; break; case 'bewerken.php': echo 'Pagina bewerken '; break; } ?> |
quote:Op zondag 15 mei 2005 10:38 schreef Darkomen het volgende:
Ik moet niet de minimale id hebben maar het id van het veld met de laagste iets
dus ik wil als resultaat id 3 te zien krijgen...
1 2 3 4 | SELECT id FROM mytable ORDER BY value LIMIT 1 |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |