Ik zat een beetje met hetzelfde probleem om een bedrijf in kaart te brengen.. (vestigingen, afdelingen, gebruikers). Ik het dat het als volgt opgelost:quote:Op donderdag 11 oktober 2007 19:26 schreef Scriptha het volgende:
Ik heb een mysql table met items, en 1 met bijbehorende plaatjes. Die moeten bij elkaar, dus ik doe een join,
maar dan komt daar
item|plaatje_id
test1|2
test1|5
uit als ik meerder plaatjes heb, en ik gebruik een foreach om het te printen, dus krijg ik alles meerdere keren..
Hoe kan ik dit goed verwerken? Dus item en dan alle plaatjes..
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 | // vestigingen $vquery = "SELECT id, naam FROM vestigingen WHERE bedrijf = ".$_SESSION['bedrijf'].";"; $vresult = mysql_query($vquery); $vestigingen = array(); $v_counter = 0; while(list($vid, $vnaam) = mysql_fetch_row($vresult)){ $vestigingen[$v_counter]['id'] = $vid; $vestigingen[$v_counter]['naam'] = $vnaam; $v_counter++; } // afdelingen $aquery = "SELECT id, naam, vestiging FROM afdelingen WHERE bedrijf = ".$_SESSION['bedrijf'].";"; $aresult = mysql_query($aquery); $afdelingen = array(); $a_counter = 0; while(list($aid, $anaam, $avestiging) = mysql_fetch_row($aresult)){ $afdelingen[$a_counter]['id'] = $aid; $afdelingen[$a_counter]['naam'] = $anaam; $afdelingen[$a_counter]['vestiging'] = $avestiging; $a_counter++; } // gebruiker $uquery = "SELECT id, voornaam, tussenvoegsel, achternaam, afdeling FROM users WHERE bedrijf = ".$_SESSION['bedrijf'].";"; $uresult = mysql_query($uquery); $users = array(); $u_counter = 0; while(list($uid, $uvoornaam, $utussenvoegsel, $uachternaam, $uafdeling) = mysql_fetch_row($uresult)){ $users[$u_counter]['id'] = $uid; $users[$u_counter]['voornaam'] = $uvoornaam; $users[$u_counter]['tussenvoegsel'] = $utussenvoegsel; $users[$u_counter]['achternaam'] = $uachternaam; $users[$u_counter]['afdeling'] = $uafdeling; $u_counter++; } // selectbox vullen met data echo "<select name=\"ontvangers[]\" size=\"5\" multiple=\"multiple\" style=\"width: 500px;\">"; for($v=0; $v<=count($vestigingen)-1; $v++){ echo "<option>".$vestigingen[$v]['naam']."</option>"; for($a=0; $a<=count($afdelingen)-1; $a++){ if ($vestigingen[$v]['id'] == $afdelingen[$a]['vestiging']){ echo "<option> ".$afdelingen[$a]['naam']."</option>"; for ($u=0; $u<=count($users)-1; $u++){ if ($afdelingen[$a]['id'] == $users[$u]['afdeling']){ echo "<option> ".$users[$u]['voornaam']."</option>"; } } } } } echo "</select>"; ?> |
hehe jaquote:Op vrijdag 12 oktober 2007 01:58 schreef SuperrrTuxxx het volgende:
Je eerste wat? Je eerste topic uit deze reeks
?
Ik zou zo even geen betere oplossing hebben denk ik....quote:Op vrijdag 12 oktober 2007 02:01 schreef markiemark het volgende:
nou ja, kijk maar naar mn code.. waarschijnlijk wat inefficient, maar het werkt..
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 | while(list($uid, $uvoornaam, $utussenvoegsel, $uachternaam, $uafdeling) = mysql_fetch_row($uresult)){ $users[$u_counter]['id'] = $uid; $users[$u_counter]['voornaam'] = $uvoornaam; $users[$u_counter]['tussenvoegsel'] = $utussenvoegsel; $users[$u_counter]['achternaam'] = $uachternaam; $users[$u_counter]['afdeling'] = $uafdeling; $u_counter++; } ?> |
1 2 3 | while ( $row=mysql_fetch_assoc($result) ) $users[$u_counter++] = $row; ?> |
jah.. ik weet af van het bestaan van de functies mysql_fetch_array() en mysql_fetch_assoc().. maar ik heb me er eerlijk gezegd nooit echt zo in verdiept, ga ik maar eens een beetje doen dit weekend..quote:Op vrijdag 12 oktober 2007 11:35 schreef ralfie het volgende:
@markiemark
[ code verwijderd ]
Mag ik je wijzen op de mysql_fetch_assoc functie?
[ code verwijderd ]
Is ietsie korter en doet precies hetzelfdeNaja, ik ben lui, dus als ik ergens mee mijn php korter kan krijgen zal ik het niet laten
![]()
ik heb Tevens Veel Problemen met php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | $To = $Settings->Get('orgEmail'); $From = $_POST[ 'fm_email' ]; $Content = 'Er is een bericht van: ' . $Gender . ' ' . $Name . "\n\n"; $Subject = '[Bericht via website] '; $Subject .= $Gender . ''; $Subject .= $Name; // Headers variable $Headers = ''; // Addresses $Headers .= 'To: ' . $To . "\r\n"; $Headers .= 'From: ' . $From . "\r\n"; $Headers .= 'Reply-To: ' . $From . "\r\n"; // Other information $Headers .= 'X-Mailer: PHP/' . phpversion(); mail($To, $Subject, $Content, $Headers); ?> |
got it, de \r moet er ook uitquote:Op vrijdag 12 oktober 2007 15:12 schreef PiRANiA het volgende:
echo preg_replace("/\n/Usi","",$echo);
waarom haalt die niet mijn newlines uit $echo?
Ja ik weet dat het zo werkt, maar ik wil zo min mogelijk queriesquote:Op vrijdag 12 oktober 2007 02:01 schreef markiemark het volgende:
Nou even wat betreft het probleem van Scriptha
[..]
Ik zat een beetje met hetzelfde probleem om een bedrijf in kaart te brengen.. (vestigingen, afdelingen, gebruikers). Ik het dat het als volgt opgelost:
1. alle vestigingen van het bedrijf ophalen en in een array gooien
2. alle afdelingen van het bedrijf ophalen en in een array gooien
3. alle gebruikers van het bedrijf ophalen en in een array gooien
4. door middel van een for loop alle vestigingen weergeven
5. door middel van for loop in for loop (4) de afdelingen met eigenschap afd.bedrijf=bedrijf.id ophalen
6. door middel van for loop in for loop (5) de gebruikers ophalen met eigenschap usr.afdeling = afdeling.id ophalen
nou ja, kijk maar naar mn code.. waarschijnlijk wat inefficient, maar het werkt..
[ code verwijderd ]
Tijd voor een copy/pastequote:Op maandag 8 oktober 2007 20:04 schreef qu63 het volgende:
Weet er iemand misschien een site met goede tutorials over hoe te werken met Excel en PHP / COM-objecten?
Het is de bedoeling dat ik een pagina schrijf die uit een excel-sheet gegevens ophaal, en die mooi laat zien.
Ik weet dat het makkelijker kan in MySQL, maar dat vraag i kdus niet
Google?quote:
die laatste had ik ook al gevonden, maar die deed niet precies wat ik wilquote:Op zaterdag 13 oktober 2007 11:30 schreef Light het volgende:
[..]
Google?
Eerste hit: http://www-128.ibm.com/de(...)library/os-phpexcel/
http://forums.devarticles(...)read-excel-9352.html
http://www.phpclasses.org/browse/package/1808.html
Daar moet je vast wel wat mee kunnen
Dit is inderdaad behoorlijk inefficiënt (bij grote aantallen)quote:Op vrijdag 12 oktober 2007 02:01 schreef markiemark het volgende:
[...]
nou ja, kijk maar naar mn code.. waarschijnlijk wat inefficient, maar het werkt..
[...]
:squote:Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Waarschijnlijk gebruik je een variabele die nergens gevuld wordt en waarbij je er vanuit gaat dat hij uit een session/get/post komt.quote:Op zondag 14 oktober 2007 17:52 schreef PiRANiA het volgende:
[..]
:s
Ik gebruik een functie: updatesession(), die werkt gewoon bij het inloggen, maar als ik die functie later gebruik werkt het niet meer :s
Kent iemand deze error?
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 | // Set the enviroment variable for GD putenv('GDFONTPATH=' . realpath('.')); // The y-ordinate. This sets the position of the fonts baseline, not // the very bottom of the character. // Name the font to be used (note the lack of the .ttf extension) $font = 'milk'; // R = 92 // G = 172 // B = 107 header("Content-type: image/png"); $cache = "./dummy/text_" . $_GET['text'] . ".png"; if (file_exists($cache)) { readfile($cache); exit(); } else { // Create the image $im = imagecreatetruecolor(400, 30); // Create some colors $green = imagecolorallocate($im, 92, 172, 107); // $grey = imagecolorallocate($im, 128, 128, 128); $black = imagecolorallocate($im, 248, 248, 248); imagefilledrectangle($im, 0, 0, 399, 29, $black); //// Add some shadow to the text //imagettftext($im, 20, 0, 11, 21, $grey, $font, $_GET['text']); // Add the text imagettftext($im, 17, 0, 10, 25, $green, $font, $_GET['text']); // Using imagepng() results in clearer text compared with imagejpeg() imagepng($im, '', 0); imagepng($im, $cache, 0); imagedestroy($im); } ?> |
Ff stomme opmerking maar weet je zeker dat je het juiste font gebruikt? En heb je het al eens een stuk groter gedaan?quote:Op woensdag 17 oktober 2007 11:25 schreef Chandler het volgende:
Ik zit met een vraagje,
Voor een site wil ik teksten omzetten naar afbeeldigen zoals:
[ afbeelding ]
Maar helaas is de output meer zoals dit
[ afbeelding ]
Nu zie je dat de tekst echt er niet uit ziet. Deze afbeelding is gemaakt met de volgend code
[ code verwijderd ]
maar nu zie ik niet wat ik fout doeanyone?
Heb je het font ook bekekenquote:Op woensdag 17 oktober 2007 13:22 schreef Chandler het volgende:
Het is als het goed is de juiste font (kreeg deze van de designer van de site)maar ik zal het iets groter proberen!
Groter font werkt helaas ook niet, zal eens kijken of er een sharp/crisp versie van deze font te vinden is
quote:Op woensdag 17 oktober 2007 13:28 schreef Chandler het volgende:
Zekers heb ik ook een blik geworpen op de font zelf, de font zelf heb ik gebruik in Photoshop en het voorbeeld plaatje (1e) mee gemaakt!
Daar is volgens mij geen standaardfunctie voor. Wat je kunt proberen is eerst uitzoeken op welke dag 1 januari valt, daarmee berekenen wat dan de maandag van week 1 is, en dan nog 41 weken verder tellen.quote:Op woensdag 17 oktober 2007 12:59 schreef broodmonkeh het volgende:
Hoe zet ik een weeknummer om naar 7 data die hierin vallen? Kan er nergens wat over vinden![]()
dus bijv.
week 42 :
15-10-2007
16-10-2007
17-10-2007
18-10-2007
19-10-2007
20-10-2007
21-10-2007
Ik hoop dat jullie me op weg kunnen helpen![]()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function getFirstDayOfWeek($year, $weeknr) { $offset = date('w', mktime(0,0,0,1,1,$year)); $offset = ($offset < 5) ? 1-$offset : 8-$offset; $monday = mktime(0,0,0,1,1+$offset,$year); return strtotime('+' . ($weeknr - 1) . ' weeks', $monday); } function DatesBetween($startDate, $endDate){ // get the number of days between the two given dates. $days = (strtotime($endDate) - strtotime($startDate)) / 86400 + 1; $startMonth = date("m", strtotime($startDate)); $startDay = date("d", strtotime($startDate)); $startYear = date("Y", strtotime($startDate)); $dates;//the array of dates to be passed back for($i=0; $i<$days; $i++){ $dates[$i] = date("d/m/Y", mktime(0, 0, 0, $startMonth , ($startDay+$i), $startYear)); } return $dates; } ?> |
1 2 3 4 5 6 7 8 | $timestamp = getFirstDayOfWeek(2007,42); $datum1 = date("m/d/Y", $timestamp); $timestamp = strtotime ("+7 day", $timestamp); $datum2 = date("m/d/Y", $timestamp); $dates = DatesBetween($datum1,$datum2); ?> |
quote:Op woensdag 17 oktober 2007 12:59 schreef broodmonkeh het volgende:
Hoe zet ik een weeknummer om naar 7 data die hierin vallen? Kan er nergens wat over vinden![]()
dus bijv.
week 42 :
15-10-2007
16-10-2007
17-10-2007
18-10-2007
19-10-2007
20-10-2007
21-10-2007
Ik hoop dat jullie me op weg kunnen helpen![]()
1 2 3 4 5 6 7 8 9 | $dezeweek = date("W", mktime()); $einddag = $dezeweek * 7; $mktimebegin = ($einddag * 86400) - (7*86400); $mktimebegin += mktime(0,0,0,1,1,date("Y", mktime())); for ($i=0; $i<7; $i++) { $dagenweek[] = $mktimebegin + ($i*86400); } ?> |
ik heb 2 willekeurige weken uit 2005 gepakt , en dit werkt gewoon! Alleen als ik bijv. week 52 pak , dan pakt ie ook 1 januari 2006 mee, maarja dat maakt niet zoveel uit.quote:Op woensdag 17 oktober 2007 14:48 schreef Light het volgende:
Gaat die functie ook goed in bijvoorbeeld 2005?
Ik had het ondertussen zelf ook al gecontroleerd, op dezelfde manier als ik de functie controleerde die ik zelf heb geschreven, met een simpel for-loopje :)quote:Op woensdag 17 oktober 2007 15:00 schreef broodmonkeh het volgende:
[..]
ik heb 2 willekeurige weken uit 2005 gepakt , en dit werkt gewoon! Alleen als ik bijv. week 52 pak , dan pakt ie ook 1 januari 2006 mee, maarja dat maakt niet zoveel uit.
1 2 3 4 5 6 7 | for ($i = 1970; $i < 2038; $i++) { $d = getFirstDayOfWeek($i, 42); if( (date('W',$d) != 42) or (date('N',$d) != 1) ) echo $i.' '; } echo"\nDone"; ?> |
quote:Op woensdag 17 oktober 2007 15:19 schreef broodmonkeh het volgende:
weer iets nieuws , ben vandaag niet echt helder :')
Je selecteerd 2 weeknummers bijv. 1 en 8 , hoe krijg ik dan alle nummers daartussen ? 2 , 3 , 4, 5 , 6 ,7.
1 2 3 4 | for($i = 1; $i <= 8; $i++){ nummers[] = $i } |
Is dit wat voor je? http://nl2.php.net/manual/en/function.imagettftext.php#58081quote:Op donderdag 18 oktober 2007 09:51 schreef Chandler het volgende:
Niemand iets over mijn GD probleem? Zou heel fijn zijn
Dan krijg je ditquote:Op donderdag 18 oktober 2007 10:00 schreef WyriHaximus het volgende:
[..]
Is dit wat voor je? http://nl2.php.net/manual/en/function.imagettftext.php#58081
1 2 3 4 5 6 7 | for($i=0; $i<=$count; $i++){ echo $datum['begin'][$i]."/".$datum['eind'][$i]; if ($i %2){ echo "<br />"; } } |
Van die <= zou ik < maken ;)quote:Op vrijdag 19 oktober 2007 11:27 schreef markiemark het volgende:
[...]
1
2$count = count($array);
for($i=0; $i<=$count; $i++){
als je ieder record in een div zet, en die left laat floaten, gaat het vanzelf goedquote:Op vrijdag 19 oktober 2007 10:58 schreef broodmonkeh het volgende:
Al haal ik bijv. een variabele hoeveelheid aan gegevens uit de database, hoe zorg ik ervoor dat ik zeg maar om de 2 gegevens die ik uit de database haal een nieuwe regel begint?
data1 data2
data3 data4
data5 data6
data7 data8
Nog bedankt voor de antwoorden op mijn vorige vraag, range() was idd wat ik zocht!
Volgens mij nietquote:Op vrijdag 19 oktober 2007 20:05 schreef WyriHaximus het volgende:
Ff snel mysql vraagje, heeft mysql een vergelijkbare functie strtolower (zoals in php)?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | $dir = Array(); $file = Array(); $current = "."; $handle = opendir($current); while($files = readdir($handle)) { if($files != "." && $files != "..") { if(is_dir($files)) $dir[] = $files; else $filelist[] = $files; } } echo "dir<br />"; foreach($dir AS $directory) { echo $directory . "<br />"; } echo "<br />file<br />"; foreach($filelist AS $file) { echo $file . "<br />"; } ?> |
1 2 3 | $current = "."; word $current = "maphoger/nogeenmaphoger"; ?> |
Ah tof dankje :D!quote:Op vrijdag 19 oktober 2007 20:17 schreef PiRANiA het volgende:
wel dus:
LOWER(str)
zie http://dev.mysql.com/doc/(...).html#function_lower
1 2 3 | $sql = "SELECT * FROM table WHERE LOWER(field) = '" . strtolower($var) . "'"; ?> |
De standaard collation (van MySQL) is case insensitive, dus dan is het omzetten naar lowercase overbodig.quote:Op vrijdag 19 oktober 2007 20:54 schreef WyriHaximus het volgende:
[..]
Ah tof dankje!
[ code verwijderd ]
ftw![]()
Wijzig baar dus of niet?quote:Op vrijdag 19 oktober 2007 21:19 schreef SuperRembo het volgende:
[..]
De standaard collation (van MySQL) is case insensitive, dus dan is het omzetten naar lowercase overbodig.
Je moet is_dir() het hele pad geven, niet alleen filename.ext maar bijv ./filename.extquote:Op vrijdag 19 oktober 2007 20:42 schreef Vlek het volgende:
Bij het uitlezen van een map dmv readdir loop ik tegen het probleem op dat zodra de map niet de huidige map is waar het script in staat, hij het verschil tussen een map of bestand niet ziet.
[ code verwijderd ]
Als ik het zo doe en het script in de map zelf zet, ziet hij het verschil wel, maar zodra ik het script een map hoger of lager plaats en de uit te lezen map verander naar de naam van die map, ziet hij het vershil niet en geeft elke map als een bestand weer.
het enige wat ik dan verander is dit:
[ code verwijderd ]
Iemand enig idee waar dit door komt?
Bedankt, dat was dus idd de oplossing.quote:Op vrijdag 19 oktober 2007 22:08 schreef ralfie het volgende:
[..]
Je moet is_dir() het hele pad geven, niet alleen filename.ext maar bijv ./filename.ext
maak er dus is_dir($current .'/'. $files) van.
Verder kan is_dir() ook false geven als de directory bijvoorbeeld niet schrijfbaar is, let daar ook op.
Ja, je kunt het per kolom instellen. Maar je kunt bijvoorbeeld ook bij een vergelijking in de WHERE een andere collation opgeven:quote:
1 2 3 | FROM t1 WHERE _latin1 'Müller' COLLATE latin1_german2_ci = k; |
Ah zo okquote:Op vrijdag 19 oktober 2007 23:59 schreef SuperRembo het volgende:
[..]
Ja, je kunt het per kolom instellen. Maar je kunt bijvoorbeeld ook bij een vergelijking in de WHERE een andere collation opgeven:
[ code verwijderd ]
Zie MySQL: Using COLLATE in SQL Statements
SUM(kolomnaam)quote:Op zaterdag 20 oktober 2007 11:02 schreef WyriHaximus het volgende:
[..]
Ah zo ok!
Ff ander vraagje, ik heb een int veld en die wil ik van alles in de tabel bij elkaar optellen. Dus als er
row 0: 1
row 1: 2
row 2: 3
In staat dan moet er 6 uit komen, daar was in mysql een functie voor, weet iemand die heeltoevallig?![]()
http://www.tizag.com/phpT/quote:Op zaterdag 20 oktober 2007 12:01 schreef Ozzlewozzle het volgende:
Een vriend van me wil gaan beginnen met PHP, wat voor websites/tutorials raad ik hem aan?
http://nl3.php.net/manual/en/quote:Op zaterdag 20 oktober 2007 12:01 schreef Ozzlewozzle het volgende:
Een vriend van me wil gaan beginnen met PHP, wat voor websites/tutorials raad ik hem aan?
Ik heb hier het boek "Basiscursus PHP 5" liggen.quote:Op zaterdag 20 oktober 2007 12:01 schreef Ozzlewozzle het volgende:
Een vriend van me wil gaan beginnen met PHP, wat voor websites/tutorials raad ik hem aan?
hoor van mensen dat "php5 zonder stress" een goed boekje moet wezen om in te stappenquote:Op zaterdag 20 oktober 2007 12:01 schreef Ozzlewozzle het volgende:
Een vriend van me wil gaan beginnen met PHP, wat voor websites/tutorials raad ik hem aan?
1 2 3 4 | Crientj [MoeMoe] Jordeh [Fred] Fred |
Dat is toch vrij recht toe recht aan op te lossen? Je loopt door de records heen. Per record bepaal je de positie van "[" en van "]". Het stuk daartussen is wat je zoekt, dus dat zet je in je array. Wat is 't probleem?quote:Op maandag 22 oktober 2007 21:37 schreef JortK het volgende:
Kan iemand me daarmee helpen ?
Optie 3 en eingelijk mij favoriete optie: Pak een packet sniffer en reverse engineer het IMAP protocolquote:Op dinsdag 23 oktober 2007 12:50 schreef mschol het volgende:
klein vraagje:
ik ben bezig met een mini mail applicatie voor mijzelf
en ik vraag mij af of ik iets eraan kan doen dat Imap_open() 3x verbind met mijn mailserver voor een fout te geven...
in php5 kan je wel de hoeveelheid retries instellen, maar aangezien ik 4 gebruik heb ik 2 mogelijke oplossingen:
1) upgrade naar php5 (en hopen dat de rest van mij scripts het blijft doen)
2) een workaround voor imap_open zodat hij maar 1x verbind..
alleen die workaround kan ik niet vinden, dan blijft alleen optie 1 over...
iemand nog andere ideeen?
zo'n goeie scripter ben ik nou ook weer niet...quote:Op dinsdag 23 oktober 2007 12:57 schreef WyriHaximus het volgende:
[..]
Optie 3 en eingelijk mij favoriete optie: Pak een packet sniffer en reverse engineer het IMAP protocol. (Je kunt natuurlijk ook de RFC's lezen
.) En zelf een pure php imap class bouwen (of er ergens 1 zoeken http://phpclasses.org/ staat altijd wel iets).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <p><select if(isset($Branche)){ echo "value=\"$Branche\" "; } name="Branche"> $result = mysql_query("SELECT * FROM branche"); <option value="alles">Alles</option> while($retval=mysql_fetch_array($result)) { <option value=" echo($retval['id']); "> echo($retval['naam']); </option> } </select></p> ?> |
ik weet hoe je een checklist maakt met html, maar hoe krijg ik de query goed dat alle items die normaal in de list worden weergegeven nu een checkboxje wordenquote:
1 2 3 4 | $query = "UPDATE menu SET order = '$i' WHERE id = $menu"; mysql_query($query) or die(mysql_error()); ?> |
Ik zou kiezen voor een id als categorie[13], categorie[15] en categorie[21]. Van een aangevinkte checkbox wordt de naam doorgegeven naar het php-script, en op deze manier komt dat netjes in een array terecht. Daar kun je met een simpel loopje wel doorheenquote:Op woensdag 24 oktober 2007 16:36 schreef Dzy het volgende:
Genereer een lijstje met checkboxes met als naam bijvoorbeeld Categorie21 en dan is de ID van de categorie in dit geval dus 21. Je geeft hem ook die value mee. Dan loop je door alle checkboxen heen bij de zoek opdracht en geef je in de where clausule een dergelijke constructie mee:
WHERE
categorie = 13
OR
categorie = 15
OR
categorie = 21
Als bv die 3 gecheckt zijn.
zowel order als id is een veld ? als je id niet als een integer/float hebt gedefinieerd moet je er apostroffen omheen zettenquote:Op woensdag 24 oktober 2007 20:26 schreef BaggerUser het volgende:
krijg een foutmelding![]()
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 'order = '0' WHERE id = '2'' at line 1
[ code verwijderd ]
snap er niks van die regel code heeft altijd gewerkt ?
Dit is imo nog steeds netter:quote:Op woensdag 24 oktober 2007 16:36 schreef Dzy het volgende:
Genereer een lijstje met checkboxes met als naam bijvoorbeeld Categorie21 en dan is de ID van de categorie in dit geval dus 21. Je geeft hem ook die value mee. Dan loop je door alle checkboxen heen bij de zoek opdracht en geef je in de where clausule een dergelijke constructie mee:
WHERE
categorie = 13
OR
categorie = 15
OR
categorie = 21
Als bv die 3 gecheckt zijn.
1 |
iemand enig idee? kan nemlijk niet erg verder als het niet wil en heb zo'n beetje alle komma's al op alle plekken gehad..quote:Op woensdag 24 oktober 2007 20:26 schreef BaggerUser het volgende:
krijg een foutmelding![]()
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 'order = '0' WHERE id = '2'' at line 1
[ code verwijderd ]
snap er niks van die regel code heeft altijd gewerkt ?
nee die werkt ook niet.. (ookal krijg ik geen foutmelding) snap per niks van...quote:Op donderdag 25 oktober 2007 15:31 schreef Roönaän het volgende:
Heb je al een simpele echo $query geprobeerd?
Probeer deze eens:
$query = sprintf("UPDATE menu SET order = '%d' WHERE id = '%s'", intval($id), mysql_real_escape_string($menu));
Gebruik je overigens een variabele voor de tabelnaam? (bijv, $query = "UPDATE $tabel SET ..") Het zou weleens kunnen zijn dat de tabelnaam simpelweg leeg is.
-r-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $root = $_SERVER["DOCUMENT_ROOT"]."/cms"; require_once($root.'/check.php'); $i = 1; foreach ($_GET['menu'] as $menu) { //$query = "UPDATE menu SET order = '$i' WHERE id = "; //mysql_query($query) or die(mysql_error()); $query = sprintf("UPDATE menu SET order = '$menu' WHERE id = '$i'"); //echo $i."". $menu ."<br />"; $i++; } ?> |
ja je had gelijk maar hij wil heel die tabel niet updaten (teminste de sql statement in php is niet goed volgens mij)quote:Op donderdag 25 oktober 2007 18:36 schreef Roönaän het volgende:
Moet het niet SET order = $i WHERE id = $menu zijn? Maar dan beveiligd tegen sql injection?
Da's de eerste plek waar het fout kan gaan natuurlijk. Maar ik wil dat toch even naar het tweede plan verschuiven.quote:Op donderdag 25 oktober 2007 20:56 schreef BaggerUser het volgende:
oke ik probeer het even uit te leggen (misschien doe ik namelijk wel iets heel raars?)
ik heb een list en die items kan ik sorteren (doormiddel van drag en drop)
zodra er hier iets veranderd vraagt hij een pagina aan dmv ajax en stuurt hij dit mee:
?menu[]=2&menu[]=1
de cyfers komen in volgorde van id..
vervolgens lees ik die array dus uit en geef ik menu ($menu (oftewel de id)) de order ($i) op volgorde..
Hoe ziet die query er exact uit in je php-script? Kun je de regels waar die query wordt opgebouwd eens op het forum zetten, tussen [php] en [ /php] tags?quote:het moet dus dit zijn:
UPDATE menu SET order = '$i' WHERE id = '$menu'
quote:Op donderdag 25 oktober 2007 21:04 schreef Light het volgende:
[..]
Da's de eerste plek waar het fout kan gaan natuurlijk. Maar ik wil dat toch even naar het tweede plan verschuiven.
[..]
Hoe ziet die query er exact uit in je php-script? Kun je de regels waar die query wordt opgebouwd eens op het forum zetten
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | dit is mijn complete afhandeling: [php] $root = $_SERVER["DOCUMENT_ROOT"]."/cms"; require_once($root.'/check.php'); $i = 1; foreach ($_GET['menu'] as $menu) { //$query = "UPDATE menu SET order = '$i' WHERE id = $menu"; //mysql_query($query) or die(mysql_error()); $query = sprintf("UPDATE menu SET order = '$i' WHERE id = '$menu'"); echo $i."". $menu ."<br />"; $i++; } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |