Gegevens uit mysql

  • Mensen hebben al een aantal voorbeelden gegeven dit is prima gelukt alleen wat ik nou echt zoek is namelijk een soort uitnodiging script dat als je een gebruikersnaam invoert dat diegene op een pagina dat accepteren/weigeren bijv. om in een groep te komen.


    Een soort uitnodigings script :D

  • Nodig:
    Database


    Begin met een verbinding met je database.

    PHP
    <?php
    mysql_connect('localhost','naam','wachtwoord') && @mysql_select)db('database');
    ?>


    Ook moet je natuurlijk gegevens in de database hebben maar denk dat die er alwel zijn anders viel er niets op te halen.


    Daarna ben je een mysql_query nodig.

    PHP
    <?php
    $sql = mysql_query("select achternaam, telefoonnummer from werknemers where voornaam='pietje'");
    ?>


    Dit haalt de achternaam en telefoonnummer op uit de tabel werknemers waar de voornaam pietje is.


    Nu gaan we deze gegevens in een variable binden.

    PHP
    <?php
    $resultaat = mysql_fetch_object($sql);
    ?>


    En nu laten we deze zien (ik laat hem nu zien in een lus zolang er mensen met de voornaam piet zijn, ik gebruik hierbij het $resultaat stukje in een while loop)

    PHP
    <?php
    while($resultaat = mysql_fetch_object($sql)){
    echo "Achternaam: $resultaat->achternaam<br>
    Telefoonnummer: $resultaat->telefoonnummer<br><br>";
    }
    ?>


    Dit is even snel gemaakt en dus ook erg basis (wat je ook zocht)
    Mocht het niet helemaal zijn wat je bedoeld dat graag iets meer duidelijkheid :)


    Pekeltje

  • Dit is iets netter:


  • @ pekelterror,


    als jou niveau van php 4 is dan moet je echt wel weten dat je een variable in een string moet escapen zoals jij het doet:


    PHP
    echo "Achternaam: $resultaat->achternaam<br>
    Telefoonnummer: $resultaat->telefoonnummer<br><br>";


    zal misschien wel goed gaan maar om er voor te zorgen dat je er nooit problemen mee krijgt:


    PHP
    echo "Achternaam: " . $resultaat->achternaam . "<br>
    Telefoonnummer: " . $resultaat->telefoonnummer . "<br><br>";


    Dan hebben we nog het overzichtelijk programmeren. Hier bedoel ik op de goede manier tabs gebruiken dit laat je hier ook te wensen over in je programmering.


    Dan heb ik nog:


    PHP
    <?php
    mysql_connect('localhost','naam','wachtwoord') && @mysql_select)db('database');
    ?>


    het is toch echt;


    PHP
    mysql_select_db()


    daarnaast waarom met een @ werken, heb dan een error handler die de fout netjes afhandelt aangezien wanneer je het zo doet er wel een tijdje over heen kan gaan voor je er achter bent dat dat de fout is.


    Als laatste:

    PHP
    <?php
    $sql = mysql_query("select achternaam, telefoonnummer from werknemers where voornaam='pietje'");
    ?>


    leuk dat je de SQL line zo hebt neer gezet, maar ervaring leert dat je beter met hoofdletters kan werken zoals:


    PHP
    <?php
    $sql = mysql_query("SELECT achternaam, telefoonnummer FROM werknemers WHERE voornaam='pietje'");
    ?>


    is toch iets netter en tegenwoordig zie je dat overal in terug. Het werkt maar ik raad je het ten grootste af om alles in kleine letters te doen het geeft toch weer een mate van overzicht op je programmering.

  • Het gedeelte over mysql_select_db klopt.
    Was een typefoutje omdat ik het erg snel had getyped omdat ik moest gaan maar toch nog even wou helpen.
    [offtopic]Zat 1 toetsje te ver naar links :$[/offtopic]


    Maar wat kan er verkeerd gaan met mijn methode dan?
    Want heb nog nooit ergens problemen mee gehad.


    Ook vind ik persoonlijk het gebruik van hoofdletters in SELECT, FROM, WHERE niets overzichtelijker maar dit is een persoonlijke mening.


    Dus op de typefout na zijn het zover ik weet enkel dingen wat je gewend doet maar zijn beide manieren (die van jou en mij) goed.


    Maar mocht mijn manier toch bepaalde fouten opleveren (hoewel ik het nog nooit ben tegengekomen.)
    Zou ik het graag weten dan kan ik gelijk beginnen met het aanleren van jou manier :)


    Pekeltje

  • Het is me gelukt alleen het is niet echt wat ik wil. Ik zoek namelijk een soort uitnodiging script dat als je een gebruikersnaam invoert dat diegene op een pagina dat accepteren/weigeren bijv. om in een groep te komen. :cheer:

    Nieuwe reactie samengevoegd met originele reactie op 07.05.10 20:22:27:
    Kan iemand me nog helpen?

  • Je kan altijd soort gelijke dingen openen en bekijken/gebruiken als voorbeeld.


    Denk dat een famillie invite systeem van 99% van de criminal/maffia spellen een goed voorbeeld is hoe je het kan gebruiken.


    Maar wat ben je nodig?
    Pagina of iemand uit te nodigen (insert naar de database)
    Pagina of te kijken of je bent uitgenodigd (select vanuit de database)
    Toetreden of weigeren (delete voor beide om de uitnodiging te verwijderen, mogelijk update om in de groep te komen)


    Let er wel op dat je ook moet controlleren of die invite wel is gestuurd.
    Niet dat ze het na kunnen bootsen door bijvoorbeeld: pagina.php?groep=admins en ze de groep admins in komen bijvoorbeeld.


    Iets in de richting als:

    PHP
    $groep = mysql_real_escape_string($_GET['groep']);
    $sql = mysql_query("select naam, groep from uitnodigingen where naam='$data->login' and groep='$groep'");
    if(mysql_num_rows($sql) > '0'){
    echo "Je hebt een uitnodiging van deze groep";
    } else {
    echo "Je hebt helemaal geen uitnodiging voor deze groep..";
    }


    Maar nogmaals bekijk eens een famillie systeem van een criminal.
    Die hebben namelijk: invite, accept/weigeren, en de check of je wel bent uitgenodigd.


    Pekeltje

  • als je slechte programmatie wilt hebben ja dan zou ik in een criminals duiken en daar naar gaan kijken inderdaad. Als je het wil programmeren zoals het op het dit moment het beste is zou ik toch http://www.php.net/ etc gaan raadplegen aangezien het dan beter is.


    pekelterror, mysql_num_rows(); geeft toch echt een numerieke waarde terug en dat is niet in de vorm van een string. In jou voorbeeld daar in tegen wordt het wel als een string behandeld.



    Om uitnodigingen te versturen heb je onder andere een query nodig om er voor te zorgen dat de uitnodiging in de database komt, en dan op een andere pagina een query die de tabel uitleest en kijkt of er een uitnodiging is voor de betreffende gebruiker.

  • Klopt maar daarom zei ik ook dat het als voorbeeld kan gebruikt worden.
    Natuurlijk moet dan de beveiliging nog wel worden verbeterd en beter gescript worden.


    Had even niets te doen op stage dus even wat gemaakt.
    (Kan vast beter maar altijd beter als niets!)


    uitgenodigd.php


    Bij deze maakt de bestandsnaam niets uit.
    Er is nog geen check of je de rechten hebt om een uitnodiging te verzenden!
    In dit geval kan iedereen van de groep het (Dus open invite systeem)


    Ben er van uit gegaan dat de database de volgende tabellen had:


    gebruikers
    uitnodigingen
    berichten



    Gebruikers bestaat minstens uit:
    naam
    groep


    uitnodigingen bestaat minstens uit:
    naam
    groep


    berichten bestaat minstens uit:
    onderwerp
    bericht
    aan (Dit is de ontvanger van de uitnodiging)


    Edit: Variablen Escaped (Bedankt voor de tip over beter scripten, Patrick)


    Denk dat je zo een heel eind kunt komen.
    Pekeltje

  • ja sorry ik moet toch weer beginnen met dingen zeggen, met jou PHP ervaring


    PHP
    if(!empty($_GET)){


    leuk dat je controleert of $_GET leeg is. Maar daarna wil je de variabels $_GET['accept'] & $_GET['groep'] neertzetten.


    Wat nou als ik bijvoorbeeld index.php?groep=2 doe, $_GET is niet leeg maar $_GET['accept'] zal er toch echt niks voor komen. (In dit voorbeeld kan $_GET['groep'] dus ook leeg zijn)


    Daarnaast ik weet niet wat voor stage je loopt, als het een web programmatie stage is dan zou ik je toch is gaan schamen bij wat voor bedrijf je zit. Aangezien tegenwoordig je bij elk bedrijf in je sql regels je variables MOET escapen. Sommige servers zien het gewoon als tekst en niet als een variable.


    Dus deze regel:

    PHP
    mysql_query("update gebruikers set groep = '$groep' where naam = '$data->naam'");


    zal dan fout gaan, en escapen is niet zo moeilijk en staat ook gelijk weer wat netter:


    PHP
    mysql_query("UPDATE gebruikers SET groep = '" . $groep . "' WHERE naam = '" . $data->naam . "' ");


    Ik zeg niet dat je het fout doet ik zeg alleen dat je op deze manier grote fouten kan maken en bedrijven tegenwoordig een bepaalde style sowieso in hun bedrijf willen hebben en daar zitten vrijwel altijd deze standaarden in

  • Oke.


    Ben bij een klein bedrijf maar die kunnen er niets aan doen dat ik zo script.
    Dat is omdat ik het mezelf heb aangeleerd omdat we op school nog bijna geen scripten gehad hebben.


    Het scripten wat ik op school had kan een beginner in 2 week al doen.
    Een ervaren persoon is het een dagje of 2 werk voor :p


    Ik zie het ook niet als commentaar maar als een tip:)
    Alleen is het wel even wennen omdat je toch je eigen methode gewent bent.
    [offtopic]Op school heb ik niet eens dingen gehad als mysql_real_escape_string, werkten we met cookies inplaats sessions, variablen gewoon overal neerkwakken waar je ze maar nodig was enzovoort.[/offtopic]


    Zal het proberen te onthouden hoe dit het beste kan.
    [offtopic]Niet dat ik ooit een probleem had maar als jou manier beter is en op sommige servers de enigste werkende mogelijkheid is zal ik die gebruiken.
    Kan het beste zo vroeg mogelijk mezelf de juiste manier aanleren.[/offtopic]


    En had inderdaad had beter kunnen kijken of groep en accept wel waren ingevuld.
    Inplaats gewoon zoals nu of er ook maar iets in de get staat.


    Edit: Script aangepast.
    Niet dat die niet deed maar zo is die wat netter.
    Ook controlleerd die nu of groep en accept zijn ingevuld in de get.


    Pekeltje

  • @ Pekelterror:
    Nog even wat tipjes:
    1) Gebruikt NOOIT object maar altijd assoc of array.
    2) Het is overzichtelijker om WHERE i.p.v where te doen.
    Dit omdat je dan snel ziet of het een functie of een tabel / veld naam is.
    3) Als je een variabele in een echo ''; doet, doe je het zo:

    PHP
    <?php
    $naam = 'Pekelterror';
    echo 'Mijn naam is: '.$naam;
    ?>


    En als je erna nog tekst doet:

    PHP
    <?php
    $naam = 'Pekelterror';
    $woonplaats = 'Amsterdam';
    echo 'Mijn naam is: '.$naam.' en ik woon in '.$woonplaats.'.<br /> nu genoeg over mij!';
    ?>


    4) Gebruik altijd <br /> i.p.v <br> of <br/>.
    Dit omdat sommige browsers [offtopic]Internet verkenner![/offtopic] het niet altijd parsen.


    Lars

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!