Sinds ik mijn website naar een andere hoster heb verplaatst, haalt mijn website geen gegevens meer uit de database. Ik gebruik onderstaand script, en krijg op mijn telkens de Bedrijfsomschrijving volgt z.s.m. Wellicht ziet iemand waar het foutje zit?
<?php
$q = $_GET["bedrijf_ID"];
require('mysql.php');
$sql = 'select * from bedrijf where bedrijf_ID =' . $bedrijf;
$result = mysql_fetch_array(mysql_query($sql));
if ($result['bedrijf_omschrijving'] == '')
{
echo 'Bedrijfsomschrijving volgt z.s.m.';
}
else
{
echo $result['bedrijf_omschrijving'] . "\n";
}
- Foutje in het script, hulp nodig
-
18-01-2010, 13:13 #1
- Berichten
- 26
- Lid sinds
- 15 Jaar
Foutje in het script, hulp nodig
-
-
18-01-2010, 13:16 #2
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Heb je de database ook overgezet? Werkt de MySQL verbinding? Juiste gebruikersnaam/wachtwoord en database?
-
18-01-2010, 13:17 #3
- Berichten
- 26
- Lid sinds
- 15 Jaar
-
18-01-2010, 13:20 #4
- Berichten
- 45
- Lid sinds
- 15 Jaar
Zo te zien roep je de pagina aan met page.php?bedrijf_id=123
De waarde 123 stop je vervolgens in de var $q
Maar in de query gebruik je de var $bedrijf, die waarschijnlijk leeg is
nb: google eens naar Php Sql Injection
gr,
erwin
-
18-01-2010, 13:20 #5
- Berichten
- 51
- Lid sinds
- 16 Jaar
waar komt de variabele $bedrijf vandaan?..
-
18-01-2010, 13:21 #6
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Nouja, het script heeft inderdaad wel wat gebreken.. Wat krijg je als je dit doet:
<?php
$q = $_GET["bedrijf_ID"];
require('mysql.php');
$sql = 'select * from bedrijf where bedrijf_ID =' . $q;
$res = mysql_query($sql);
if(!is_resource($res))
{
echo 'MySQL Query mislukt: '.mysql_error();
}
else
{
if(mysql_num_rows($res))
{
$list = mysql_fetch_assoc($res);
echo $list['bedrijf_omschrijving'];
}
else
{
echo 'MySQL gaf een lege resultaat. Weet je zeker dat dit ID klopt?';
}
}
-
18-01-2010, 13:22 #7
- Berichten
- 26
- Lid sinds
- 15 Jaar
bedrijf is de tabel waarin de gegevens staan
Aanvullend bericht:
Nouja, het script heeft inderdaad wel wat gebreken.. Wat krijg je als je dit doet:
<?php
$q = $_GET["bedrijf_ID"];
require('mysql.php');
$sql = 'select * from bedrijf where bedrijf_ID =' . $q;
$res = mysql_query($sql);
if(!is_resource($res))
{
echo 'MySQL Query mislukt: '.mysql_error();
}
else
{
if(mysql_num_rows($res))
{
$list = mysql_fetch_assoc($res);
echo $list['bedrijf_omschrijving'];
}
else
{
echo 'MySQL gaf een lege resultaat. Weet je zeker dat dit ID klopt?';
}
}Laatst aangepast door Bram Marktman : 18-01-2010 om 13:26 Reden: Automatisch samengevoegd.
-
18-01-2010, 13:32 #8
- Berichten
- 330
- Lid sinds
- 18 Jaar
Waar heb je je verbinding met de database staan? Want volgens mij wordt er geen verbinding tot stand gebracht met de database. Indien dit wel het geval is; voeg een een "or die(mysql_error());" toe aan je connectie.
-
18-01-2010, 13:37 #9
- Berichten
- 2.392
- Lid sinds
- 17 Jaar
Arjen, geen "or die" gebruiken. Dat is echt not done.
@Bram: Je hebt dus geen verbinding met MySQL :-)
-
18-01-2010, 13:37 #10
- Berichten
- 1.263
- Lid sinds
- 16 Jaar
PHP Code:<?
require('mysql.php');
$sql = mysql_query("SELECT * FROM bedrijf WHERE bedrijf_ID = '". mysql_real_escape_string("". $_GET['bedrijf_ID'] ."") ."'") or die(mysql_error());
$result = mysql_fetch_array($sql);
if ($result['bedrijf_omschrijving'] == '')
{
echo 'Bedrijfsomschrijving volgt z.s.m.';
}
else
{
echo $result['bedrijf_omschrijving'] . "\n";
}
?>
-
18-01-2010, 13:44 #11
- Berichten
- 330
- Lid sinds
- 18 Jaar
Hoezo is dat "not done"? Bij vele websites die grotendeels de data uit de database halen vind ik het persoonlijk beter om de uitvoer van het script te stoppen als er geen verbinding met de database gemaakt kan worden. Anders wordt hetgeen wat verder wordt weergegeven vaak een zooi (vele errors).
-
18-01-2010, 14:09 #12
- Berichten
- 51
- Lid sinds
- 16 Jaar
Hoezo is dat "not done"? Bij vele websites die grotendeels de data uit de database halen vind ik het persoonlijk beter om de uitvoer van het script te stoppen als er geen verbinding met de database gemaakt kan worden. Anders wordt hetgeen wat verder wordt weergegeven vaak een zooi (vele errors).
Verder als je door een query fout meer dan 1 fout te zien krijgt op een pagina dan is dat niet omdat er geen die wordt gebruikt, maar omdat het script gewoon slordig is gemaakt..
(Als er dus geen verbinding met de db gemaakt kan worden, dan weet je dat al bij de eerste melding hierover, op dat moment kun je er ook voor zorgen dat je een nette pagina met een nette foutmelding weergeeft.. Iets wat je niet doet met die)..
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic