Avatar billede blach Nybegynder
24. august 2005 - 18:05 Der er 20 kommentarer og
1 løsning

Hente del af tekst og ligge det over i en celle

Jeg vil gerne have det første bogstav i feltet "category" og have det lagt over i feltet "cat"..
Hvordan kan dette lade sig gøre?

Start på SELECT:
$query = mysql_query("SELECT category FROM link") or die(mysql_error());
Avatar billede jaw Nybegynder
24. august 2005 - 18:11 #1
$query = mysql_query("SELECT category FROM link") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  $bogstav = $row['category']{0};
}

Så vil $bogstav indeholde det første bogstav i det ord der er i category-feltet. Men hvad er det så du vil med det?
Avatar billede jaw Nybegynder
24. august 2005 - 18:16 #2
Hvis jeg forstår dig rigtig, så skal du jo også have fat i et id felt eller lign., der er unikt. Kan selvf. også bruge category-feltet hvis der ikke er 2 rækker med samme category?

$query = mysql_query("SELECT category FROM link") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  $bogstav = $row['category']{0};
  mysql_query("UPDATE link SET `cat` = '$bogstav' WHERE category = '".$row['category']."'") or die(mysql_error());
}
Avatar billede Slettet bruger
24. august 2005 - 18:24 #3
$query = mysql_query("SELECT category FROM link") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  $bogstav = $row['category'][0];
  mysql_query("UPDATE link SET `cat` = '$bogstav' WHERE category = '".$row['category']."'") or die(mysql_error());
}

Det er [0], og ikke {0} ;o)
Avatar billede jaw Nybegynder
24. august 2005 - 18:27 #4
Nej wicez, det er det faktisk ikke :) -> http://dk2.php.net/substr
Avatar billede Slettet bruger
24. august 2005 - 18:32 #5
Pokkers.. Jeg skulle have testet din før jeg begyndte at brokke mig :S

Men min virker også :o)
Avatar billede jaw Nybegynder
24. august 2005 - 18:34 #6
Det er rigtigt, din vil også virke :)

Men tror det skyldes, at hvis man bruger [] så "tror" PHP at vi snakker array's i stedet for. Eller måske nærmere, at man i andre sprog vil snakke arrays med []. Men det er så bare gæt :)
Avatar billede Slettet bruger
24. august 2005 - 18:40 #7
En streng ér et array af bogstaver, så der er ikke noget "hax" i det ;o)
Avatar billede blach Nybegynder
24. august 2005 - 18:43 #8
Udtrykte mig måske ikke 100% klart:

Den skal tage ALLE felter i mySQL databasen og putte det første bogstav fra cellen "category" over i cellen "cat".
Avatar billede jaw Nybegynder
24. august 2005 - 18:45 #9
Du mener alle rækker? Og det gør den også, har du prøvet det?

Ellers mener jeg stadig ikke hvad du mener...
Avatar billede blach Nybegynder
24. august 2005 - 18:46 #10
$query = mysql_query("SELECT LEFT(category,1) AS firstcategori  FROM link") or die(mysql_error());

Kan man starte sådan?
Så skal den jo INSERT igen.. Men skal man lave et array og gemme i?
Avatar billede blach Nybegynder
24. august 2005 - 18:46 #11
wicez --> tester lige din sidste pastede kode ;)
Avatar billede Slettet bruger
24. august 2005 - 18:48 #12
Min gør præcis det samme som jaws
Avatar billede jaw Nybegynder
24. august 2005 - 18:48 #13
Det er muligt at du kan, men det gør det ikke frygtelig meget nemmere:

$query = mysql_query("SELECT category, LEFT(category,1) AS firstcategori  FROM link") or die(mysql_error());
while($row = mysql_fetch_array($q)) {
  mysql_query("UPDATE link SET `cat` = '".$row['firstcategory']."' WHERE category = '".$row['category']."'") or die(mysql_error());
}
Avatar billede Slettet bruger
24. august 2005 - 18:49 #14
$query = mysql_query("SELECT category FROM link") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
  $bogstav = $row['category'][0];
  mysql_query("UPDATE link SET `cat` = '". $bogstav ."' WHERE category = '".$row['category']."'") or die(mysql_error());
}

Den her bør virke fint.
Avatar billede Slettet bruger
24. august 2005 - 18:49 #15
$query = mysql_query("SELECT category, LEFT(category,1) AS firstcategori  FROM link") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
  mysql_query("UPDATE link SET `cat` = '".$row['firstcategory']."' WHERE category = '".$row['category']."'") or die(mysql_error());
}
Avatar billede blach Nybegynder
24. august 2005 - 18:54 #16
Det funker bare ;)

Hvis jeg skal hente fra højre af, minus det første bogstav, skal jeg så bare skrive:

$query = mysql_query("SELECT RIGHT(category,LENGTH(category)-1) AS firstcategori  FROM link") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
  mysql_query("UPDATE link SET `cat` = '".$row['firstcategory']."' WHERE category = '".$row['category']."'") or die(mysql_error());
}
Avatar billede jaw Nybegynder
24. august 2005 - 19:00 #17
Det lyder meget rimeligt, men nok nemmere bare at teste det med f.eks. en echo:

$query = mysql_query("SELECT RIGHT(category,LENGTH(category)-1) AS firstcategori  FROM link") or die(mysql_error());
while($row = mysql_fetch_array($query)) {
  echo $row['firstcategory']."<br />";
}

Og det tillader jeg mig så at kaste som et svar...
Avatar billede blach Nybegynder
24. august 2005 - 19:01 #18
Eller hvordan kan jeg trække det ud på din måde?
Det er feltet sub_cat som skal have tilføjet de sidste bogstaver fra category..
Avatar billede blach Nybegynder
24. august 2005 - 19:09 #19
$query = mysql_query("SELECT category, RIGHT(category,LENGTH(category)-1) AS firstcategori FROM link") or die(mysql_error());
        while($row = mysql_fetch_array($query)) {
          echo $row['firstcategori']."<br>";
          mysql_query("UPDATE link SET `sub_cat` = '".$row['firstcategori']."' WHERE category = '".$row['category']."'") or die(mysql_error());
        }


her var koden :)

Tak for hjælpen I 2...
Avatar billede Slettet bruger
24. august 2005 - 19:34 #20
Jeg tror jaw skal have alle point.. Jeg stjal bare hans kode, og rettede en enkelt fejl ;o)
Avatar billede blach Nybegynder
24. august 2005 - 21:08 #21
Okay...

Wicez og Jaw, vil I kigge på denne også?
http://www.eksperten.dk/spm/642766

Det er noget af det samme... :)
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