ziet ID als boolean

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jonathan Jonker

Jonathan Jonker

20/06/2012 15:15:10
Quote Anchor link
ik krijg deze foutmelding : mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\bestellingen.php on line 49

het gaat om dit stuk:
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
<?php
$connect
= mysql_connect("localhost","root","") or die ("Kan niet verbinden: ". mysql_error());
                  mysql_select_db("phplogin");

$sql = "SELECT * FROM bestellingen ORDER BY id";
$resultaat = mysql_query($sql);


if (mysql_num_rows($resultaat) >0) {
          echo "<table border=1>";
          echo "<tr><td><b>Aantal</b></td><td><b>Product</b></td><td><b>ID gebruiker</b></td><td><b>datum</b></td></tr>";

            while ($rij = mysql_fetch_array($resultaat)) {
            echo "<tr>";
            $artikelid = $rij["id artikel"];
            $selectproduct = "SELECT * FROM artikelen WHERE id='$artikelid'";
            $resultaatproduct = mysql_query ($selectproduct);
            $productding = mysql_fetch_array($resultaatproduct);
            echo "<td>".$rij["aantal"]."</td>";
            echo "<td>".$productding["naam"]."</td>";
            echo "<td>".$rij["id users"]."</td>";
            echo "<td>".$rij["date"]."</td>";
            echo "</tr>";
            }

            echo "</table>";
}


?>


Toevoeging op 20/06/2012 15:16:14:

Ik wil gewoon graag dat ik de naam van het artikel kan ophalen uit een andere tabel in dezelfde database. Ik weet niet hoe een JOIN werkt dus ik doe het als het kan liever met SELECT

Toevoeging op 20/06/2012 15:18:23:

Alles werkt dus gewoon, alleen krijg ik die foutmelding en als ik gewoon
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo "<td>".$rij ["id artikel"]."</td>"; ?>
<gebruik dan krijg ik wel het artikel id maar het is veel handiger als ik gewoon de artikelnaam krijg. het gaat om een kleine webshop met relatief weinig producten
Gewijzigd op 20/06/2012 15:20:07 door Jonathan Jonker
 
PHP hulp

PHP hulp

22/12/2024 16:57:47
 
Gerhard l

gerhard l

20/06/2012 15:19:23
Quote Anchor link
Volgens mij verkeerd gelezen maar dit is ook van toepassing:

mysql_num_rows verwacht dat je iets anders meegeeft, oftewel je query gaat fout. Pas goede foutafhandeling en vang de error op met: mysql_error();
Gewijzigd op 20/06/2012 15:21:06 door gerhard l
 
Jonathan Jonker

Jonathan Jonker

20/06/2012 15:21:21
Quote Anchor link
Ik heb een hele tijd gewerkt zonder foutafhandeling en aangezien dit het laatste punt is wat ik moet doen voordat ik de webshop voor klaar verklaar. Daarom vind ik het te veel werk om een hele foutafhandeling te maken voor dit laaste probleem
 
- SanThe -

- SanThe -

20/06/2012 15:23:56
Quote Anchor link
Jonathan Jonker op 20/06/2012 15:21:21:
Daarom vind ik het te veel werk om een hele foutafhandeling te maken voor dit laaste probleem


Tja, dan kun je misschien beter een glazen bol aanschaffen.
 
Obelix Idefix

Obelix Idefix

20/06/2012 15:23:57
Quote Anchor link
Jonathan Jonker op 20/06/2012 15:15:10:
Toevoeging op 20/06/2012 15:16:14:
Ik wil gewoon graag dat ik de naam van het artikel kan ophalen uit een andere tabel in dezelfde database. Ik weet niet hoe een JOIN werkt dus ik doe het als het kan liever met SELECT
Toevoeging op 20/06/2012 15:18:23:

Misschien dan eens verdiepen in join. Maakt het veel makkelijker voor je.

Verder:
Je controleert nergens of er verbinding is met je tabel.
Gebruik geen * maar benoem het veld/de velden die je wilt opvragen.
Query mist foutafhandeling.
php (echo) --> gebruik '. " is voor HTML.
Waarom mysql_fetch_array en geen mysql_fetch_assoc?
Heb je in je veldnamen echt spaties staan? Lijkt me niet wenselijk.
Variabele buiten quotes (id='$artikelid'";)
 
Jonathan Jonker

Jonathan Jonker

20/06/2012 15:26:21
Quote Anchor link
Bedankt Obelix en Idefix.
andere mensjes, je kunt wel zeggen dat ik alles heb fout gedaan tot nu toe maar dat vraag ik niet, ik heb gewoon hulp met dit probleem nodig en als je alleen kunt zeggen dat ik het fout heb gedaan dat hoeft niet, dat wist ik al...
 
Wouter J

Wouter J

20/06/2012 15:30:43
Quote Anchor link
Jonathan, het werkt ong. zo: Iedereen heeft fouten in zijn script, foutloos scripten kan niet. Omdat je dat al weet begin je met het bouwen van foutafhandeling en dan pas je script. Wanneer je een fout hebt kun je doormiddel van je goede foutafhandeling snel de fout vinden.

Als je geen foutafhandeling hebt en je hebt een fout, zoals nu, ben je een eeuwigheid bezig de fout op te lossen. Het is gewoon onbegonnen werk.

Dus: Gooi dit script weg en begin met de foutafhandeling en daarna het script. Of: Steek even wat meer moeite in je script en bouw nu een perfecte foutafhandeling in (moeilijker dan keuze 1). Of: Blijf een eeuwigheid zoeken naar de fout, die je toch nooit zal vinden (onmogelijke optie).

Succes!

Als tip, kijk eens naar: SQL boilerplate :: MySQL Daarin leg ik uit, in een code voorbeeld, wat ik de beste foutafhandeling voor een project vind.
 
Obelix Idefix

Obelix Idefix

20/06/2012 15:33:45
Quote Anchor link
Jonathan Jonker op 20/06/2012 15:26:21:
Bedankt Obelix en Idefix.
andere mensjes, je kunt wel zeggen dat ik alles heb fout gedaan tot nu toe maar dat vraag ik niet, ik heb gewoon hulp met dit probleem nodig en als je alleen kunt zeggen dat ik het fout heb gedaan dat hoeft niet, dat wist ik al...


We proberen je te helpen, maar daar stel je alleen prijs op met een kant en klare oplossing. Die luidt foutafhandeling inbouwen, maar dat wil je niet.
Wat je ook kunt doen, om het jezelf makkelijker te maken, is naar join kijken. Maar daar wil je je niet in verdiepen. Tsja.
 
Jeroen VD

Jeroen VD

20/06/2012 15:35:04
Quote Anchor link
Quote:
Bedankt Obelix en Idefix.
andere mensjes, je kunt wel zeggen dat ik alles heb fout gedaan

obelix zegt iets meer dan de rest, maar die 'andere mensjes' hebben zeker zoveel nuttige tips gegeven (namelijk foutafhandeling, belangrijkste deel van je script). obelix zegt het nogmaals (met nog meer 'gezeik', overigens), dus waarom deze reactie?
 
Lex van der poel

lex van der poel

20/06/2012 15:36:23
Quote Anchor link
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
<?php
$connect
= mysql_connect("localhost","root","") or die ("Kan niet verbinden: ". mysql_error());
mysql_select_db("phplogin");
$resultaat = mysql_query("SELECT a.`aantal`, b.`naam`, a.`id users`, a.`date` FROM bestellingen a, artikelen b WHERE b.id=a.id ORDER BY a.id");
if (mysql_num_rows($resultaat) >0) {
    echo "<table border=1>";
    echo "<tr><td><b>Aantal</b></td><td><b>Product</b></td><td><b>ID gebruiker</b></td><td><b>datum</b></td></tr>";
    while ($rij = mysql_fetch_array($resultaat)) {
        echo "<tr>";
        echo "<td>".$rij["aantal"]."</td>";
        echo "<td>".$rij["naam"]."</td>";
        echo "<td>".$rij["id users"]."</td>";
        echo "<td>".$rij["date"]."</td>";
        echo "</tr>";
    }

    echo "</table>";
}


?>

ik heb het even uit het hoofd gedaan maar volgens mij werkt het :P
Gewijzigd op 20/06/2012 15:36:58 door lex van der poel
 
Gerhard l

gerhard l

20/06/2012 15:39:09
Quote Anchor link
En Lex heb je ook even gekeken naar de reacties hierboven?? En wat doen die backticks in je query?
 
Lex van der poel

lex van der poel

20/06/2012 15:41:17
Quote Anchor link
dat is een gewoonte van mij ik weet dat het raar klinkt als je will mag je ze weg halen en ja maar ik heb teveel vrije tijd en help mensen :P ik weet dat die het fout doet maar hij vraagt om de oplossing niet om tips....
 
Jonathan Jonker

Jonathan Jonker

20/06/2012 15:42:17
Quote Anchor link
inderdaad, dankje lex
alleen zegt hij nu dat mysql_num_rows boolean is ...
 
Jeroen VD

Jeroen VD

20/06/2012 15:42:36
Quote Anchor link
lex, leer het jezelf meteen goed aan, op termijn ga je er blij mee zijn dat je het hebt afgeleerd ;-)

(zelfde met foutafhandeling)

Toevoeging op 20/06/2012 15:43:26:

Jonathan Jonker op 20/06/2012 15:42:17:
inderdaad, dankje lex
alleen zegt hij nu dat mysql_num_rows boolean is ...

apart. mysql_num_rows() is een functie, geen variabele. wat bedoel je precies?
Gewijzigd op 20/06/2012 15:42:56 door Jeroen VD
 
Jonathan Jonker

Jonathan Jonker

20/06/2012 15:43:56
Quote Anchor link
Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\bestellingen2.php on line 37
 
Jeroen VD

Jeroen VD

20/06/2012 15:45:08
Quote Anchor link
dat betekent dat de mysql_* functie ervoor een fout heeft gemaakt. met foutafhandeling had je je probleem al gevonden, maar goed.
 
Erwin H

Erwin H

20/06/2012 15:45:18
Quote Anchor link
Dus de query gaat fout. Wat gaat er dan fout? Geen idee, dat alleen kan jij achterhalen als je eens die vermaledijde foutafhandeling gaat inbouwen. Zolang je dat niet doet, kunnen wij het ook niet voor je oplossen.
 
Jeroen VD

Jeroen VD

20/06/2012 15:45:37
Quote Anchor link
draai de query is op de sql-prompt (zoals je in phpmyadmin kunt)
 
Lex van der poel

lex van der poel

20/06/2012 15:47:36
Quote Anchor link
en zo:
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
<?php
$connect
= mysql_connect("localhost","root","") or die ("Kan niet verbinden: ". mysql_error());
mysql_select_db("phplogin");
$resultaat = mysql_query("SELECT a.`aantal`, b.`naam`, a.`id users`, a.`date` FROM bestellingen a, artikelen b WHERE b.id=a.id ORDER BY a.id");
if ($resultaat) {
    echo "<table border=1>";
    echo "<tr><td><b>Aantal</b></td><td><b>Product</b></td><td><b>ID gebruiker</b></td><td><b>datum</b></td></tr>";
    while ($rij = mysql_fetch_array($resultaat)) {
        echo "<tr>";
        echo "<td>".$rij["aantal"]."</td>";
        echo "<td>".$rij["naam"]."</td>";
        echo "<td>".$rij["id users"]."</td>";
        echo "<td>".$rij["date"]."</td>";
        echo "</tr>";
    }

    echo "</table>";
}


?>
Gewijzigd op 20/06/2012 15:52:46 door lex van der poel
 
Wouter J

Wouter J

20/06/2012 15:51:53
Quote Anchor link
Lex, nogmaals: De TS heeft NIKS maar dan ook NIKS aan kant en klare scripts.

Laat de TS zelf nadenken en zelf zijn code schrijven. Nu heeft hij hier nog steeds niks van geleerd, gevolg: TS bouwt nog steeds geen foutafhandeling is. En dat heeft weer als gevolg dat de TS nu met elke error die hij krijgt, en dat worden er veel, hier een topic moet openen om te vragen!

Gelieve dus geen kant en klare scripts geven, maar de TS zelf laten denken en dingen toepassen.

TS: Nogmaals: http://github.com/WouterJ/sql-boilerplate/tree/mysql
Gewijzigd op 20/06/2012 15:52:32 door Wouter J
 
Erwin H

Erwin H

20/06/2012 15:57:39
Quote Anchor link
Jonathan Jonker op 20/06/2012 15:15:10:
$rij["id users"]

Heb je nu werkelijk een kolom in je database met een spatie erin? Dat meen je niet hoop ik....
 

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.