Endnu en fejl jeg ikke helt forstår?

Tags:    php mysql

<< < 12 > >>
Jeg har en kode som driller mig.

Fold kodeboks ind/udPHP kode 


Den giver en blank side - ikke engang en fejlkode eller noget.
Hvis jeg istedet for Mor skriver hid - så virker det. Men nu er det jo ikke det jeg vil og jeg kan ikke lige gennemskue hvorfor det virker med det ene og ikke det andet.
Det jeg vil er jo "bare" at hente alle rækker i tabellen hvor Mor=hid



15 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato
Heidi prøv at lade vær med at surpresse dine tags.

http://php.net/manual/en/language.operators.errorcontrol.php

Currently the "@" error-control operator prefix will even disable error reporting for critical errors that will terminate script execution. Among other things, this means that if you use "@" to suppress errors from a certain function and either it isn't available or has been mistyped, the script will die right there with no indication as to why.


Det er generelt bad practice.

Med hensyn til dit problem så prøv som sagt at sætte error reporting til e_all

Fold kodeboks ind/udKode 


I toppen af dit dokument.

- En anden ting, det kan måske hjælpe at erstatte "mysql_errno()" med "mysql_error()" - det kan give en mere detaljeret fejl meddelse.

Køre din server BTW. på IIS eller Apache?



Indlæg senest redigeret d. 05.07.2013 11:55 af Bruger #16742
prøv denne:
test database sql
Fold kodeboks ind/udKode 


Fold kodeboks ind/udKode 

hvis du kalder den uden parameter får du vist 1 post
eks http://localhost/test/udvikleren/40073/tabel.php

hvis du kalder den med parameteren hid=4 får du vist 3 poster
eks http://localhost/test/udvikleren/40073/tabel.php?hid=4

hvis dette ikke hjælper må du lave et db dump og en simpel test side du poster her i tråden evt bare et link til download


NB: Mor burde hedde morid og Far burde hedde farid for at kollonne navnet giver mening IMHO





Spændende om jeg kan granske mig frem til hvad det er som gør at det ene virker og det andet ikke gør

fejlbeskederne burde give dig et hint
under udvikling vis så mange advarsler og fejl som muligt, og ret disse
i production, skjul så mange advarsler og fejl som muligt, de kan være guf for kedelige elementer

hvis du retter alle dine felj og advarsler vil du fra når din udbyder opdatere php blive tvunget til at anvende mysqli eller PDO

ref http://php.net/ChangeLog-5.php#5.5.0
(frigivet 20/06-2013)

mysql:
This extension is now deprecated, and deprecation warnings will be generated when connections are established to databases via mysql_connect(), mysql_pconnect(), or through implicit connection: use MySQLi or PDO_MySQL instead
Dropped support for LOAD DATA LOCAL INFILE handlers when using libmysql. Known for stability problems
Added support for SHA256 authentication available with MySQL 5.6.6+


ref http://php.net/manual/en/mysqlinfo.api.choosing.php

Recommended API
It is recommended to use either the mysqli or PDO_MySQL extensions. It is not recommended to use the old mysql extension for new development, as it has been deprecated as of PHP 5.5.0 and will be removed in the future. A detailed feature comparison matrix is provided below. The overall performance of all three extensions is considered to be about the same. Although the performance of the extension contributes only a fraction of the total run time of a PHP web request. Often, the impact is as low as 0.1%.


undrede mig lidt over din kommntar start (#) men det er lovligt jf manualen
personligt bruger jeg kun c og c++ style (// og /* */)
http://php.net/manual/en/language.basic-syntax.comments.php

man kunne overveje at skrive en besked hvis der ikke er nogle føl
Fold kodeboks ind/udKode 




prøv at lav en vis kilde i din browser
står dele af din php i klar tekst ??
så er det pga du anvender short open tags og det er disablet pr default
http://php.net/manual/en/ini.core.php#ini.short-open-tag

Navn: <? ech


prøv at rette linje 14 og 16
fra
Fold kodeboks ind/udKode 


til
Fold kodeboks ind/udKode 





Umiddelbart falder jeg over disse:
<?php echo "$row[Navn]"?>

Mon ikke du ønsker dette?:
<?php echo $row["Navn"] ?>

bemærk quotes.

Tilføj følgende i starten af dit PHP script - så får du vist fejl fra PHP fortolkeren:

error_reporting(E_ALL | E_STRICT);
ini_set("display_errors", 1);



Det som jeg synes er underligt er, at samme kode virker hvis jeg skriver hid istedet for Mor.
Altså hvis jeg skriver:
Fold kodeboks ind/udPHP kode 


Så virker den, og henter fint Navn og id på hesten.
Her er jo så kun ét resultat da der kun er én hest i databasen med det hid.

Ændre jeg så koden så der står:
Fold kodeboks ind/udPHP kode 


Så får jeg pludselig bare en helt blank side. Ingen fejl eller noget.
Heller ikke ved at indsætte den lille kode Jimmy foreslår.
Den eneste forskel jeg kan tænke mig er, at når den skal hente fra databasen hvor Mor=hid så ved jeg at der i dette tilfælde er 3 resultater.
Kan det gøre forskel hvad type feltet er i databasen? om det er tal eller tekst? hid






Har prøvet at lave de ændringer der er foreslået, men det giver stadig bare en helt blank side.

Hvor kan jeg se hvad serveren kører på?
Jeg har mit webhotel hos surftown.





>Hvor kan jeg se hvad serveren kører på?
lav et tomt document
der indeholder
Fold kodeboks ind/udKode 


Server API Apache 2.4 Handler Apache Lounge



Skal der ikke være ; i <? echo "Noget"; ?> ???
og ikke <? echo "noget" ?>



Kan ikke umiddelbart se hvor det står:

Server API: LiteSpeed V6.1
System: Linux ws55.surf-town.net 2.6.32-458.6.2.lve1.2.23.el5h.i686 #1 SMP Fri May 24 13:48:25 EEST 2013 i686





<< < 12 > >>
t