Ophalen uit database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Henk Woeltjes

Henk Woeltjes

27/08/2014 20:02:10
Quote Anchor link
Ik heb in phpMyAdmin een database aangemaakt met de naam global, daarin twee tabellen aangemaakt waaronder een met de naam countrymet daarin een kolom met de naam continent en een met de naam countrynamemet namen van continenten en namen van landen.
De tweede tabel heeft de naam city met daarin een kolom met de naam countryID en cityname, deze gevuld met nummers en plaatsnamen.

Als ik deze met SELECT wil oproepen in php (zie hieronder)krijg ik steeds dezelfde foutmelding nl. De sql-query is niet uitgevoerd, het script wordt afgebroken.

Volgens mij moet ik alles toch goed gedaan hebben. Of zit ik weer helemaal fout?

<html>
<head><title>PHP met MySQL</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
<?php
$host
="localhost";
$gebruiker="root";
$wachtwoord="";
error_reporting(0);
$verbinding=mysql_connect($host,$gebruiker,$wachtwoord);
if (!$verbinding) die ("<br>Kan geen verbinding maken met de database,
het script wordt afgebroken"
);

$dbnaam="global";
$sql="SELECT * city";
$result = mysql_db_query($dbnaam,$sql,$verbinding)
or die ("De sql-query is niet uitgevoerd, het script wordt afgebroken");
mysql_close($verbinding);
?>

</body></html>
 
PHP hulp

PHP hulp

26/04/2024 18:24:55
 
Frank Nietbelangrijk

Frank Nietbelangrijk

27/08/2014 20:18:25
Quote Anchor link
je vergeet een database te selecteren. mysql_select_db( db_name, connection );
 
Henk Woeltjes

Henk Woeltjes

27/08/2014 20:30:06
Quote Anchor link
Dankjewel Frank voor je snelle reactie.
Maar over dat selecteren van de Database......

Dat doe ik toch met dit gedeelte hieronder? Hierin geef ik eerste aan dat $dbnaam = "global" vervolgens komt dat weer terug in $result:

$dbnaam="global";
$sql="SELECT * city";
$result = mysql_db_query($dbnaam,$sql,$verbinding)
 
- Ariën  -
Beheerder

- Ariën -

27/08/2014 20:39:12
Quote Anchor link
Je zult dan wel de database eerst aan moeten geven met mysql_select_db();

Verder raad ik aan om de PHP-functies van MySQLi te gebruiken i.p.v. die van MySQL.
Gewijzigd op 27/08/2014 20:40:22 door - Ariën -
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

27/08/2014 20:43:49
Quote Anchor link
SELECT * city
Ik mis hier iets vrij essentieels.
 
Henk Woeltjes

Henk Woeltjes

27/08/2014 21:22:36
Quote Anchor link
Wat mis je dan Ger, ik ben heel benieuwd.
 
- SanThe -

- SanThe -

27/08/2014 21:27:53
Quote Anchor link
FROM ... (WHERE)
 
Henk Woeltjes

Henk Woeltjes

27/08/2014 21:39:09
Quote Anchor link
Ik heb FROM en WHERE toegepast en krijg nu geen foutmelding meer maar een leeg scherm. Dan lijkt het erop dat de tabel 'city' leeg is. Maar als ik in phpMyAdmin selecteer krijg ik keurig het lijstje op het scherm. Waarom dan niet via dit PHP script?
 
- Ariën  -
Beheerder

- Ariën -

27/08/2014 21:41:33
Quote Anchor link
Wat verwacht je eigenlijk te zien dan?
Na het succesvol uitvoeren van je connectie en je query doe je niks meer in je script...
Gewijzigd op 27/08/2014 21:41:49 door - Ariën -
 
Henk Woeltjes

Henk Woeltjes

27/08/2014 21:45:07
Quote Anchor link
Je hebt gelijk. Ik heb een gedeelte laten vallen om de fout van de verbinding eerst te achterhalen. Ga morgen weer verder. Jullie horen nog van me. Tot zover weer bedankt.
 
- Ariën  -
Beheerder

- Ariën -

27/08/2014 21:52:54
Quote Anchor link
je zult de query nog moeten fetchen met mysql_fetch_assoc(), en vervolgens de juiste velden kiezen die je wilt tonen.
Naar gelang kan je ook met while() alle data in een loop laten tonen.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

27/08/2014 22:38:12
Quote Anchor link
Henk: je hebt een database-server, een database en een tabel.
Of je hebt van (enkele) bovengenoemde drie meer dan één.

Daarom dien je altijd met de juiste server te verbinden en in je queries aan te geven om welke database + tabel het gaat.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
select * from my_database.my_table


omdat er echter vaak binnen één database gewerkt wordt kun je met mysql_select_db() aangeven welke database standaard geselecteerd is. Geef je dan dus geen database naam op pakt ie de als standaard ingestelde.

Na het selecteren van de database kun je dan de query inkorten tot:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
select * from my_table
Gewijzigd op 27/08/2014 22:52:01 door Frank Nietbelangrijk
 
Ivo P

Ivo P

28/08/2014 10:58:02
Quote Anchor link
http://php.net/mysql_db_query

die functie is pas sinds php 4.06 deprecated....
 
- Ariën  -
Beheerder

- Ariën -

28/08/2014 11:01:23
Quote Anchor link
Maar pas in PHP 5.3 heeft het de 'deprecated'-label meegekregen.....

Quote:
This function has been DEPRECATED as of PHP 5.3.0.
Gewijzigd op 28/08/2014 11:01:40 door - Ariën -
 
Ivo P

Ivo P

28/08/2014 11:40:25
Quote Anchor link
iets lager:
Quote:
4.0.6 This function is deprecated, do not use this function. Use mysql_select_db() and mysql_query() instead.


maar pas sinds 5.3:
Quote:
5.3.0 This function now throws an E_DEPRECATED notice.


Maar dat komt omdat de error_level E_DEPRECATED pas in 5.3 geïntroduceerd is.
http://php.net/manual/en/migration53.deprecated.php
 



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.