1. Deze website gebruikt cookies. Door deze website verder te gebruiken, gaat u akkoord met ons gebruik van cookies. Leer Meer.

PHP Leren

Discussie in 'PC, Handheld & Algemeen' gestart door Pimmy, 24 jan 2004.

  1. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    Nog altijd niets, De databse connectie is goed en er staat ok wat in de tabel: Kijk maar op http://www.voetbal.frihost.net/v2/site_sqlproject/index2.php

    Code:
    <?php 
       $dbh=mysql_connect ("localhost", "voetbal_info", "w8woord") or die ('I cannot connect to the database because: ' . mysql_error());
    mysql_select_db ("voetbal_info");       
        
       $sql = "SELECT * FROM werknemers"; 
       $resultaat = mysql_query($sql, $dbh); 
        
       if( isset( $_GET['id'] ) ){ 
       //voer een query uit waar je alle info over het desbetreffende id ophaalt 
       } else { 
       
        while( $record = mysql_fetch_object($resultaat) ){ 
      echo '<a href=\'index2.php?id=' . $record->id . '\'>' . $record->naam . '</a>'; }
    } 
    ?>
     
    Laatst bewerkt: 23 okt 2005
  2. Tha_Rix

    Tha_Rix GM JUNK

    Berichten:
    419
    Leuk Bevonden:
    1
    doe es dit veranderen:
    $resultaat = mysql_query($sql, $dbh);
    in dit:
    $resultaat = mysql_query($sql);

    dat is iig voldoende als je maar naar 1 db connect.. :)
     
  3. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    Dat had ik ondetussen al eens gedaan, maar het werkt niet :mad:
     
  4. Peanutnl

    Peanutnl Halo3

    Berichten:
    132
    Leuk Bevonden:
    0
    Zet een helemaal bovenaan ERROR_REPORTING(E_ALL);

    en net na de query:

    PHP:
    <?
    if (
    $resultaat) {
    //de rest enz enz..
    } else {
    echo 
    "er is een foutje..";
    //als hij hier iets geeft is er iets fout met de query..
    }
    ?>
     
  5. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    Bedankt :). Ik had een foutje gemaakt met id's op te roepen en ik was vergeten om de recordnaam te veranderen. In plaats van de record 'voornaam' riep de niet bestaande record 'naam' op.
     
  6. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    Ik ben dus bezig met een systeem voor mn website waarmee ik spelers kan toevoegen aan de database. Nu wil ik ook een foto op een spelerspagina hebben. Hoe kan ik een plaatje in voegen in een database? Ik weet dat ik de tabelrecord als type BLOB moet hebben, maar verder zou ik het niet weten.
     
  7. Darkwing

    Darkwing Active Member

    Berichten:
    6.510
    Leuk Bevonden:
    25
    Ga alsjeblieft geen plaatjes invoegen in je database. Dat is traag en zorgt alleen maar voor extra dataverkeer.

    Het beste kun je het plaatje gewoon uploaden naar je server en in je database de url van het plaatje zetten.
     
  8. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    Ok, maar hoe kan ik ervoor zorgen dat de server weet dat het om een plaatje gaat. Anders zit ik straks misschien met een URL in plaats van de foto.
     
  9. Darkwing

    Darkwing Active Member

    Berichten:
    6.510
    Leuk Bevonden:
    25
    Ligt eraan wat je bedoeling is. Als je met een uploadscriptje werkt kun je controleren of de filetype een afbeelding is. Dat kan eenvoudig met het commando substr:

    PHP:
    //Geeft de laatste 3 karakters van de string weer
    $filetype substr($bestandsnaam, -3);
    Vervolgens kun je in een if statement checken of $filetype "jpg", "gif" of "png" is.

    Als je deze afbeeldingen in een vaste directory opslaat (bijvoorbeeld /images/spelers/) hoef je in de database alleen maar de bestandsnaam op te slaan (bijvoorbeeld speler1.jpg). In je script lees je de bestandsnaam uit en plaats je die in een IMG tag, bijvoorbeeld <img src="/images/spelers/$spelerfoto" />
     
    Laatst bewerkt: 24 okt 2005
  10. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    Oké, ik zal eerst op zoek gaan naar een uploadscript. Bedankt.:)
     
  11. [2k]

    [2k] XBW.nl VIP XBW.nl VIP

    Berichten:
    8.968
    Leuk Bevonden:
    207
    Zijn diverse manieren om bestandsnaam te achterhalen. Die van Luuk is erg geschikt.
    Gewoon de url of de naam in de database zetten, kan je later met het cms ook weer eenvoudig het plaatje laten uitlezen en een optie inbouwen om het plaatje te laten verwijderen (uit database en directory).
     
  12. Jorrit

    Jorrit Server admin XBW.nl ICT

    Berichten:
    5.537
    Leuk Bevonden:
    9
    Luuk zijn methode werkt niet als je bijvoorbeeld jpeg als extensie gebruikt en je moet erop letten dat extensies ook in hoofdletters geschreven kunnen worden. PHP heeft zelf een functie om de extensie te achterhalen:
    PHP:
    $filename 'bladiebla.jpeg';
    $pinfo pathinfo($filename);
    echo 
    'De extensie is: '.$pinfo['extension'];
    Om te kijken of iets een image is gebruik je getimagesize:
    PHP:
    $filename 'bladiebla.jpeg';
    $iinfo = @getimagesize($filename); // geeft error als het geen image is
    if($iinfo === false) {
      echo 
    $file.' bestaat niet of is geen afbeelding';
    } else {
      switch(
    $iinfo[2]) {
        case 
    IMAGETYPE_GIF:
          echo 
    'dit is gif!';
          break;
        case 
    IMAGETYPE_JPEG:
          echo 
    'dit is jpg!';
          break;
        case 
    IMAGETYPE_PNG:
          echo 
    'dit is png!';
          break;
      }
    }
    Getimagesize herkent: GIF, JPG, PNG, SWF, PSD, BMP, TIFF(intel byte order), TIFF(motorola byte order), JPC, JP2, JPX, JB2, SWC, IFF, WBMP, XBM. Zie http://nl3.php.net/manual/en/ref.image.php voor de juiste constanten.
     
  13. Darkwing

    Darkwing Active Member

    Berichten:
    6.510
    Leuk Bevonden:
    25
    Tegen zoveel wijsheid kan ik natuurlijk niet op :+
     
  14. [2k]

    [2k] XBW.nl VIP XBW.nl VIP

    Berichten:
    8.968
    Leuk Bevonden:
    207
    Agree. :D
    Op werk maken we gebruik van classes en wordt het volgens mij op een andere manier gecontroleerd.
    Weet wel dat phpBB ook gebruik maakt van imagetype.

    Maarja, bij PHP kan je vele dingen op verschillende manieren doen, de een vaak net iets beter dan de ander.

    Thuis heb ik een scriptje, waarbij je kan aangeven welke extensies geldig zijn, en het geuploade bestand (naam of extensie, weet het niet zeker meer) vervolgens door dat stukje geloopt wordt om te controleren of het geldig is of niet, werkt ook erg prettig (ook als je iets anders dan images wilt uploaden).
     
    Laatst bewerkt: 25 okt 2005
  15. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    ik heb weer een probleempje met mijn systeem.

    http://www.voetbal.frihost.net/v2/site_sqlproject/index2.php is de URL waar de namen van de spelers staan die in de databse zitten. Als je op van hooijdonk drukt, dan staan alleen zijn gegevens er. Maar als je op Landzaat klikt, dan staan ook alle gegevens van Landzaat + van Hooijdonk er.

    Waar ligt dat aan?

    Dit is mijn code.

    Code:
    <link rel="stylesheet" type="text/css" href="../style.css">
    <? ERROR_REPORTING(E_ALL); ?>
    
    <?php 
       $dbh=mysql_connect ("localhost", "voetbal_info", "w8woord") or die ('I cannot connect to the database because: ' . mysql_error());
    mysql_select_db ("voetbal_info");       
        
       $sql = "SELECT * FROM spelers"; 
       $resultaat = mysql_query($sql, $dbh); 
        
       if( isset( $_GET['id'] ) ){ // Maak een lus om alle items te laten zien 
       while ($record = mysql_fetch_object($resultaat)) { 
          echo "<img src=\"$record->foto\" align=\"left\" border=\"1\" vspace=\"3\" />
    	        <b>Naam:</b> $record->naam<br /> 
    	        <b>Geboortedatum:</b> $record->geboortedatum<br />
    			<b>Geboorteplaats:</b> $record->geboorteplaats<br /> 
    			<b>Woonplaats:</b> $record->woonplaats<br /> 
    			<b>Burgerlijke staat:</b> $record->burgerlijkestaat<br /> 
    			<b>Kinderen:</b> $record->kinderen<br /> 
    			<b>Lengte:</b> $record->lengte<br /> 
    			<b>Gewicht:</b> $record->gewicht<br /> 
    			<b>Favoriete maaltijd:</b> $record->maaltijd<br />
    			<b>Favoriete Drinken:</b> $record->drinken<br /> 
    			<b>Favoriete muziek:</b> $record->muziek<br /> 
    			<b>Favoriete Club:</b> $record->favoclub<br /> 
    			<b>Positie:</b> $record->positie<br /> 
    			<b>Huige Club:</b> $record->huidigeclub<br /> 
    			<b>Voruge clubs:</b> $record->vorigeclubs<br /> 
    			<b>Rugnummer:</b> $record->rugnummer
    			\n
    			<a href=\"index2.php\"><p><b>Terug</b></p></a>";}
       //voer een query uit waar je alle info over het desbetreffende id ophaalt 
       } else { 
           while( $record = mysql_fetch_object($resultaat) ){ 
      echo '<a href=\'index2.php?id=' . $record->id . '\'>' . $record->naam . '</a>';}
    } 
    ?>
    
    <?
    if ($resultaat) {
    //de rest enz enz..
    } else {
    echo "er is een foutje..";
    //als hij hier iets geeft is er iets fout met de query..
    }
    ?> 
     
  16. [2k]

    [2k] XBW.nl VIP XBW.nl VIP

    Berichten:
    8.968
    Leuk Bevonden:
    207
    Ik krijg bij beide spelers de 2 profielen te zien.

    Hij controleert nu niet welk id er wordt meegegeven.
    Als er een id is meegegeven, haalt ie de profielinfo uit de db van alle rijen (dus 2 profielen) en is er geen id mee gegeven, dan weergeeft ie enkel de links.

    Zet in je isset {} stukje nog een query, waarin de gegevens uit de db gehaald worden met de meegegeven id : SELECT * FROM tabel WHERE id =$_GET[id]

    Anders weergeeft ie gewoon alles. :)
     
  17. NAC Breda fan

    NAC Breda fan Hoogeveense RAT

    Berichten:
    205
    Leuk Bevonden:
    1
    Nu staat er op elke profielenpagina wel de juiste gegevens, maar nu werkt de index niet meer :'-(

    Dit is mijn code
    Code:
    <link rel="stylesheet" type="text/css" href="../style.css">
    <? ERROR_REPORTING(E_ALL); ?>
    
    <?php 
       $dbh=mysql_connect ("localhost", "voetbal_info", "w8woord") or die ('I cannot connect to the database because: ' . mysql_error());
    mysql_select_db ("voetbal_info");       
        
       $sql = "SELECT * FROM spelers WHERE id =$_GET[id]"; 
       $resultaat = mysql_query($sql, $dbh); 
        
       if( isset( $_GET['id'] ) ){ // Maak een lus om alle items te laten zien 
       while ($record = mysql_fetch_object($resultaat)) { 
          echo "<img src=\"$record->foto\" align=\"left\" border=\"1\" vspace=\"3\" />
    	        <b>Naam:</b> $record->naam<br /> 
    	        <b>Geboortedatum:</b> $record->geboortedatum<br />
    			<b>Geboorteplaats:</b> $record->geboorteplaats<br /> 
    			<b>Woonplaats:</b> $record->woonplaats<br /> 
    			<b>Burgerlijke staat:</b> $record->burgerlijkestaat<br /> 
    			<b>Kinderen:</b> $record->kinderen<br /> 
    			<b>Lengte:</b> $record->lengte<br /> 
    			<b>Gewicht:</b> $record->gewicht<br /> 
    			<b>Favoriete maaltijd:</b> $record->maaltijd<br />
    			<b>Favoriete Drinken:</b> $record->drinken<br /> 
    			<b>Favoriete muziek:</b> $record->muziek<br /> 
    			<b>Favoriete Club:</b> $record->favoclub<br /> 
    			<b>Positie:</b> $record->positie<br /> 
    			<b>Huige Club:</b> $record->huidigeclub<br /> 
    			<b>Voruge clubs:</b> $record->vorigeclubs<br /> 
    			<b>Rugnummer:</b> $record->rugnummer
    			\n
    			<a href=\"index2.php\"><p><b>Terug</b></p></a>";}
       //voer een query uit waar je alle info over het desbetreffende id ophaalt 
       } else { 
           while( $record = mysql_fetch_object($resultaat) ){ 
      echo '<a href=\'index2.php?id=' . $record->id . '\'>' . $record->naam . '</a>';}
    } 
    ?>
    
    <?
    if ($resultaat) {
    //de rest enz enz..
    } else {
    echo "er is een foutje..";
    //als hij hier iets geeft is er iets fout met de query..
    }
    ?> 
     
  18. Peanutnl

    Peanutnl Halo3

    Berichten:
    132
    Leuk Bevonden:
    0
    Ik zie een paar schoonheids foutjes..
    ik zet de "nieuw"(ik weet niet of je hem gaat gebruiken..) ff neer:

    PHP:
    <link rel="stylesheet" type="text/css" href="../style.css">
    <?
    ERROR_REPORTING(E_ALL);
    $dbh=mysql_connect ("localhost", "voetbal_info", "w8woord") or die ("I cannot connect to the database because: ".mysql_error());
    mysql_select_db ("voetbal_info");       
        
    if (isset($_GET["id"])) { // Maak een lus om alle items te laten zien    
        $sql = "SELECT * FROM `spelers` WHERE `id` = '".$_GET["id"]."'"; 
        $resultaat = mysql_query($sql, $dbh);     
        if ($resultaat) {
            while ($record = mysql_fetch_array($resultaat)) { 
                echo "<img src=\"".$record["foto"]."\" align=\"left\" border=\"1\" vspace=\"3\">";
                echo "<b>Naam:</b> $record["naam"]<br>";
                echo "<b>Geboortedatum:</b> ".$record["geboortedatum"]."<br>";
                echo "<b>Geboorteplaats:</b> ".$record["geboorteplaats"]."<br>";
                echo "<b>Woonplaats:</b> ".$record["woonplaats"]."<br>";
                echo "<b>Burgerlijke staat:</b> ".$record["burgerlijkestaat"]."<br>";
                echo "<b>Kinderen:</b> ".$record["kinderen"]."<br>";
                echo "<b>Lengte:</b> ".$record["lengte"]."<br>";
                echo "<b>Gewicht:</b> ".$record["gewicht"]."<br>"; 
                echo "<b>Favoriete maaltijd:</b> ".$record["maaltijd"]."<br>";
                echo "<b>Favoriete Drinken:</b> ".$record["drinken"]."<br>";
                echo "<b>Favoriete muziek:</b> ".$record["muziek"]."<br>";
                echo "<b>Favoriete Club:</b> ".$record["favoclub"]."<br>";
                echo "<b>Positie:</b> ".$record["positie"]."<br>";
                echo "<b>Huidige Club:</b> ".$record["huidigeclub"]."<br>";
                echo "<b>Vorige clubs:</b> ".$record["vorigeclubs"]."<br>";
                echo "<b>Rugnummer:</b> ".$record["rugnummer"]."<br><br>";
                echo "<a href=index2.php><p><b>Terug</b></p></a>";
            }
        } else {
            echo "er is een foutje..";
            //als hij hier iets geeft is er iets fout met de query..
        }
        //voer een query uit waar je alle info over het desbetreffende id ophaalt 
    } else { 
        //wat volgt snap ik niet helemaal
        while ($record = mysql_fetch_array($resultaat)) { 
            echo "<a href=index2.php?id=". $record["id"].">".$record["naam"]."</a>";
        }


    ?> 
     
    Laatst bewerkt: 25 okt 2005
  19. Darkwing

    Darkwing Active Member

    Berichten:
    6.510
    Leuk Bevonden:
    25
    Dit kan natuurlijk sowieso niet, dit geeft geheid een foutmelding vanwege de dubbele aanhalingstekens.

    Als je het helemaal netjes wilt doen doe je het zo:

    PHP:
    echo "<strong>Geboortedatum:</strong>" $record['geboortedatum'] . "<br />\n";
    En dat uiteraard voor elke regel.


    //Edit: oh, en huige club en voruge club?!? Foei!
     
  20. Peanutnl

    Peanutnl Halo3

    Berichten:
    132
    Leuk Bevonden:
    0
    Darkwing je hebt helemaal gelijk..
    ik zet dit altijd ff over:
    $geboortedatum = $record["geboortedatum"];
    en dat vooral voor de duidelijkheid....
    ik zal het ook ff editten in dmijn vorige post

    edit: veranderd
     
    Laatst bewerkt: 25 okt 2005

Deel Deze Pagina