Pagina 1 van 2 12 LaatsteLaatste
Weergegeven resultaten: 1 t/m 10 van 11

Discussie: MySQL

  1. #1
    PC-Freak  
    Geregistreerd
    10 December 2006
    Locatie
    Earth.
    Berichten
    1.029
    Bedankjes
    273
    Bedankt
    587 keer in 395 posts

    MySQL

    Hallo,

    Ik weet niet goed waar ik dit topic moest zetten, bij Linux of bij Webdevelopment fzo , daarom zet ik hem hier !

    Dit is het verhaal:
    Ik heb met behulp van 'Gnokii' (www.gnokii.org) er voor gezorgd dat mijn sms'en automatisch ingelezen worden. Al deze sms'en worden dan in een MySQL database gezet. Nu wil ik de tekst gaat 'ontleden' ofzo.

    Het moet dus een votingsysteem worden. Als er een 1 in de sms staat, heeft speler 1 dus 1 stem meer. Staat er 2, dan krijgt speler 2 een stem meer.. Jullie snappen het principe wel.

    Mijn vraag dus:
    Hoe kan ik gegevens uit een veld halen, ze 'analyseren' en aan de hand van deze waarde ergens optellen fzo?

    Alvast bedankt!!
    https://twitter.com/Fck___

  2. De volgende gebruiker bedankt Fck_ voor deze nuttige post:

    ultddave ( 2 May 2010)

  3. #2
    Gevorderd   rommeke's schermafbeelding
    Geregistreerd
    10 May 2005
    Locatie
    cyberspace
    Berichten
    207
    Bedankjes
    40
    Bedankt
    65 keer in 37 posts
    heb je enige kennis van php en mysql anders kan je een php pagina aanmaken die gebruikt van een select query en
    met if(mysql_num_rows($result) > 0) het opslaan het weergeven in een tabel. Samen met lamp kan je dan die pagina lokaal bekijken

    Ik heb nu wat weinig voor heel de code te schrijven (tis al behoorlijk laat aan het worden) maar indien je er niet aan uit graakt wil ik wel eens kijken op ik de opmaak kan verzorgen van de mysql aanroepen in php

  4. De volgende gebruiker bedankt rommeke voor deze nuttige post:

    ultddave ( 2 May 2010)

  5. #3
    Gevorderd   rommeke's schermafbeelding
    Geregistreerd
    10 May 2005
    Locatie
    cyberspace
    Berichten
    207
    Bedankjes
    40
    Bedankt
    65 keer in 37 posts
    sorry voor de dubbelpost maar ik kan blijkbaar niet meer editen als je geen sql kent raad ik je aan om een de tuts van alister christie tebekijken op codegearguru.com alsook eens kijken voor een grafische weergave van je database ik weet niet of SQLYOG draait op linux. Daarnaast heb ik nog eens nagedacht je zou het kunnen doen in php maar met puur sql en een grafische interface zou het ook kunnen lukken alhoewel dan een klein overzicht van de verschillende tabbelen handig zou kunnen zijn.

    Bv tabel a (veld1, veld 2) met primary en forgein keys er gelieve bij indien er een joint of een subquery zal moet gemaakt worden

  6. De volgende gebruiker bedankt rommeke voor deze nuttige post:

    ultddave ( 2 May 2010)

  7. #4
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.391
    Bedankt
    2.577 keer in 1.271 posts
    Ik denk dat deze PHP code voldoende is;

    PHP-code:
    <?php
        $host
    ="localhost";
        
    $login="root";
        
    $pass="";
        
    $database ="sms";
        
    $db mysql_connect($host,$login,$pass);
        if (!
    mysql_select_db($database,$db)) {
            echo 
    "Connectie met database mislukt ";
        }
        else
        {
            
    $totaalAantal1 0;
            
    $totaalAantal2 0;
            
    $totaalAantalF 0;
            
    $result mysql_query("SELECT inhoud FROM `berichten`");
            while(
    $row mysql_fetch_array($result)){
                
    extract($row);
                if(
    strcmp($inhoud,"1")==0)
                    
    $totaalAantal1 += 1;
                else if(
    strcmp($inhoud,"2")==0)
                    
    $totaalAantal2 += 1;
                else
                    
    $totaalAantalF += 1;
            }
        
            echo 
    "Er zijn ".$totaalAantal1." mensen die 1 hebben gesmsed.<br/>";
            echo 
    "Er zijn ".$totaalAantal2." mensen die 2 hebben gesmsed.<br/>";
            echo 
    "Er zijn ".$totaalAantalF." mensen die iets anders hebben gesmsed.<br/>";
        }

    ?>
    Een normale SELECT query zal voldoende moeten zijn, in de veronderstelling dat de er een kolom is die de inhoud van het bericht bevat.

    Waarbij deze informatie ingevuld moet worden;
    $host="localhost";
    $login="root";
    $pass="";
    $database ="sms";

    Met de juiste login informatie voor je database.

    En ook deze;
    mysql_query("SELECT inhoud FROM `berichten`");

    Daar moet je "inhoud" vervangen door de juiste kolomnaam. En "berichten" door de juiste tabelnaam.

    De score van "speler 1" wordt bijgehouden in $totaalAantal1 en die van speler 2 in $totaalAantal2. $totaalAantalF bevat het aantal foute smsen. (Die dus niet bestaan uit "1" of "2".)

    PS: Het kan simpeler als je de inhoud van de sms bijhoudt als een integer ipv een string. Maar dan kunnen er wel geen smsen die tekst bevatten, in de database gestopt worden. Dus dan moet je inkomende berichten 'parsen' alvorens ze in de database te stoppen.

    Mvg,
    Dave
    Laatst gewijzigd door ultddave; 2 May 2010 om 13:08
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  8. #5
    Gevorderd   rommeke's schermafbeelding
    Geregistreerd
    10 May 2005
    Locatie
    cyberspace
    Berichten
    207
    Bedankjes
    40
    Bedankt
    65 keer in 37 posts
    leuk gedaan maar ik prefereer toch heb gebruik van or die bij ipv van je connectie
    btw je doet ook geen controle of je query kan uitgevoerd worden. Daarnaast sluit je database connectie ook niet af. Maar wat is strcmp is dat een string in een in stukjes kappen. Als je wilt ga ik eens met die code brielen
    Laatst gewijzigd door rommeke; 2 May 2010 om 19:02

  9. De volgende gebruiker bedankt rommeke voor deze nuttige post:

    ultddave ( 2 May 2010)

  10. #6
    Erelid   carl's schermafbeelding
    Geregistreerd
    20 June 2006
    Locatie
    Halle/Gent
    Berichten
    2.409
    Bedankjes
    1.846
    Bedankt
    1.827 keer in 1.102 posts
    Als je een tabel "sms" hebt met velden id (autonumber) en tekst(varchar fzo)

    kan je gewoon volgende SQL query uitvoeren:
    SELECT COUNT(tekst) FROM sms HAVING tekst = '1';

    En dan hetzelfde doen voor 2 Of mis ik iets ?
    Laatst gewijzigd door carl; 2 May 2010 om 19:52

  11. De volgende gebruiker bedankt carl voor deze nuttige post:

    ultddave ( 2 May 2010)

  12. #7
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.391
    Bedankt
    2.577 keer in 1.271 posts
    btw je doet ook geen controle of je query kan uitgevoerd worden.
    Hoezo? De if else test rond de databaseconnectie zorgt ervoor dat de query enkel uitgevoerd wordt als er een DB connectie is.
    Als de query zelf zou mislukken (om 1 of andere reden), bevat $result gewoon een lege result set. Dus dan zou de while lus gewoon overgeslagen worden omdat $result geen rijen heeft voor te 'fetchen'. Want ook de bedoeling is.

    En omdat ik de 3 variabelen geinitialiseerd heb op 0, zal er geen error voorkomen bij het uitvoeren van die 3 echo statements.

    Daarnaast sluit je database connectie ook niet af.
    Database connectie sluit automatisch op het einde van het script.

    Maar wat is strcmp is dat een string in een in stukjes kappen.
    strcmp = String Compare. Een PHP functie voor strings te vergelijken. Die returned "0" als ze gelijk zijn. Opzich hetzelfde als je if($inhoud == "1") zou doen dus. Maar ik ben gewend om met strcmp te werken.

    En dan hetzelfde doen voor 2 Of mis ik iets ?
    Opzich zou dat gaan ja. Dat is korter alleszins . Had ik over het hoofd gezien.

    Mvg,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  13. De volgende gebruiker bedankt ultddave voor deze nuttige post:

    carl ( 2 May 2010)

  14. #8
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.391
    Bedankt
    2.577 keer in 1.271 posts
    EDIT: Maar het is inderdaad beter om de DB connectie zelf te sluiten.
    mysql_close($db);
    Moet je dan achteraan toevoegen.

    Mvg,
    Dave
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

  15. #9
    Erelid/Spyware Slayer  
    Geregistreerd
    10 May 2005
    Berichten
    1.977
    Bedankjes
    119
    Bedankt
    373 keer in 248 posts
    Het is aangeraden om over te stappen op MySQLi of PDO, de oude MySQL extension wordt niet meer actief ontwikkeld. Er zijn voor en nadelen een beide, PHP legt hier de verschillen mooi uit.

    Ik zou de manier van Carl gebruiken, MySQL kan die dingen een stuk sneller berekenen dan PHP (een database is daarvoor ontworpen), vooral bij grootte databases gaat dat een stuk sneller zijn (de code van ultddave moet door ieder record loopen)

  16. De volgende 2 gebruikers bedanken Martijnc voor deze nuttige post:

    carl ( 2 May 2010), ultddave ( 2 May 2010)

  17. #10
    Administrator   ultddave's schermafbeelding
    Geregistreerd
    24 June 2006
    Locatie
    Genk
    Berichten
    1.527
    Bedankjes
    5.391
    Bedankt
    2.577 keer in 1.271 posts
    Inderdaad. Ik ben al overgeschakeld op MySQLi . Maar had gewoon nog de 'oude' manier gebruikt uit gewoonte . Vorig jaar kreeg ik nog les (PHP - MySQL) met mysql. Vanaf nu krijgen alle leerlingen bij ons de les met mysqli.

    PS: Merci voor de link.

    Ik zou de manier van Carl gebruiken, MySQL kan die dingen een stuk sneller berekenen dan PHP (een database is daarvoor ontworpen), vooral bij grootte databases gaat dat een stuk sneller zijn (de code van ultddave moet door ieder record loopen)
    Inderdaad. Was vergeten dat je ook in SQL zelf kon checken .

    Mvg,
    Dave
    Laatst gewijzigd door ultddave; 2 May 2010 om 21:52
    "Friendship. It's the hardest thing in the world to explain. It's not something you learn in school. But if you haven't learned the meaning of friendship, you really haven't learned anything." ~ Muhammad Ali

Discussie informatie

Users Browsing this Thread

Momenteel bekijken 1 gebruikers deze discussie. (0 leden en 1 gasten)

Soortgelijke discussies

  1. Mysql & php vraagje!
    Door Deadangel in forum Webdevelopment & Programming
    Reacties: 3
    Laatste bericht: 30 July 2008, 20:51
  2. MySQL backup
    Door bubsy119 in forum Webdevelopment & Programming
    Reacties: 3
    Laatste bericht: 29 July 2008, 20:06
  3. ADO.net en Mysql
    Door pietereeckhout in forum Webdevelopment & Programming
    Reacties: 0
    Laatste bericht: 1 June 2008, 17:39
  4. MySQL
    Door swaxmot in forum Webdevelopment & Programming
    Reacties: 5
    Laatste bericht: 19 March 2007, 09:36

Favorieten/bladwijzers

Favorieten/bladwijzers

Regels voor berichten

  • Je mag geen nieuwe discussies starten
  • Je mag niet reageren op berichten
  • Je mag geen bijlagen versturen
  • Je mag niet je berichten bewerken
  •