Avatar billede shjdsi Nybegynder
09. september 2003 - 13:49 Der er 12 kommentarer og
1 løsning

syntax fejl eller query fejl i meget simpelt mysql php script

hej! jeg har fundet kode her på eks. men kan ikke få det til at virke, for følgende fejl
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\apache group\apache\htdocs\shj\msql.php on line 12

med denne kode
<?php
mysql_connect("localhost", "e_novative", "e_novative") or die (mysql_error());
mysql_select_db("RONJA") or die (mysql_error());

$sql = 'SELECT Customer.id, Customer.customer, Customer.address, Customer.zipCode,Customer.city,reports.issue,reports.solved,reports.billed FROM reports,Customer where reports.customerId=Customer.id LIMIT 0, 30';




    while($data = mysql_fetch_array($sql)){
        echo $data[Customer.customer] . "<br>";
        }


?>


Er der syntax fejl ! eller er det min query der ikke fungerere... Den er ellers testet.....
Avatar billede exp Juniormester
09. september 2003 - 13:58 #1
Synes lige du skal overveje at bede en coadmin slette dit brugernavn og password!
Avatar billede detox Nybegynder
09. september 2003 - 14:01 #2
Ser ud til du mangler selve forespørgslen:

$sql = 'SELECT Customer.id, Customer.customer, Customer.address, Customer.zipCode,Customer.city,reports.issue,reports.solved,reports.billed FROM reports,Customer where reports.customerId=Customer.id LIMIT 0, 30';

$res = mysql_query($sql) or die(mysql_error());


    while($data = mysql_fetch_array($res)){
        echo $data[Customer.customer] . "<br>";
        }
Avatar billede shjdsi Nybegynder
09. september 2003 - 14:02 #3
hmmm...... mener du mit brugernavn her på eksperten? hvorfor dog det, hvad har jeg gjort galt ?
hvis du derimod mener uid og pwd i mit lille script eksempel er det default værdier man får lige efter installation af ephp.. databasen er tom untaget et par test records.
Avatar billede exp Juniormester
09. september 2003 - 14:04 #4
det var dem i scriptet :-) Skrev det bare hurtigt så du kunne få det iværksat med det samme :-)
Avatar billede shjdsi Nybegynder
09. september 2003 - 14:22 #5
Det er underligt, jeg kan nogle gange se enkelte af data i tabellerne, men
med følgende kode burde jeg egenligt at få alle selecterede felter ud

$sql = 'SELECT Customer.id, Customer.customer, Customer.address, Customer.zipCode,Customer.city,reports.issue,reports.solved,reports.billed
FROM reports,Customer where reports.customerId=Customer.id LIMIT 0, 30';


$res = mysql_query($sql) or die(mysql_error());

    while($data = mysql_fetch_array($res)){
            echo $data[Customer.id] . "<br>";
            echo $data[Customer.customer] . "<br>";
            echo $data[Customer.address] . "<br>";
            echo $data[Customer.zipCode] . "<br>";
            echo $data[Customer.city] . "<br>";
            echo $data[Reports.issue] . "<br>";
            echo $data[Reports.solved] . "<br>";
            echo $data[Reports.billed] . "<br>";


      }




?>


Men jeg får bare en masse fejl.

Notice: Use of undefined constant Customer - assumed 'Customer' in c:\program files\apache group\apache\htdocs\shj\msql.php on line 15

Notice: Use of undefined constant customer - assumed 'customer' in c:\program files\apache group\apache\htdocs\shj\msql.php on line 15

Notice: Undefined index: Customercustomer in c:\program files\apache group\apache\htdocs\shj\msql.php on line 15



Som om den ikke kan finde ud af at det er felter jeg har joined fra to tabeller! Er der nogen der har et bud på det.. !!
Avatar billede detox Nybegynder
09. september 2003 - 14:27 #6
Du skal nok prøve med ' ' omkring:

echo $data['Customer.id'] . "<br>";

og så husk forskel på store og små bogstaver.

$data['reports.issue']
Avatar billede detox Nybegynder
09. september 2003 - 14:34 #7
Hvis du bare vil have vist alle data, kan du bruge denne konstruktion:

while ($row = mysql_fetch_row($res)) {
    foreach ($row as $entry) {
        echo $entry."<br />";
    }
}
Avatar billede shjdsi Nybegynder
09. september 2003 - 14:37 #8
hmm det var lige godt s....... :-) 
jeg får hele html siden fyldt med
Notice: Undefined index: Customer.address in c:\program files\apache group\apache\htdocs\shj\msql.php on line 15


Notice: Undefined index: Customer.zipCode in c:\program files\apache group\apache\htdocs\shj\msql.php on line 16


Notice: Undefined index: Customer.city in c:\program files\apache group\apache\htdocs\shj\msql.php on line 17


koden er nu sådan her ud.

while($data = mysql_fetch_array($res)){
            echo $data['Customer.id'] . "<br>";
            echo $data['Customer.customer'] . "<br>";
            echo $data['Customer.address'] . "<br>";
            echo $data['Customer.zipCode'] . "<br>";
            echo $data['Customer.city'] . "<br>";
            echo $data['reports.issue'] . "<br>";
            echo $data['reports.solved'] . "<br>";
            echo $data['reports.billed'] . "<br>";


      }
Skal der mon nogle '' omkring min sql sætning
Avatar billede detox Nybegynder
09. september 2003 - 14:41 #9
Næ, det skal der ikke. Prøv med:

$i=0;
while ($row = mysql_fetch_assoc($res)) {
    $i++;
    echo "<br />Række nr.: ".$i."<br />";   
    foreach ($row as $key=>$entry) {
        echo $key." = ".$entry."<br />";
    }
}

Så kan du se nøjagtigt, hvad din forespørgsel giver for resultat.
Avatar billede shjdsi Nybegynder
09. september 2003 - 14:51 #10
Ok :-) Det begynder at blive en smule pinligt for mig.
her er hele koden som den ser ud nu , sql sætningen er testet direkte på basen og den virker.



<?php
mysql_connect("localhost", "e_novative", "e_novative") or die (mysql_error());
mysql_select_db("RONJA") or die (mysql_error());

$sql = 'SELECT Customer.id, Customer.customer, Customer.address, Customer.zipCode,Customer.city,Reports.issue,Reports.solved,Reports.billed FROM Reports,Customer where Reports.customerId=Customer.id LIMIT 0, 30';

$res = mysql_query($sql) or die(mysql_error());
while ($row = mysql_fetch_row($sql)) {
    foreach ($row as $entry) {
        echo $entry."<br />";
    }
}

/*
$i=0;
while ($row = mysql_fetch_assoc($sql)) {
    $i++;
    echo "<br />Række nr.: ".$i."<br />";
    foreach ($row as $key=>$entry) {
        echo $key." = ".$entry."<br />";
    }
}
*/
?>


mysql_fetch_assoc functionen returnere samme fejl

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\program files\apache group\apache\htdocs\shj\msql.php on line 10


hmmm-..
php version er

Apache/1.3.27 (Win32) PHP/4.2.3
Avatar billede detox Nybegynder
09. september 2003 - 15:00 #11
while ($row = mysql_fetch_row($sql)) {

skal være:

while ($row = mysql_fetch_row($res)) {
Avatar billede shjdsi Nybegynder
09. september 2003 - 15:09 #12
hej Med jer, nu virker det faktisk, fik det også til at virke med
while($data = mysql_fetch_array($res)){
            echo $data['id'] . "<br>";
            echo $data['customer'] . "<br>";
            echo $data['address'] . "<br>";
            echo $data['zipCode'] . "<br>";
            echo $data['city'] . "<br>";
          echo $data['issue'] . "<br>";
            echo $data['solved'] . "<br>";
            echo $data['billed'] . "<br>";


      }


Vil i ligge svar så jeg kan lukke spg... og tak for hjælpen
Avatar billede detox Nybegynder
09. september 2003 - 15:13 #13
Velbekommen c",)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester