MuscleMeat

Voor mensen die iets van PHP/MySQL kennen

Rakward

Born to lose. Live to win
Elite Member
15 jaar lid
Lid sinds
28 mei 2007
Berichten
1.481
Waardering
58
Lengte
1m68
Massa
86kg
Bedoeling:
-----------
Registratie-form creeéren waarvan de velden automatisch uit de user-table worden gehaald.
Auto velden(UserId, registratiedatum, etc) niet tonen, en velden die bevestiging nodig hebben een keer opnieuw tonen(paswoord, email). Dit werkt allebei. Nu wil ik aanpassen dat als hij een input element maakt, eerst kijkt of het datatype van het veld "date" is(en daarna mss nog voor numeriek enzo) zodat ipv een selectieboxen worden getoond.

Probleem:
--------
Ik heb hiervoor gebruikt ** $type= mysql_field_type($result, $n); ** en dat even in het form achter de labels van de input velden getoont om te checken of het werkt. Probleem is dat hij bij paswoord/email wel als string toont, maar username en DOB(geboortedatum) toont hij type "blob"?? Ze staan allebei juist ingesteld(string en date) dus wrm wordt blob getoond?

Bij DOB staan als waarden overal "1958-04-04" wat toch correct formaat is en bij username staan ook gewoon namen erin.
PHP:
';
    for($n=0;$n<=$i;$n++){
        $column = $col[$n];
        if (!(in_array($column, $auto))){ // Create input fields for columns not in the $auto-array
            $type= mysql_field_type($result, $n);           
            $body .= "$column: $type   ";
            if (in_array($column, $confirm)){ // Create confirmation-fields for columns in the $confirm-array
                $body .= "$column (again):   (confirm the above) ";
                }
            }
        }
       
    $body .= "";

?>

Iemand enig idee waarom hij "blob" toont ipv "date" of "string"?
 
ben je zeker dat het niet als blob of text staat ingesteld in de database, is niet omdat er "xxxx-xx-xx" staat dat het een datum is.
 
google is your friend :p... kijk even naar ander scripten.. kom je er wel uit.
 
Ga anders even naar wmcity of php-freakz daar kunnen ze je wel helpen;)
 
waarsch is het een blob column als die dat zegt :)

post eens een dump van je table structuur?

---------- Toegevoegd om 22:26 ---------- De post hierboven werd geplaatst om 22:24 ----------

tables sucken trouwens voor forms, tijd om aan de CSS te gaan ;)
 
  • Topic Starter Topic Starter
  • #6
ben je zeker dat het niet als blob of text staat ingesteld in de database, is niet omdat er "xxxx-xx-xx" staat dat het een datum is.
ja, gedubbel checked.
google is your friend ... kijk even naar ander scripten.. kom je er wel uit.
Al gezocht, ng niks gevonden van gelijkaardige problemen.
Ga anders even naar wmcity of php-freakz daar kunnen ze je wel helpen
Al gevraagd op phpfreakz, daar weten ze het ook niet.
[Link niet meer beschikbaar]
Ook op devnetwork grvaagrd, nog niet eens een antwoord gekregen ...
wmcity ken ik neit, sffs eens checken.
waarsch is het een blob column als die dat zegt

post eens een dump van je table structuur?
Heb geen back-up van database gemaakt, kan ik morgen doen.(en nee, hij staat duidelijk insgesteld bji phpadmin op date).
tables sucken trouwens voor forms, tijd om aan de CSS te gaan
Nee, tables sucken voor page lay-out. Volgens de w3c specificaties mag je gerust een tabel gebruiken voor een gegevens in een tabelstructuur, wat meestal bij forms gedaan wordt. :)
 
uit de php manual http://nl3.php.net/mysql_field_type :

'The returned field type will be one of "int", "real", "string", "blob", and others as detailed in the » MySQL documentation.'

edit ho, voor mij ook vroeg :D zal ff verder kijken of ik het hier kan reproduceren

En je mag inderdaad tabellen gebruiken voor data die in tabelstructuur weergegeven moet worden, een form valt daar niet onder! (dat het vaak gedaan wordt omdat het makkelijk is is wat heel anders). Je kunt beter met labels en fieldsets werken (google op CSS forms).

---------- Toegevoegd om 12:35 ---------- De post hierboven werd geplaatst om 12:26 ----------

Heb even een snelle check gedaan hier en bij mij geeft ie gewoon 'date' terug voor een date column. Ligt het niet aan je PHP/MySQL versie? Je kan ook iets als SHOW FIELDS gebruiken.
 
Laatst bewerkt:
  • Topic Starter Topic Starter
  • #8
uit de php manual http://nl3.php.net/mysql_field_type :

'The returned field type will be one of "int", "real", "string", "blob", and others as detailed in the » MySQL documentation.'

edit ho, voor mij ook vroeg :D zal ff verder kijken of ik het hier kan reproduceren

En je mag inderdaad tabellen gebruiken voor data die in tabelstructuur weergegeven moet worden, een form valt daar niet onder! (dat het vaak gedaan wordt omdat het makkelijk is is wat heel anders). Je kunt beter met labels en fieldsets werken (google op CSS forms).

---------- Toegevoegd om 12:35 ---------- De post hierboven werd geplaatst om 12:26 ----------

Heb even een snelle check gedaan hier en bij mij geeft ie gewoon 'date' terug voor een date column. Ligt het niet aan je PHP/MySQL versie? Je kan ook iets als SHOW FIELDS gebruiken.
Ja, mss, kvind gewoon een form makkelijk te plaatsen via table, dit is ook maar voorlopig dat ik iets heb dat werkt. CSS gebruik ik voor al de rest :)

enja, ik gebruik deze virtuele server:
http://www.apachefriends.org/en/xampp-windows.html

heeft toch laatste nieuwe versies van php en mysql enzo ...
 
Laatst bewerkt:
Dat het makkelijker is betekent niet dat het goed is ;)

Er zit blijkbaar iets niet helemaal lekker in de manier waarop je MySQL met PHP praat, ik zou gewoon proberen een SHOW FIELDS query te gebruiken en daaruit de column type halen.
 
  • Topic Starter Topic Starter
  • #10
Dat het makkelijker is betekent niet dat het goed is ;)

Er zit blijkbaar iets niet helemaal lekker in de manier waarop je MySQL met PHP praat, ik zou gewoon proberen een SHOW FIELDS query te gebruiken en daaruit de column type halen.
Ik heb het al opgelost, ik deed the mysql_field_type function op een "show columns" functie, ik had op de "SELECT *" moeten doen.
$type= mysql_field_type($result, $n);

Dan moet result dus komen van:
$result = mysql_query("SELECT * from users");

ipv
$result = mysql_query("SHOW COLUMNS FROM users");

Blij dat ik het uiteindelijk zelf gevonden heb. :)
 
Laatst bewerkt:
Terug
Naar boven