Kan ikke få indtastet data i mysql

Tags:    php

Hej

Jeg er helt ny indenfor php og mysql og følger derfor en af de nemme artikler om hvordan man griber det an. Jeg går imidlertid fuldstændig i stå, idet jeg ikke kan tilføje data til min tabel.
Jeg har via administrationssiden oprettet en tabel (mp3numre) og indtastet to poster. Jeg kan kalde posterne frem med denne kode:
Fold kodeboks ind/udKode 

Jeg har med udgangspunkt i den succesfulde adgang til mysql forsøgt nedenstående kode til at indsætte data i mysql men uden succes.
Fold kodeboks ind/udKode 


Jeg har brugt temmelig lang tid på dette indtil videre og håber meget at der er nogen der vil smide et stykke script der kan hjælpe...




Indlæg senest redigeret d. 06.11.2007 18:12 af Bruger #12744
10 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
En god ting til troubleshoot er at køre or die(mysql_error()) efter dine queries.

Eksempel:
mysql_query("INSERT INTO 'mp3numre' ('kunstner', 'titel') VALUES ('$kunstner','$titel')") or die(mysql_error));

Mvh. Christian



Okay, så er jeg med!

Faktisk kan du få phpMyAdmin til at gøre arbejdet for dig, når du skal lave MySQL operationer fra PHP. Hvis du går til Insert og derefter opretter en record, kan du få den til at skrive det som PHP-kode og bruge det i dit script.

Men i hvert fald skal du så (ud fra tabellen på billedet) skrive:

Fold kodeboks ind/udKode 


Hvor du selvfølgelig bytter Kunsternavn og Sangtitel ud med dine variabler



Tekst omsluttet af apostroffer og/eller citationstegn antages som strenge i mysql.

bruge en "accent grave" (`) omkring tabelnavne og kolonner i stedet.

mysql_query("INSERT INTO `mp3numre` (`kunstner`, `titel`) VALUES ('$kunstner','$titel')");


Og da vi ikke ved hvad der står på ln. 58 eller for den sags skyld dem før eller efter er det lidt svært at hjælpe. :)

Vis os hvad der står på ln 58. :)



Indlæg senest redigeret d. 06.11.2007 21:02 af Bruger #10216
Det er nok fordi du glemmer 'dato'-kolonnen, når du indsætter i databasen.

Her er et eksempel på hvordan det burde se ud (kender dog ikke tabellens præcise struktur, så du skal kun bruge 0000-00-00, hvis dato er sat som typen DATE i databasen)

Fold kodeboks ind/udKode 


Håber det giver mening ;)



Det er nemlig en rigtig god måde. Du skal bare være sikker på, at visning af fejlmeddelser er slået til. Hvis du har din side på et webhotel kan disse godt være slået fra.



Jeg tror ikke det er fordi datoen mangler, men for at være sikker har jeg fjernet kolonnen fra tabellen. Tabellens indstillinger kan ses på http://www.digetaamann.dk/images/mysql-mp3numre.jpg hvis de er interessante i denne sammenhæng.

Ellers har jeg prøvet Christians forslag og får nu følgende fejlmelding:
Parse error: syntax error, unexpected ')' in /customers/digetaamann.dk/digetaamann.dk/httpd.www/test2.php on line 58
hvor linie 58 er den linie Christian foreslog. Jeg forstår dog ikke ud fra dette, hvad det er jeg skal ændre?
For god ordens skyld kan man herunder se hvordan koden nu ser ud.
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 06.11.2007 20:48 af Bruger #12744
Der var en lille fejl i koden jeg skrev 2. gang, det skal være or die(mysql_error()), ikke or die(mysql_error)).

My bad - undskyld :)

PS. Linket til dit billede virker ikke :)



Indlæg senest redigeret d. 06.11.2007 20:38 af Bruger #7944
Så har jeg fået rettet den lille tastefejl i koden (og i mit link til billedet) og nu får jeg denne melding:
Fatal error: Can't use function return value in write context in /customers/digetaamann.dk/digetaamann.dk/httpd.www/test2.php on line 58
Fejlen er stadig i samme linie og jeg forstår det stadig ikke.



Det burde gerne virke, hvis du har følgende stående:

Fold kodeboks ind/udKode 


Er det ikke tilfældet så post koden igen, så kan vi sikkert udpege fejlen



Sådan - nu kom jeg igennem - stor glæde i min ende! Mange tak for hjælpen!




Indlæg senest redigeret d. 06.11.2007 21:13 af Bruger #12744
t