Database benaderen met php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Pauline Straaten

Pauline Straaten

03/01/2015 18:59:10
Quote Anchor link
Hey! Met phpmyadmin heb ik een datebase gemaakt, maar nu wil ik deze graag benaderen via php alleen weet ik niet hoe. Kan iemand mij hierbij helpen?
Pauline
 
PHP hulp

PHP hulp

22/11/2024 07:36:31
 
Frank Nietbelangrijk

Frank Nietbelangrijk

03/01/2015 19:07:23
Quote Anchor link
Hoi Pauline,

Ik zou hier een kijkje nemen:

http://www.phptuts.nl/view/41/1/
 
Pauline Straaten

Pauline Straaten

03/01/2015 19:21:14
Quote Anchor link
Oke dankjewel ik heb het gevonden, maar nu heb ik het probleem dat php mn tabelwel kan vinden maar mn database niet. Ik werk trouwens met de demo versie van phpmyadmin.

Toevoeging op 03/01/2015 19:48:21:

Maakt het btw uit in welke map je je database opslaat op je computer?
 
Pipo Clown

Pipo Clown

03/01/2015 21:07:38
Quote Anchor link
Dat is onmogelijk.

Wanneer de database niet gevonden kan worden kan de tabel ook niet gevonden worden. De tabel zit namelijk in de database.

PHPMyAdmin is freeware dus je kunt rustig de volledige en definitieve versie gebruiken. Ik wist trouwens niet eens dat er een demoversie van was. Heeft ook weinig nut bij freeware volgens mij.
 
Willem vp

Willem vp

04/01/2015 12:09:23
Quote Anchor link
Pauline Straaten op 03/01/2015 19:21:14:
Ik werk trouwens met de demo versie van phpmyadmin.

Bedoel je daarmee 'Try Demo' op phpmyadmin.net? Ik vrees dat je daar weinig aan hebt. Dat is echt alleen maar een demo-site om een beetje mee te spelen en het zou me niet verbazen als de inhoud regelmatig wordt weggegooid. (Sterker nog, het zou me verbazen als ze dat níet deden.)

Je vraag of het uitmaakt in welke map op je computer je de database opslaat doet me vermoeden dat je na het aanmaken van je database de Export-functie gebruikt om een backup te maken. Wat daaruit komt is echter niet iets dat bruikbaar is als database.

Om echt aan de gang te kunnen, zou je een hosting-abonnement moeten hebben waarmee je databases kunt gebruiken. Je hoeft je dan ook niet af te vragen waar je de databases moet opslaan, want alle data staat dan bij je webhoster.
Gewijzigd op 04/01/2015 12:11:56 door Willem vp
 
Pipo Clown

Pipo Clown

04/01/2015 12:52:37
Quote Anchor link
Als beginner zijnde zou ik niet meteen alles bij een host onderbrengen maar zou ik eerst XAMPP eens installeren op mijn eigen PC zodat ik kosteloos en eindeloos kan experimenteren met MySQL en PHP (en phpMyAdmin).
 
Pauline Straaten

Pauline Straaten

04/01/2015 13:26:22
Quote Anchor link
Heel erg bedankt voor deze reacties, ik heb nu de volledige versie van phpmyadmin en heb een database gemaakt. Deze heb ik nu wel gevonden want er is een map aangemaakt met de naam van deze database. Hoe verwijs ik nu mn localhost naar deze database?
 
- Ariën  -
Beheerder

- Ariën -

04/01/2015 14:06:48
Quote Anchor link
Kijk eens naar http://php.net/mysqli_connect.

En lees ook de genoemde tutorial van phptuts.nl.
Met de aangemaakte map hoef je niks te doen. De database kan je beheren via phpmyadmin.
Gewijzigd op 04/01/2015 14:08:58 door - Ariën -
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/01/2015 16:36:39
Quote Anchor link
Probeer deze code eens met je juiste gebruikersnaam, wachtwoord (het wachtwoord mag ook leeg zijn) en database naam. Dit voorbeeld geeft namelijk netjes een foutmelding indien je de verkeerde gegevens opgeeft.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$link
= mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');

if (!$link) {
    die('Connect Error (' . mysqli_connect_errno() . ') '
            . mysqli_connect_error());
}


echo 'Success... ' . mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>
 
Iris B

Iris B

05/01/2015 14:07:08
Quote Anchor link
Hoi Pauline,

Zelf ben ik bezig met een kleine website om mijn basiskennis van php te oefenen.
Ik kan je aanraden om je ook eens te verdiepen het gebruik van PDO en 'prepared statements' om met je database te werken.
Deze uitleg vond ik zelf heel handig: http://code.tutsplus.com/tutorials/why-you-should-be-using-phps-pdo-for-database-access--net-12059
 
Pauline Straaten

Pauline Straaten

05/01/2015 19:47:23
Quote Anchor link
Heel erg bedankt iedereen. Het is mij inmiddels gelukt om de database te benaderen vanuit php. Het lukt mij ook om een nieuw record toe te voegen of te verwijderen, alleen bij het wijzigen gaat er iets mis. Ik kan namelijk een oud record wijzigen, dit wordt ook weergeven, maar als ik dit record wijzig dan vallen de karakters in ieder veld na de eerste spatie weg. Hoe los ik dit op?
 
- Ariën  -
Beheerder

- Ariën -

05/01/2015 19:51:17
Quote Anchor link
Kan je precies uitleggen wat je doet, en wat je aan PHP-code nu hebt?
 
Pauline Straaten

Pauline Straaten

05/01/2015 19:58:58
Quote Anchor link
Dit is mijn php code tot nu toe en mijn probleem is dat als ik in het geval van mijn opdracht een boek wil wijzigen,bijvoorbeeld 'Noodlot' ipv 'Nooit meer slapen', dan wordt deze wijziging wel weergeven in de database, maar wordt in mijn invul balkje alleen 'Nooit' weergeven. Dus de rest wordt afgebroken.

!DOCTYPE html>
<html lang="nl">
<head>
<meta charset="utf-8">
<title>Gegevens wijzigen</title>
</head>
<body>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
      // Maken van verbinding
      try {
        $db = new PDO('mysql:host=localhost;dbname=Boekenlijst3', 'root','');
      }

      catch(PDOException $e) {
        echo $e->getMessage();
      }


      // De SQL opdracht
      // Hier wordt het boek geselecteerd om de gegevens op
      // te halen die je wilt wijzigen. Het veld boeknummer zit
      // in $_POST[verstopt]

      $sql = "SELECT * FROM Boeken3 WHERE BoekNummer = $_POST[verstopt]";
      $resultaat = $db->query($sql);
      
          // De gegevens worden in variabelen gestopt zodat
      // we ze in het formulier kunnen zien

      
      foreach($resultaat as $row) {
        $BoekNummer = $row['BoekNummer'];
        $Auteur = $row['Auteur'];
        $Titel = $row['Titel'];
        $PlaatsNaam = $row['PlaatsNaam'];
        $Jaar = $row['Jaar'];
        $AantalPunten  = $row['AantalPunten'];
        $NaamLeerling  = $row['NaamLeerling'];
      }

      
      // Sluiten van verbinding
      $db = NULL;

      echo "<form action='wijzigdefinitief.php' method='post'>
        <p>Boeknummer: <br>
        <input name='BoekNummer' type='text' size='30' value=$BoekNummer tabindex='1'>
        </p>
        <p>Auteur: <br>
        <input name='Auteur' type='text' size='30' value=$Auteur tabindex='2'>
        </p>
        <p>Titel: <br>
        <input name='Titel' type='text' size='30' value=$Titel tabindex='3'>
        </p>
        <p>Plaatsnaam: <br>
        <input name='PlaatsNaam' type='text' size='30' value=$PlaatsNaam tabindex='4'>
        </p>
        <p>Jaar: <br>
        <input name='Jaar' type='text' size='30' value=$Jaar tabindex='5'>
        </p>
        <p>Aantal punten: <br>
        <input name='AantalPunten' type='text' size='30' value=$AantalPunten tabindex='6'>
        </p>
        <p>Naam: <br>
        <input name='NaamLeerling' type='text' size='30' value=$NaamLeerling tabindex='7'>
        </p>
        
        <p><input type='submit' name='submit' ??
          value='Opslaan gegevens' title='Verstuur dit formulier' tabindex='8'>
        </p>
        </form>"

    ?>

</body>
</html>
 
- Ariën  -
Beheerder

- Ariën -

05/01/2015 20:03:24
Quote Anchor link
Hoe wijzig je de gegevens dan, met welke code?
En welk type heeft het veld in de database dan?
 
Pauline Straaten

Pauline Straaten

05/01/2015 20:05:44
Quote Anchor link
Het veld type is VARCHAR.
hier wijzigen de gegevens.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
      // Maken van verbinding
      try {
        $db = new PDO('mysql:host=localhost;dbname=Boekenlijst3', 'root','');
      }

      catch(PDOException $e) {
        echo $e->getMessage();
      }


      // De update opdracht
      $sql = "UPDATE Boeken3
        SET BoekNummer = '$_POST[BoekNummer]', Auteur = '$_POST[Auteur]', Titel = '$_POST[Titel]', PlaatsNaam = '$_POST[PlaatsNaam]', Jaar = '$_POST[Jaar]', AantalPunten = '$_POST[AantalPunten]', NaamLeerling = '$_POST[NaamLeerling]' WHERE BoekNummer = $_POST[BoekNummer]"
;
      $aantalregelsgewijzigd = $db->exec($sql);
      
      // Het wijziging bekijken
      $sql = "SELECT * FROM Boeken3
        WHERE BoekNummer = $_POST[BoekNummer]"
;
      $resultaat = $db->query($sql);

      foreach($resultaat as $row) {
        echo '<p>';
        echo 'BoekNummer: '.$row['BoekNummer'].'<br>';
        echo 'Auteur: '.$row['Auteur'].'<br>';
        echo 'Titel: '.$row['Titel'].'<br>';
        echo 'Plaatsnaam: '.$row['PlaatsNaam'].'<br>';
        echo 'Jaar: '.$row['Jaar'].'<br>';
        echo 'AantalPunten: '.$row['AantalPunten'].'<br>';
        echo 'Naam leerling: '.$row['NaamLeerling'].'<br>';
        echo '</p>';
      }

      echo "<p>is nu gewijzigd!</p>";
      echo "<p><form action='bekijken.php' method='post'>
        <input type='submit' name='submit' value='Terug'>
        </form></p>"
;
      
      $db = NULL;
     ?>
Gewijzigd op 05/01/2015 20:10:14 door Pauline Straaten
 
- Ariën  -
Beheerder

- Ariën -

05/01/2015 20:25:02
Quote Anchor link
Gebeurt het altijd bij een spatie, of ligt het aan lengte? Het kan zijn dat de waarde van VARCHAR te klein is?

Verder raad ik aan om variabelen buiten quotes te halen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$sql
= "UPDATE Boeken3
        SET BoekNummer = '"
.$_POST['BoekNummer']."', Auteur = '".$_POST['Auteur']."' WHERE BoekNummer = '".$_POST['BoekNummer']'";
?>
Gewijzigd op 05/01/2015 20:26:30 door - Ariën -
 
Willem vp

Willem vp

05/01/2015 20:25:12
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input name='Titel' type='text' size='30' value=$Titel tabindex='3'>

$Titel staat hier niet tussen '' en dan wordt alleen het eerste woord verwerkt. De overige woorden zullen door de validator worden gezien als invalid properties of iets dergelijks.

Ook bij de andere input-velden komt dit overigens voor.
Gewijzigd op 05/01/2015 20:30:40 door Willem vp
 
Pauline Straaten

Pauline Straaten

05/01/2015 20:36:32
Quote Anchor link
Jaa het is gelukt! Het waren de " die ik inderdaad vergeten was. Super bedankt iedereen!
 

05/01/2015 21:51:39
Quote Anchor link
Vrouwelijke developer +1
 
Kevin J

Kevin J

06/01/2015 06:54:31
Quote Anchor link
Rickert sjansbeer :P

Maar even on topic, is nu voor de rest alles duidelijk?
 
Pauline Straaten

Pauline Straaten

06/01/2015 08:17:19
Quote Anchor link
Haha Jaa tot nu toe is alles duidelijk, deze opdracht moet ik woensdag inleveren dus ik ga er vandaag ook nog aan werken, dus misschien dat ik nog wat vragen krijg maar voor nu lijkt het erop dat alles werkt!????
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.