Avatar billede n-telligence Nybegynder
22. oktober 2004 - 15:41 Der er 15 kommentarer

customer update med MySQL system

<?php

                   
                   
                    // instantiate variables (edit as necessary)
                    $host = ($host) ? $host : "localhost";
                    $user = ($user) ? $user : "";
                    $pwd = ($pwd)  ? $pwd  : "";

          $db="";
          $link = mysql_connect ($host, $user, $pwd) or die ("Could not connect to Host.");
          if (! $link)
          die("kunne ikke oprette forbindelse til MySQL");
          mysql_select_db($db , $link)
          or die("kunne ikke åbne $db: ".mysql_error());
                    $result = mysql_query ("SELECT customername FROM customers WHERE navn='tmmc'");
                   
                   
          ?>
                   
                   


                  <table>
                    <tr>
                    <td valign="top" align="left"><font face="Verdana" size="1"/><?$result = nl2br($result); echo $result;?></font></td>
                   
                    </tr>
                    </table>
                      <?
          mysql_close($link);
                   
          ?>

når jeg kører denne burde jeg jo enten at få en fejl meddelelse eller en side frem med det jeg spurgte om... men det gør jeg ikke!
Avatar billede bojo Nybegynder
22. oktober 2004 - 15:49 #1
$result['customername']
Avatar billede coderdk Praktikant
22. oktober 2004 - 15:53 #2
Nej. mysql_query returnerer et query-handle, du skal noget i stil med:

$result = mysql_query ("SELECT customername FROM customers WHERE navn='tmmc'");
$row = mysql_fetch_assoc( $result );
echo $row['customername'];
Avatar billede bojo Nybegynder
22. oktober 2004 - 15:57 #3
ups - jep, jeg var et skridt for langt fremme :-(
Avatar billede n-telligence Nybegynder
22. oktober 2004 - 16:40 #4
<?php

                   
                   
                    // instantiate variables (edit as necessary)
                    $host = ($host) ? $host : "localhost";
                    $user = ($user) ? $user : "";
                    $pwd = ($pwd)  ? $pwd  : "";

          $db="";
          $link = mysql_connect ($host, $user, $pwd) or die ("Could not connect to Host.");
          if (! $link)
          die("kunne ikke oprette forbindelse til MySQL");
          mysql_select_db($db , $link)
          or die("kunne ikke åbne $db: ".mysql_error());
                    $result = mysql_query ("SELECT customername FROM customers WHERE navn='tmmc'");
                    $row = mysql_fetch_assoc( $result );
                   
          ?>
                   
                   


                  <table>
                    <tr>
                    <td valign="top" align="left"><font face="Verdana" size="1"/><? echo $row['customername'];?></font></td>
                   
                    </tr>
                    </table>
                      <?
          mysql_close($link);
                   
          ?>
                   

hvis det var det her du mente... så virkede det ihvetfald ikke
Avatar billede n-telligence Nybegynder
22. oktober 2004 - 16:41 #5
fejlmeddelse:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in ......../httpd.www/v1/style/portfolio/customers/tmmc/1.php on line 17
Avatar billede coderdk Praktikant
22. oktober 2004 - 19:00 #6
Betyder blot at forespørgslen: SELECT customername FROM customers WHERE navn='tmmc'
ikke returnerer noget
Avatar billede Slettet bruger
22. oktober 2004 - 20:08 #7
Nej, det betyder, at der skete en fejl i queryen. Hvis der ikke skete fejl, ville der højst komme en NOTICE om brug af et udefineret indeks eller noget i den stil.

$result = mysql_query ("SELECT customername FROM customers WHERE navn='tmmc'") or die(mysql_error());
Avatar billede coderdk Praktikant
22. oktober 2004 - 20:24 #8
Nej, sandbox, det er fejlen du får hvis din query ikke returnerer noget. Prøv ;)
Avatar billede Slettet bruger
22. oktober 2004 - 21:03 #9
Jeg har nu prøvet, og får ikke den fejl, når en query ikke returnerer noget resultat. Beviset er her:

http://sandbox.adsl.dk/~ole/Exp/db/test.php

vis_tabel er en funktion i min db.php, som simpelthen laver en HTML-tabel med alt indholdet af en MySQL-tabel.
Avatar billede Slettet bruger
22. oktober 2004 - 21:03 #10
Og det skulle ikke have været et svar.
Avatar billede coderdk Praktikant
22. oktober 2004 - 21:53 #11
Og hvad er din error_reporting? Jeg tør vædde på at den er det der svarer til:

  error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);

;-)
Avatar billede coderdk Praktikant
22. oktober 2004 - 21:55 #12
n-telligence, du kan undgå warningen ved:

$row = @mysql_fetch_assoc( $result );

Men du er så nødt til at checke om $row er false, hvis den er, var der ingen rækker der matchede din query ;-)
Avatar billede Slettet bruger
22. oktober 2004 - 22:16 #13
Det skulle jo afprøves, så nu har jeg sat til error_reporting(E_ALL); Stadig ingen brok fra PHPs side.
Avatar billede coderdk Praktikant
23. oktober 2004 - 00:19 #14
Underligt :) Den gør det på to servere jeg har prøvet...
Avatar billede Slettet bruger
23. oktober 2004 - 00:28 #15
Nu har jeg så lige lavet en syntaksfejl i SQLen, og SÅ kommer den "not a valid MySQL result"-advarsel.

n-telligence: Prøv at rette din query til den linie, jeg gav dig 20:08:48. Selv hvis din opsætning også kommer med den warning, hvis der bare ikke var nogen resultater, så kan det også skyldes at der var en fejl i din SQL.
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