abonnement Unibet Coolblue Bitvavo
  vrijdag 3 november 2006 @ 00:32:28 #101
1607 Ali Salami
Altijd actueel
pi_43193307
Zou net zeggen, je kan idd MIN/MAX gebruiken.
Hatsjoe!
  vrijdag 3 november 2006 @ 00:39:47 #102
1607 Ali Salami
Altijd actueel
pi_43193466
http://dev.mysql.com/doc/refman/4.1/en/example-maximum-row.html

Kijk daar maar even, staat het uitgelegd
Hatsjoe!
  vrijdag 3 november 2006 @ 00:40:07 #103
42636 TheSeeker_NL
Damn fine coffee
pi_43193478
thanks ik ga het lezen
  vrijdag 3 november 2006 @ 00:42:05 #104
42636 TheSeeker_NL
Damn fine coffee
pi_43193511
hah super! het werkt, dit was precies wat ik zocht!

1
2
3
SELECT naam
FROM   Persoon
WHERE  handicap=(SELECT MIN(handicap) FROM Persoon);


super geholpen!
  vrijdag 3 november 2006 @ 01:23:34 #105
1607 Ali Salami
Altijd actueel
pi_43194215
Mooi
Hatsjoe!
pi_43220716
Weet iemand een goed script dat excel sheets kan uitlezen in php, ik heb er wat gevonden maar ze konden allemaal (behalve hele dure) niet overweg met &#tekens...

Weet iemand een goed script? google had veel maar helaas niet wat ik zocht (gratis , of ongv 10 euro oid)


Nu ben ik zelf even opzoek gegaan en heb aardig informatie gevonden over excel com. En met wat voorbeelden heb ik het volgende gemaakt.

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
<?
    $excel = new COM("excel.application") or die("Unable to instanciate excel");  

    //bring it to front  
    $excel->Visible = 1;//NOT
    //dont want alerts ... run silent  
    $excel->DisplayAlerts = 1;  

    //open  document  
    $excel->Workbooks->Open("d:/excel.xls");  

    for ($h = 1; $h <= 3; $h++)
    {
        $book  = $excel->Workbooks(1);
        $sheet = $book->Worksheets($h);

        echo "<table>n";
        //Wtite row
        for ($i = 1; $i <= 150; $i++)
        {
            echo "<tr>n";
            //write colom
            for ($j = 1; $j <= 5; $j++)
            {
                $cell = $sheet->Cells($i, $j); // #Select the cell (Row Column number)
                $cell->activate;               // #Activate the cell
            
                if($cell->value == '0')
                {
                    $td = "";
                }
                else
                {
                    $td = $cell->value;
                }

                echo "<td>" . $td . "</td>n"; // #write the cell
            }
            echo "</tr>n";
        }
        echo "</table>n";
    }

    //closing excel  
    $excel->Quit();  


echter als ik het bestand uitlees krijg ik nog steeds vage teksten! wat is de inhoud dan zou je je afvragen!?

Rij A - Nederlandse tekst (arial)
Rij C - Thaise tekens (Angsana New)
Rij E - Engelse tekst (arial)

Maar als ik het uitlees krijg ik het volgende te zien.



Oftewel ik lees iets niet goed uit, volgens mij moet ik ergens nog kunnen instellen welk karakterset ik wil gebruiken... maar dat kan ik dus niet vinden liefst zou ik gewoon alle teksten van een cel in &# codes willen hebben maar goed.

Dit moet de uitkomst zijn ongv.





[ Bericht 43% gewijzigd door Chandler op 04-11-2006 11:05:07 ]
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  zaterdag 4 november 2006 @ 23:12:14 #107
62215 qu63
..de tijd drinkt..
pi_43247233
op de een of andere manier kan ik niet meer via CURL op Fok posten

als ik wil posten krijg ik een #68 (Je bent niet ingelogd en kunt daarom niet reageren. Log eerst in, of vul je gebruikersnaam en wachtwoord in bij het reageervenster, en probeer het dan opnieuw.)
en bij het wijzigen van mijn profiel een #3(Je bent niet ingelogd en kunt daarom geen gebruik maken van deze functie. Klik hier om in te loggen, of hier om je te registreren.)

ik heb gewoon mijn eigen sessionid gebruikt die niet aan mijn ip gebonden is, gebruikersnaam en eachtwoord worden ook meegezonden..

iemand een tip?
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
  zondag 5 november 2006 @ 12:41:02 #108
62215 qu63
..de tijd drinkt..
pi_43256142
quote:
Op zaterdag 4 november 2006 23:12 schreef qu63 het volgende:
op de een of andere manier kan ik niet meer via CURL op Fok posten

als ik wil posten krijg ik een #68 (Je bent niet ingelogd en kunt daarom niet reageren. Log eerst in, of vul je gebruikersnaam en wachtwoord in bij het reageervenster, en probeer het dan opnieuw.)
en bij het wijzigen van mijn profiel een #3(Je bent niet ingelogd en kunt daarom geen gebruik maken van deze functie. Klik hier om in te loggen, of hier om je te registreren.)

ik heb gewoon mijn eigen sessionid gebruikt die niet aan mijn ip gebonden is, gebruikersnaam en eachtwoord worden ook meegezonden..

iemand een tip?
foutje in mn sessionid dus
It's Time To Shine
[i]What would life be like without rhethorical questions?[/i]
pi_43263067
Ik hoop dat iemand mij bij he volgende kan helpen:
Ik wil mijn menu uit een database halen. Dit bestaat 3 onderdelen:
-de menu items uit de tabel menu halen
-de submenu items de titels (van de tekst pagina's) uit de teksten tabel halen
- extra submenuitems uit de tabel submenuitems halen.

Nou wil ik dat ik in het extra submenuitems tabel een plaats kan meegeven die bepaald hoe hoog een bepaald submenu item komt te staan. Om dat te programeren had ik het volgende in gedachten:

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
<?php
<ul>

$taal = "NL";
$menu_array = array();
$submenu_array = array();
include(
"config.php");
@
mysql_select_db("database")
or die (
"kon geen database selecteren");
$query = "SELECT menu  FROM menu WHERE taal='$taal' ORDER BY ID";
$result = mysql_query($query);
while (list(
$menu) = mysql_fetch_row($result))
{
$de_menu = urldecode($menu);
$menu_array[] = "<li>$de_menu</li>";
$query2 = "SELECT titel FROM tekst WHERE taal='$taal' AND menu='$menu' ORDER BY ID";
$result2 = mysql_query($query2);
while (list(
$titel) = mysql_fetch_row($result2))
{
$de_titel = urldecode($titel);
$submenu_array[] = "<ol><a href='../$database/$titel'>$de_titel</a></ol>";}
$query3 = "SELECT titel , URL , priority FROM submenu WHERE taal='$taal' AND menu='$menu' ORDER BY ID";
$result3 = mysql_query($query3);
while (list(
$titel, $url, $priority) = mysql_fetch_row($result3))
{
$de_titel = urldecode($titel);
if (empty(
$priority))  {$submenu_array[] = "<ol><a href='$url'>$de_titel</a></ol>"; }
else {               
$output = array_slice ($submenu_array, $priority);
                        
$menu_array[] = "<ol><a href='$url'>$de_titel</a></ol>";
                        
$submenu_array = array_merge ($submenu_array, $output);
}
}
$menu_array = array_merge ($menu_array, $submenu_array);
print_r($menu_array);
unset (
$menu_array);
unset (
$submenu_array);
}

</
ul>
?>


Alleen is de uitkomst dus niet helemaal goed. Het probleem zit hem in het plaatsen op een bepaalde plaats in de array. Ik krijg mijn array niet meer mooi terug bijelkaar. Hoe kan ik dit het beste oplossen? Iemand tips?
  FOK!-Schrikkelbaas zondag 5 november 2006 @ 17:12:04 #110
1972 Swetsenegger
Egocentrische Narcist
pi_43264161
Misschien makkelijker om je eens in een hierarchisch model te verdiepen?
pi_43264437
Het is ook verstandig om de data met één query op te halen. Als je nu 10 menu's hebt met 10 submenu's dan moet je 120 query's uitvoeren!
Waarom gebruik je urldecode() op de gegevens die uit de database komen
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_43264678
Ik zal eens in een hierarchisch model duiken.

@superrembo
De gegevens in de database zijn urlgedecodeerd zodat ik ze direct uit de database kan halen. Ik had wat problemen met een aantal menu items waar een apostroph in voorkwam. Door met urldecode en encode te werken heb ik die problemen opgelost.
pi_43265064
Aha, dat is een oplossing, die wel werkt, maar toch is het niet de goede oplossing. Je moet mysql_real_escape_string() of addslashes() gebruiken als je een string in een query zet. Op de gegevens die je uit de database terug krijgt hoef je dan geen urldecode() o.i.d. toe te passen. Wel moet je natuurlijk htmlentities() of htmlspecialchars() gebruiken dat je een string in html gebruikt.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_43265706
Ik had ook mysql_real_eascape_string() kunnen gebruiken maar voor mij was het resultaat hetzelfde.Het voordeel vam urldecode() voor mij was dat ik die toch al toepaste op mijn site.
Let wel, ik zet de string niet in een query, ik haal de alle titels op uit de database, controleer welke titel bestaat (overeenkomt met de string) en gebruik dan de titel die ik uit de database heb getrokken om de rest van de site te laden.
pi_43266784
Je hebt die titel toch een keer met urlencode() in je database gezet, via een sql query?
Je maakt het jezelf alleen maar moeilijk als je jezelf verkeerde encoding aanleert. Dat soort dingen blijven je achtervolgen. (Zie het gehannes met de \ in replique )
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas zondag 5 november 2006 @ 19:46:43 #116
1972 Swetsenegger
Egocentrische Narcist
pi_43268686
quote:
Op zondag 5 november 2006 18:43 schreef SuperRembo het volgende:
Je maakt het jezelf alleen maar moeilijk als je jezelf verkeerde encoding aanleert. Dat soort dingen blijven je achtervolgen. (Zie het gehannes met de \ in replique )
Helaas heb ik dat door schade en schande zelf ondervonden.
Eerst gebruikte ik altijd addslashes omdat dat bij mijn hoster werkte.
Tot hij mijn website naar een andere machine verhuizde
Toen ben ik gaan controleren of magic quotes aanstonden.
Tegenwoordig strip ik slashes deep (zie php.net) en gebruik ik mysql_real_escape_string
pi_43269132
Aan de hand van jullie eerdere reacties ga ik vanavond bezig om mijn database design wat te optimaliseren.
Graag hoop ik daarom op nog wat tips
Ik heb een database met een aantal tabellen
teksten (hierin de teksten)
acties (specifieke database voor actie teksten andere opbouw dan gewonen teksten)
projecten (idem)
nieuws

Dan heb ik een menu met 7 items en een aantal menuitems hebben submenuitems. Maar niet alle teksten komen in het menu voor. Een aantal van deze items zijn echter niet losstaand maar vormen een soort menu voor zichzelf zonder dat het in de balk voorkomt.

Hoe kan ik dit het beste oplossen?
  zondag 5 november 2006 @ 20:28:20 #118
94421 IceHeat
Spiritually bankrupt
pi_43270242
quote:
Op zondag 5 november 2006 19:58 schreef ExCibular het volgende:
Aan de hand van jullie eerdere reacties ga ik vanavond bezig om mijn database design wat te optimaliseren.
Graag hoop ik daarom op nog wat tips
Ik heb een database met een aantal tabellen
teksten (hierin de teksten)
acties (specifieke database voor actie teksten andere opbouw dan gewonen teksten)
projecten (idem)
nieuws

Dan heb ik een menu met 7 items en een aantal menuitems hebben submenuitems. Maar niet alle teksten komen in het menu voor. Een aantal van deze items zijn echter niet losstaand maar vormen een soort menu voor zichzelf zonder dat het in de balk voorkomt.

Hoe kan ik dit het beste oplossen?
Ik zou eerst een ERD maken als ik jouw was.
pi_43275056
quote:
Op zondag 5 november 2006 20:28 schreef IceHeat het volgende:

[..]

Ik zou eerst een ERD maken als ik jouw was.
Ik had nog nooit van een ERD gehoord. Maar ik ga het e.e.a. maar een in kaart brengen. Bedankt voor de tips!
  zondag 5 november 2006 @ 22:17:39 #120
94421 IceHeat
Spiritually bankrupt
  dinsdag 7 november 2006 @ 16:14:38 #121
71919 wonderer
Hung like a My Little Pony
pi_43327427
Om SQL injection te voorkomen, doe ik

$ID=settype($id,"int");

zodat alles dat geen nummer is, eruit wordt gefilterd. $id is de variabele die in de functie wordt ingevoerd (geen userinput, maar als ik het mezelf zo kan aanleren, kan het vast geen kwaad). $id gaat er nu al 46329 in en komt er al 1 uit. Da's natuurlijk niet de bedoeling. Waar ligt dat aan, en hoe fix it het?

edit: nevermind, php.net niet goed gelezen

[ Bericht 8% gewijzigd door wonderer op 07-11-2006 16:22:48 ]
"Pain is my friend. I can trust pain. I can trust pain to make my life utterly miserable."
"My brain is too smart for me."
"We don't need no education." "Yes you do, you just used a double negative."
pi_43333068
Ik ben op dit moment bezig om een serie functies te schrijven die mij gaan helpen om op een hele makkelijke manier formulieren te maken, controleren/valideren en verwerken.
Nu kun je op google een heleboel achtergrond informatie vinden maar de meeste teksten zijn nogal basis en verklappen hier en daar en klein intressant detail, maar 90-95% van alle informatie weet ik al.
Heeft er iemand een écht goeie tutorial die precies aangeeft welke functies belangrijk zijn om je form te valideren?

En wat ik ook graag wil weten, hoe kun je het beste controleren of een formulier ook écht door jou webserver is verstuurd? Met spoofing kunnen ze een hoop headers veranderen las ik ergens dus dat is niet echt wat ik zoek. Is een random value aanmaken in een hidden input en die controleren met een session een veilige en goede methode?

Andere hints en tips zijn ook welkom.

Ohja, ik weet dat er een dergelijk systeem al bestaat in PEAR maar dat is heel erg uitgebreid en ik heb er even naar gekeken maar ik snap ook niet echt goed hoe die alles hebben gedaan. Ik doe het liever zelf, dat ik er ondertussen nog van leer ook.

Het belangrijkste is dus voor mij, hoe maak ik mijn formulieren veiliger?
-
pi_43333297
Het belangrijkste voor jou is: hoe maak je de verwerking van de gegevens uit de formulieren veiliger.
pi_43333328
Yup dat klopt beter, en is metteen een leuke samenvatting van dat hele verhaal.
-
pi_43336760
Het verhaal
Er was eens een tabel met daarin 1,1 miljoen achternamen. Bijvoorbeeld 'Janssen' en 'van der Laan'. Nu wordt er gezocht met een query:

1SELECT * FROM Achternamen WHERE Achternaam LIKE '%Jan%' OR Achternaam LIKE '%Laan%'


Op deze manier worden dus de achternamen 'Janssen' en 'van der Laan' gevonden. Deze tabel doorzoeken met slechts 100 (oid) records er in gaat goed en snel, maar 1.1 miljoen is toch een ander verhaal.

Doordat er een % voor het zoekwoord geplaatst wordt, kan MySQL de index op het Achternaam-veld niet gebruiken, omdat niet duidelijk is waarmee het te zoeken woord begint (% betekend 0 of meer willekeurige tekens). Dit eerste % teken weglaten

1SELECT * FROM Achternamen WHERE Achternaam LIKE 'Jan%' OR Achternaam LIKE 'Laan%'


zou 'Janssen' wel vinden maar 'van der Laan' niet, omdat de achternaam niet met 'Laan' begint.

Oke oplossen met een full-text index zou kunnen, maar helaas kan/mag/whatever ik deze niet gebruiken.

Andere manier dus
Ik heb twee tabellen gemaakt:

1
2
AchternaamDeel(ID,Deelnaam)
AchternaamDeelLink(Achternaam_ID,AchternaamDeel_ID)


Ik splits de achternamen op: 'Janssen' blijft 'Janssen' en 'van der Laan' wordt opgedeeld in 3 stukken: 'van' 'der' en 'Laan'.

Deze deelnamen worden in de AchternaamDeel tabel opgeslagen, en in de AchternaamDeelLink tabel worden de deelnamen gelinkt met Achternaam_ID, die verwijst naar de Achternamen tabel waar de achternaam in oorspronkelijke vorm is opgeslagen.

We zoeken hierin met:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
SELECT * FROM Achternamen WHERE ID IN 
(
   SELECT
      AchternaamDeelLink.Achternaam_ID
   FROM
      AchternaamDeelLink
   LEFT JOIN
      AchternaamDeel 
   ON
      AchternaamDeelLink.AchternaamDeel_ID=AchternaamDeel .ID
   WHERE   
      AchternaamDeel.Deelnaam LIKE 'Jan%' OR
      AchternaamDeel.Deelnaam LIKE 'Laan%'
   GROUP BY
      AchternaamDeelLink.Achternaam_ID
   ORDER BY
      COUNT(AchternaamDeelLink.Achternaam_ID) DESC
   
)

(Met de score bereken ik welke het meest overeenkomt met de zoektermen)

Damn! dat werkt tegenover de andere manier retesnel (13 sec tegenover > 1 minuut)! Maar toch niet snel genoeg... Ik wil bijvoorbeeld per pagina slechts 10 achternamen afbeelden, maar een LIMIT is niet in de subquery te plaatsen omdat MySQL (5) dan klaagt dat die functie niet geimplementeerd is. Deze limit moet dus bij de buitenste query, wat betekend dat voor de subquery wel alle resultaten worden opgehaald.

Ik heb verder de benodigde indexen aangemaakt, maar zoals hieronder uit de EXPLAIN van MySQL blijkt, wordt er nogsteeds een trage filesort gebruikt.

12   DEPENDENT SUBQUERY   AchternaamDeel   range   PRIMARY,AchternaamDeel   AchternaamDeel   32   N   55   Using where; Using temporary; Using filesort


Iemand een idee hoe ik dit verder kan optimaliseren? (Of pak ik het verkeerd aan?)
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')