Permalänk
Medlem

Snabba enkla Mysql frågor.

Hej

Kan någon snäll person förklara kort vad detta betyder
Jag håller på att lära mig php/mysql och är i grunden typ.

Mysql
Termen : varchar(32) (Inne i databasen)
Termen : mysql_query
Termen : mysql_fetch_assoc

Php

Jag har ett nyhetsscript
Jag använder dreamweaver och hur gör jag så att php/html kod i en echo "sträng?" blir färgat och inte bara rött. ex

echo " Posted by <b>$user</b> on <b>$date</b><br> <b>News:</b>$news<br> <a href='mailto:$email?subject='from $email''>$email</a><br><br> ";

Tack

Permalänk
Keeper of Traditions

Det måste konkateneras in,

Posted by <b>" . $user . "</b> on <b>" . $date . "</b><br/>

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem
Skrivet av Newklear:

Det måste konkateneras in,

Posted by <b>" . $user . "</b> on <b>" . $date . "</b><br/>

Ah, finns det någon möjlighet att få den andra koden att reagera som vanlig kod?

Exempel om jag skriver <font
vid mellanslag får jag upp kodlistan, men när koden är i en echo så funkar det inte.

//

Permalänk
Medlem
Skrivet av Newklear:

Det måste konkateneras in,

Posted by <b>" . $user . "</b> on <b>" . $date . "</b><br/>

Det du skrev är identiskt med "Posted by <b>$user</b> on <b>$date</b><br/>"

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Keeper of Traditions
Skrivet av downup:

Ah, finns det någon möjlighet att få den andra koden att reagera som vanlig kod?

Exempel om jag skriver <font
vid mellanslag får jag upp kodlistan, men när koden är i en echo så funkar det inte.

//

Inte helt säker på vad du menar, men om du konkatenerar in variablerna så som jag visade så bör i alla fall den koden fungera.

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Keeper of Traditions
Skrivet av Teknocide:

Det du skrev är identiskt med "Posted by <b> $user</b> on <b>$date</b><br/>"

Jag har då alltid gjort så när jag skrivit PHP och det har funkat fint...

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem
Skrivet av Newklear:

Jag har då alltid gjort så när jag skrivit PHP och det har funkat fint...

Ja men det gör även OPs sträng. Din är onödigt kluddig i detta fallet.
PHP gör skillnad mellan " och ': http://www.php.net/manual/en/language.types.string.php

Skrivet av downup:

Hej
...
Jag använder dreamweaver och hur gör jag så att php/html kod i en echo "sträng?" blir färgat och inte bara rött. ex

Jag tror inte dreamweaver tillåter colour coding i strängar.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Medlem
Skrivet av downup:

Ah, finns det någon möjlighet att få den andra koden att reagera som vanlig kod?

Exempel om jag skriver <font
vid mellanslag får jag upp kodlistan, men när koden är i en echo så funkar det inte.

//

Om jag har förstått dig rätt så vill du att Dreamweavers förslag på attribut och metoder ska komma upp när du skriver din kod.

Det jag skulle göra istället för att skriva allt i ett "echo"-uttryck är att bryta mig ut ur php-taggen och fortsätta med vanlig HTML tills jag behöver införa en PHP-variabel. T.ex:

Posted by <b><?php echo $user; ?></b> on <b><?php echo $date; ?></b><br>...osv

Permalänk
Medlem
Skrivet av Newklear:

Jag har då alltid gjort så när jag skrivit PHP och det har funkat fint...

Givetvis fungerar det med konkatenering? Oavsett hur du gjort så är det som Teknocide säger sant.

EDIT: Jaha, ni hann visst före

Permalänk
Keeper of Traditions
Skrivet av Teknocide:

Ja men det gör även OPs sträng. Din är onödigt kluddig i detta fallet.
PHP gör skillnad mellan " och ': http://www.php.net/manual/en/language.types.string.php

Så i detta fallet:

echo "Posted by <b>$user</b> on <b>$date</b><br>";

Behövs ingen konkatenering?

Har för mig att vi fick lära oss att man alltid skulle konkatenera in variabler när man ska ha dem i en echo-sträng, om man nu inte använder sig av php-block som visades ovanför.

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem
Skrivet av Newklear:

Så i detta fallet:

echo "Posted by <b>$user</b> on <b>$date</b><br>";

Behövs ingen konkatenering?

Precis

$word = 'Hello'; $another_word = 'World!'; $message = "$word $another_word"; echo "Today's message: $message";

Ger samma resultat som

$word = 'Hello'; $another_word = 'World!'; $message = $word.' '.$another_word; echo 'Today\'s message: '.$message;

http://www.php.net/manual/en/language.types.string.php#langua...

Citat:

Note: Unlike the double-quoted and heredoc syntaxes, variables and escape sequences for special characters will not be expanded when they occur in single quoted strings.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Inaktiv
Skrivet av downup:

Mysql
Termen : varchar(32) (Inne i databasen)
Termen : mysql_query
Termen : mysql_fetch_assoc

VARCHAR(32) är en värde typ (sträng) som innehåller 32 bokstäver.
$result = mysql_query($sql); utför frågan $sql mot databasen.
$row = mysql_fetch_assoc($result); hämtar den första raden ur resultaten (till en assoc array, nycklarna i arrayen är alltså namnen på kolumnerna i databasen).

Permalänk
Keeper of Traditions
Skrivet av Teknocide:

Precis

$word = 'Hello'; $another_word = 'World!'; $message = "$word $another_word"; echo "Today's message: $message";

Ger samma resultat som

$word = 'Hello'; $another_word = 'World!'; $message = $word.' '.$another_word; echo 'Today\'s message: '.$message;

http://www.php.net/manual/en/language.types.string.php#langua...

Jaha ja, där ser man... Ännu en grej vår lärare lärt ut som bara komplicerar saker... Jäklar vad mycket onödig konkatenering man gjort det senaste halvåret då. :S

Visa signatur

|| Intel 8700K || Asus RTX 4070 TI Super TUF || Samsung 750 EVO 500GB & Kingston A2000 1TB & Samsung 960 EVO 250GB || Corsair RM 850x || Antec P183 || Asus G-Sync RoG Swift PG279Q || Dell XPS 15 || Thinkpad X220

The Force is like Duct Tape, it has a light side, a dark side, and holds the universe together.

Permalänk
Medlem
Skrivet av anon150287:

VARCHAR(32) är en värde typ (sträng) som innehåller 32 bokstäver.
$result = mysql_query($sql); utför frågan $sql mot databasen.
$row = mysql_fetch_assoc($result); hämtar den första raden ur resultaten (till en assoc array, nycklarna i arrayen är alltså namnen på kolumnerna i databasen).

varchar(32) anger att columnen kan innehålla upp till 32 tecken och kommer då att variera i storlek på disk vartefter. En char(32) kommer alltid att ta upp samma antal bytes på disk.
Om du lagrar ett värde med fast storlek, exempelvis en hash, så är char(x) att föredra och om din tabelldefination inte innehåller några variabla storlekar så kommer du få hastighetsfördelar (iafl under myisam).

Och "mysql_fetch_assoc" hämtar nästa resultatsrad från buffert. Om du har flera rader för din query så stegar den fram och hämtar nästa rad. Den returnerar FALSE om inga fler resultat finns och det används ofta i en while-loop för att bearbeta alla rader.

Permalänk
Inaktiv
Skrivet av iXam:
Skrivet av anon150287:

VARCHAR(32) är en värde typ (sträng) som innehåller 32 bokstäver.
$result = mysql_query($sql); utför frågan $sql mot databasen.
$row = mysql_fetch_assoc($result); hämtar den första raden ur resultaten (till en assoc array, nycklarna i arrayen är alltså namnen på kolumnerna i databasen).

varchar(32) anger att columnen kan innehålla upp till 32 tecken och kommer då att variera i storlek på disk vartefter. En char(32) kommer alltid att ta upp samma antal bytes på disk.
Om du lagrar ett värde med fast storlek, exempelvis en hash, så är char(x) att föredra och om din tabelldefination inte innehåller några variabla storlekar så kommer du få hastighetsfördelar (iafl under myisam).

Och "mysql_fetch_assoc" hämtar nästa resultatsrad från buffert. Om du har flera rader för din query så stegar den fram och hämtar nästa rad. Den returnerar FALSE om inga fler resultat finns och det används ofta i en while-loop för att bearbeta alla rader.

Oj, ja där fanns lite slarvfel. Självklart hämtar mysql_fetch_assoc() nästa rad och inte bara första. Och varchar kan såklart innehålla upp till 32 tecken.
Det det är med char(x) visste jag dock inte, ska jag ta o komma ihåg.