abonnement Unibet Coolblue Bitvavo
  donderdag 2 november 2006 @ 00:51:39 #91
94421 IceHeat
Spiritually bankrupt
pi_43159657
Ik bedenk net:

Om Excel uit te lezen kun je denk ik wel beter OleDB gebruiken, ODBC verdraait soms bepaalde
waarden, en is dus niet ideaal voor Excel. Bijv: Als een formule in de cel staat, dan pakt ODBC hem wel, maar als het gewoon een waarde is, zonder formule, slaat ODBC hem over.

Eigenlijk is ODBC nooit ideaal.
pi_43161702
Goed, de meesten hier kennen wel de methode om [aantal] random rows op te halen uit een tabel:

1SELECT * FROM tabel ORDER BY RAND() LIMIT 0, aantal


Intern doet MySQL dit een beetje omslachtig (kan geoptimaliseerd worden). Hij kent elk record in de tabel een random waarde toe, waar hij vervolgens op gaat sorteren. Stel, ik heb een tabel met een miljoenen records waarvan ik geen enkele waarde vantevoren kan voorspellen (geen consecutive (primary) keys dus), hoe selecteer ik hier dan snél 10.000 random records uit?

Voetnoot: de tabel in kwestie heeft fixed records en MySQL houdt het aantal records bij. Dit betekent dat bovenstaande wens uitgevoerd kan worden door random nummers tussen de 0 en numrecords te pakken en de bijbehorende records op te halen vanaf offset + recordsize * randomnumber in de dataset. Waarom MySQL niet iets dergelijks doet is me een raadsel.
pi_43163327
quote:
Op woensdag 1 november 2006 23:50 schreef IceHeat het volgende:

[..]

Zelf schrijven? ODBC kun je voor Excel gebruiken, maar ik weet niet of je ODBC met PHP kan gebruiken.
Heej, oke.. dat kan me een stap in de richting helpen, hoewel ik nog nooit van ODBC heb gehoord. Maar, ik ben op zoek naar een script dat grotendeels af is vanwege weinig tijd.

Kijk, dit (http://fundisom.com/phparadise/php/databases/mySQL_to_excel) script heb ik gevonden en werkt na wat kleine aanpassingen prima. Maar, die opent het in de browser en bewaard het bestand niet op de server. Weet iemand hoe ik dat met een kleine aanpassing van dat script wel kan doen?
En toen was het verhaaltje uit...
pi_43166803
Inmiddels heb ik de oplossing gevonden.
In het script als hierboven genoemd wijzig je echo steeds in $sheet .= en vervolgens maak je het bestand op deze manier:

$fopen = fopen("deelnemers.xls",w);
fwrite($fopen, $sheet);
fclose($fopen);

In dat geval moet er al wel een bestand met die bestandsnaam aanwezig zijn met voldoende rechten. Een kleine aanpassing en het script zou dat bestand natuurlijk kunnen aanmaken.

Wat ik doe is na het laten mailen van het excel bestand het excel bestand direct weer bewerken totdat er enkel "leeg" in het bestand staat. Zo:

$fopen = fopen("deelnemers.xls",w);
fwrite($fopen, "leeg");
fclose($fopen);

Op die manier zijn de gegevens uit de QSL database niet zomaar op te vragen door kwaadwillenden.
En toen was het verhaaltje uit...
  donderdag 2 november 2006 @ 23:50:14 #95
42636 TheSeeker_NL
Damn fine coffee
pi_43192118
Ik ben een beetje aan het stoeien met sql, maar ik kan het volgende niet vinden in mn boekje.

ik heb een tabel met leden en elk lid heeft een handicap (golf). hoe krijg ik te zien welk lid de laagste handicap heeft?
  vrijdag 3 november 2006 @ 00:08:59 #96
94421 IceHeat
Spiritually bankrupt
pi_43192777
quote:
Op donderdag 2 november 2006 23:50 schreef TheSeeker_NL het volgende:
Ik ben een beetje aan het stoeien met sql, maar ik kan het volgende niet vinden in mn boekje.

ik heb een tabel met leden en elk lid heeft een handicap (golf). hoe krijg ik te zien welk lid de laagste handicap heeft?
ORDER BY [kolom]
En dan ook nog ASC DESC aangeven

http://www.w3schools.com/sql/sql_orderby.asp
pi_43192847
1SELECT * FROM tabel ORDER BY handicap ASC
  vrijdag 3 november 2006 @ 00:12:47 #98
42636 TheSeeker_NL
Damn fine coffee
pi_43192902
quote:
Op vrijdag 3 november 2006 00:08 schreef IceHeat het volgende:

[..]

ORDER BY [kolom]
En dan ook nog ASC DESC aangeven

http://www.w3schools.com/sql/sql_orderby.asp
Ja ok dat is een manier. Maar wat nou als ik alleen de naam wil zien van het lid met de laagste handicap? dus zonder een lijst te genereren en die te ordenen van laag naar hoog?

(bedankt voor je reactie iig )
  vrijdag 3 november 2006 @ 00:21:06 #99
1607 Ali Salami
Altijd actueel
pi_43193094
LIMIT='1' toevoegen, dan hou je één row over

Dat zijn wel de basisbeginselen overigens, misschien nog wat meer inlezen
Hatsjoe!
  vrijdag 3 november 2006 @ 00:28:31 #100
42636 TheSeeker_NL
Damn fine coffee
pi_43193236
ahh ok.

ik had SELECT MIN(handicap) gebruikt om de laagste handicap te vinden, ik dacht misschien dat ik op zo'n soort manier ook de naam van de speler erbij kon krijgen.

maar blijkbaar niet. Je hebt gelijk ik moet ook nog wel meer lezen hoor, maar ik hou ervan spelende wijs dingen te leren. En als jullie het niet heeel erg vinden, dan post ik hier af en toe wat "domme vraagjes".
  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
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')