Thread: php: mysql_query() error
-
31-10-2004, 12:41 #31
sorry, weer dezelfde fout..
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/psa/home/vhosts/pagedesign.be/httpdocs/xpages/forum2.php on line 33
probeer het eens uit...
en idd je normaal zou ik de eerste 2 regels in een include bestandje moeten zetten, maar aangezien dit een kleine testversie is, vond ik het makkelijker om eventuele fouten te verbeteren... later als ik mijn echt forum maak moet ik dat wel doen... idd
Je maakt ook drastische veranderingen.
zoals echo '...' waar zijn de haakjes??
en
ik dacht dat het alleen zo moets en niet andersPHP Code:mysql_connect('localhost', 'user', 'pass');
mysql_select_db('leden');
maar blijkbaar gaat dit ook en is het overzichtelijkerPHP Code:$db = mysql_connect('localhost', 'user', 'pass');
mysql_select_db('leden', $db);
maar dezelfde fout blijft staan, kan het dan aan de brower liggen of zo? een tijdje geleden zag ik hier een forum met meetme.be of zo en die hadden blijkbaar dezeflde foutmelding en het lag aan de browser IE.
zou dat in dit geval ook kunnen zijn?
dat kan wel maar als er niets gepost is dan ga krijg je toch een link dat je terug moet gaan om wel iets te posten dus mijn $ result is toch altijd gevuld?
alléé of ik snap het niet echtLast edited by killer bel; 31-10-2004 at 12:48.
no votes
-
-
31-10-2004, 12:49 #32Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Geen idee ivm die browser, maar even op je andere vragen antwoorden:
- waarom geen haakjes bij een echo?
Simpelweg omdat echo eigenlijk geen functie is (maar een language construct), en enkel bij functies gebruikt men haakjes. Waarom men het dan toch toelaat? Sja, om de taal zo toegankelijk mogelijk te houden zeker. Meer erover hier: http://be2.php.net/echo
- Waarom mag je mysql_connect gewoon schrijven zonder die exdtra variabele?
Ook dat staat in de manual uitgelegd. Mysql_connect geeft een link identifier terug, deze vang jij op in een variabele en geeft die mee aan mysql_select_db. Echter, dit staat in de manual bij mysql_select_db: "Als er geen link identifier wordt gegeven, wordt de laatst geopende link aangenomen." En aangezien ik veronderstel dat je maar 1 connectie gaat gebruiken, is het overbodig om dit telkens mee te geven.
Enneeuh, waarom het nu nog steeds niet werkt zie ik niet onmiddelijk. Heb je de laatste versie van mijn code gebruikt, want heb het ondertussen paar keer aangepast
no votes
-
31-10-2004, 12:51 #33Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Ja, dat zinnetje wordt inderdaad wel afgedrukt, maar daarom stopt het script nog niet met lopen hé. PHP gaat gewoon verder kijken wat hij nog allemaal moet uitvoeren en dan komt hij automatisch bij die afbeelding van de tabel uit, terwijl de gegevens niet werden opgehaald ==> fout, want $result is leeg op dat moment.dat kan wel maar als er niets gepost is dan ga krijg je toch een link dat je terug moet gaan om wel iets te posten dus mijn $ result is toch altijd gevuld?
alléé of ik snap het niet echt
Als je het formulier post zou er echter niks verkeerd mogen gaan, maar gebruik es mijn laatste code.
Probeer het zelf eens uit:
http://xpages.pagedesign.be/forum2.phpno votes
-
31-10-2004, 13:00 #34Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Kijk, als ge die error blijft krijgen, kunt ge dan ook es nagaan of ge wel de juiste benamingen gebruik voor uw velden en tabelnamen enzo?
no votes
-
31-10-2004, 13:02 #35
aah bedankt! dat maakt alles veel duidelijker en overzichtelijker
nu zou dit kunnen helpen dat php wel stopt met lezen?
exit ();
dus zo
edit:// en je nieuwere versie werkt evenminPHP Code:if (empty($_POST))
{
echo 'Ga terug <a href="forum.php">terug</a>';
exit();
}
Last edited by killer bel; 31-10-2004 at 13:07.
no votes
-
31-10-2004, 13:07 #36
ja, mijn tabelnamen enz klopt, want ik kan perfect in myadmin zien wat ik er al ingestoken heb.
zo heb jij denk ik als naam Test en als bericht: hallo ingevoerd.
alleen het schrijven naar een andere pagina loopt volledig misno votes
-
31-10-2004, 13:09 #37Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
AAAAAAAAAAAAAAAAAAAAAAAAH FUCK FUCK FUCK
Ik besef plots hoe fucking dom wij hier bezig zijn
Ge doet een INSERT op uw database hé... wel da's niet hetzelfde als gegevens ophalen hé!
Om gegevens op te halen en daarna af te beelden moet ge een SELECT doen, niet moeilijk da ge altijd fouten krijgt.
Iedereen mag mij nu uitlachen :'( :'( :'( :'(
Valt het op da'k al héél lang niet meer met databases en PHP gewerkt heb
Last edited by DarkBone; 31-10-2004 at 13:11.
no votes
-
31-10-2004, 13:10 #38Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Best geen exit() gebruiken, want echt alle uitvoer wordt dan gestopt, dus ook de uitvoer van eventuele html naar je browser die erna nog zou moeten komen.
Ge moet het gewoon afdwingen via de haakjes zoals in mijn versie. Da's ook het meest logische.no votes
-
31-10-2004, 13:20 #39no votes
-
31-10-2004, 13:27 #40nu werkt iePHP Code:
<?php
// Connectie maken met de database
// Deze gegevens (host, username, password) zet je beter in een configuratiebestand
// De connectie met de database maak je dan bijvoorbeeld in je header of een ander bestand
// beide moet je dan includen op iedere pagina waar je het nodig hebt
mysql_connect('localhost', 'user', 'pass');
mysql_select_db('leden');
if (empty($_POST))
{
echo 'Ga terug <a href="forum.php">terug</a>';
}
else
{
$query .= "INSERT INTO forum (naam, bericht) ";
$query .= "VALUES ('";
$query .= $_POST['naam'] . "','";
$query .= $_POST['bericht'] . "');";
$result = mysql_query($query) or die (mysql_error());
}
$query = "SELECT * FROM forum";
$result = mysql_query($query) or die (mysql_error());
echo '<table width="300" border="5">';
while ($rij = mysql_fetch_array($result)){
echo '<tr><td>' . $rij['naam'] . '</td></tr>';
echo '<tr><td>' . $rij['bericht'] . '</td></tr>';
}
echo '</table>';
?>
toch bedankt voor die informatie die je me gaf
Last edited by killer bel; 31-10-2004 at 13:36.
no votes
-
31-10-2004, 13:45 #41
ik begin me onderhand te schamen voor al mijn prob met php
met mijn script zeg ik dat als je op de één of andere manier toch op forum2.php bent gekomen zonder eerst langs forum.php te gaan dat ik terug moet gaan met een link naar forum.php
nu als ik toch op forum.php ben en zonder iets in te vullen toch op submit druk was mijn bedoeling dat je die link ook zou krijgen...maar dat is dus niet ik krijg dus gewoon een leeg vakje.
hoe doe ik nu dat als iemand bv niets invuld die link toch te zien zal krijgen?no votes
-
31-10-2004, 13:49 #42Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
Logisch toch? Gewoon kijken of ze leeg zijn of niet. De || is een OR.PHP Code:if (!isset($_POST) || $_POST['naam'] == '' || $_POST['bericht'] == '')
{
echo 'Ga terug';
}
no votes
-
31-10-2004, 13:53 #43
eerlijk gezegd voor mij is het niet logisch.
alles behalve isset en || (kan je de volledige naam geven?) snap ik alles wel
kan je mss een beetje uitleg geven wat isset doet?no votes
-
31-10-2004, 14:01 #44Member
- Registered
- 18/11/02
- Location
- Eke, België
- Posts
- 2,448
- iTrader
- 0
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
isset controleert of een variabele bestaat
http://be2.php.net/isset
|| spreek je uit als 'or', dat wil zeggen als 1 van de twee (of meer) expressies waar is, dan wordt het uitgevoerd
http://www.php.net/manual/nl/languag...rs.logical.php
Zo'n dingen als isset kunt ge heel makkelijk terugvinden in de officiële referentie hé. Gewoon www.php.net/ typen met hetgeen ge zoekt erachter. Zo dus bijvoorbeeld: http://www.php.net/mysql_connect
Ik zeg nu nie da ge rap die ||ging gevonden hebben, want dan moet ge al weten dat zoiets een operator heet, meerbepaald een logische operator. Daarom dat ge beter eerst de basis goed leert kennen door de eerste twee hoofdstukken van de manual door te nemen:
http://www.php.net/manual/nl/
De uitroepteken die ge ziet staan zorgt voor een negatie, dus als hetgeen erachter staat waar is, dan zal het onwaar worden omdat je er een uitroepteken voor gezet hebt.no votes
-
31-10-2004, 14:23 #45
aah ja ok, ik snap het. dus je eigelijk kan je er bv ook dit van maken.
ofPHP Code:if ($_POST['bericht'] == ' ')
{
echo 'Ga terug';
}
maar dan kan je 1 van de twee leeg laten dus is jouw methode beterPHP Code:if ($_POST['naam'] == ' ')
{
echo 'Ga terug';
}
weer eens wat bijgeleerd
thanks
Last edited by killer bel; 31-10-2004 at 14:24.
no votes

