bmw_m5Medlem sedan sep. 200612 inlägg hej
Har ett annons script som jag fått, och ja kan inte så mkt på php,.. så om ni kunde förklara lite mera än vanligt skulle ja vara tacksam,.. skriptet använder databas mysql.
okey nu till frågan,.. när man lägger in en annons o ska skriva pris med mellanslag ex. 15 000 kr,.. så syns de bara 15 kr i annonsen.. hur kan man fixa till så att mellanslaget reggas..??.. skrivar man ex 15000 kr så syns de 15000 kr.
En till fråga,.. hur kan man begränsa begränsa visning av produkt informationen som syns när man listar alla annonser,.. asså när man söker så kommer alla annonser fram o lite information om varje annons,.. men nu vill ja inte att om personen skrivit en hel bok i sin information beteckning ska visa allt, för då förstörs tabell strukturen o designen,.. om man kunde begransä infot till 20 tecken elr nåt.. typ en mycket fin bord till salu,.. ska visas typ.. en mycket fin,.. sen inge mer.. ?? hoppas ni förstod.
Tacksam för era svar.
Ok, då har vi tre alternativ på första frågan. :)
1a: Plocka ut väsentlig kod så ska vi se vad det är som behöver fixas.
1b: Fråga personen du fick koden av.
1c: Ge oss hela skriptet om du inte vet vilken kod som är väsentlig.
2: Det finns en del exempel i forumet om du testar att söka lite. Annars fungerar det på följande sätt:
<?php
$text = 'Detta är en text som är för lång och som ska kortas av efter 20 tecken.';
$nytext = (strlen($text) > 20)? substr($text, 0, 20).'…': $text;
echo $nytext;
?>
Ett alternativ är annars att skriva ut ett visst antal ord istället, t.ex. 8 ord:
$text = 'Detta är en text som är för lång och som ska kortas av efter 8 ord.';
$wrds = explode(' ', $text);
if(count($wrds) > 8){
$nytext = '';
for($i = 0; $i < 8; $i++) {
$nytext .= $wrds[$i].' ';
}
$nytext = $nytext.'…';
} else {
$nytext = $text;
}
echo $nytext;
tronezMedlem sedan juli 2001728 inlägg GislavedMedlem sedan nov. 20041 740 inlägg
när man lägger in en annons o ska skriva pris med mellanslag ex. 15 000 kr,.. så syns de bara 15 kr i annonsen.. hur kan man fixa till så att mellanslaget reggas..??.. skrivar man ex 15000 kr så syns de 15000 kr.
Det låter som om du lagrar priset som ett heltal (int) i databasen. Antingen får du formatera om datumet innan du skickar det till databasen, eller så får du ändra i databasen så att du jobbar mot exempelvis ett varchar-fält, då kommer även andra tecken än siffror sparas.
bmw_m5Medlem sedan sep. 200612 inlägg tack för hjälpen TheMagnus, problem 2 är löst nu..:D
ska försöka skriva in koden här,..kör ett formulär i add.php.. som e kopplad till addaction.php
i add.php standard formulär
<input name="pris" type="text" id="pris">
och i addaction.php
<?php
$pris = $_POST["pris"];
$link = mysql_connect("xxx.xxx.se", "xxx", "xxx") or die("Could not connect: " . mysql_error());
mysql_select_db("xxx", $link);
mysql_query("INSERT INTO ad (
pris)
VALUES (
'$pris');");
$latestId = mysql_insert_id($link);
mysql_close($link);
tror de va den väsentlig koden.. va ska man bröva ändra för att fixa problemet..??
ps.. kolla i databasen o den verkar köra int
@ndersMedlem sedan juni 200032 969 inlägg En idé är att använda str_replace() för att göra sig av med mellanslagen.
bmw_m5Medlem sedan sep. 200612 inlägg
@nders skrev:
En idé är att använda str_replace() för att göra sig av med mellanslagen.
vart ska man lägga in de i koden..??
<?php
$pris = str_replace(' ', '', $_POST['pris']);
$link = mysql_connect("xxx.xxx.se", "xxx", "xxx") or die("Could not connect: " . mysql_error());
mysql_select_db("xxx", $link);
mysql_query("INSERT INTO ad (pris) VALUES ('$pris');");
$latestId = mysql_insert_id($link);
?>
Läs mer om str_replace() här: http://www.php.net/str_replace
bmw_m5Medlem sedan sep. 200612 inlägg jag lagt in den nu
$pris = str_replace(' ', '', $_POST['pris']);
men den visar fortfarande samma som förrut,.. asså 15 o inte 15 000
kollar i databasen.. o där står de samma sak asså endast de som stod förre mellanslaget,..??
de står decimal(10,0) under typ på tabellen vid pris i databasen kan de bero på de..?.
GislavedMedlem sedan nov. 20041 740 inlägg Det där påverkar bara framtida poster i databasen, inte de befintliga.
bmw_m5Medlem sedan sep. 200612 inlägg mmm ja testar ju o lägga in test annonser o sen läser vad som blev skrivet i databasen,.. o de är samma sak.. vrf kan man inte skriva in i databasen med mellansag..??
@ndersMedlem sedan juni 200032 969 inlägg
vrf kan man inte skriva in i databasen med mellansag..??
Om vrf betyder varför så är det helt enkelt så att det inte finns några tal med mellanslag, precis som det inte finns några heltal som börjar på noll. Heltal skrivs ex. 15000, decimaltal 15000.1 (alltid punkt när man pratar SQL).
bmw_m5Medlem sedan sep. 200612 inlägg ok.. men hur ska man gå till väga för att få ett tal med mellanslag i databasen..?
typ 15 000 kr.. istället för 15000 kr..??
PeddaMedlem sedan juni 20006 032 inlägg Som Gislaved redan har skrivit. Ändra databasfältet från int till varchar.
Ett mycket hett tips är att köra på int i databasen och istället formatera beloppet med number_format() vid utskrift istället.
bmw_m5Medlem sedan sep. 200612 inlägg testa det som gislaved om varchar-fältet.. o e fungerar bra nu..:D... tack för eran hjälp..!!
hur ska jag nu avsluta denna tråd som avklarad..??