webForumDet fria alternativet

kolla om fältet finns.

PHP

7 svar · 231 visningar · startad av gucken

Medlem sedan sep. 2001287 inlägg
Frågan#1

Tjenare, håller på att kolla i en tabell om dagens datum finns, för den skall göra olika saker om det finns eller inte, men den säger att det alltid finns även när det inte görne. har jag tänkt fel i koden nedan?

$sql_koll = "SELECT íd FROM tabellen WHERE datum = $datumet";
	$resultatet = mysql_query($sql_koll) or die ("trasig SQL: $sql_koll");
	while($row = mysql_fetch_array($resultatet))
	{
		$sanning = $row["id"];		
	}
if (!$sanning)
{
       echo "datumet finns inte";
}
else
{
       echo "datumet finns";
}
Medlem sedan mars 20007 896 inlägg
#2

Hm, gör så här istället:

$sql_koll = ...;
$mysqlResult = mysql_query( $sql_koll )
     or die( "Trasig SQL: " . $sql_koll );

if( mysql_num_rows( $mysqlResult ) < 1 ) {
     echo "Datumet finns inte";
}
else {
     echo "Datumet finns";
}

Jag kan inte säga varför det inte fungerar, men mitt exempel borde vara säkrare, då man kontrollerar mot antalet hämtade rader istället. Jag noterade också att du hade fått till en liten ´ över i:et i din SQL-fråga, kanske ett skrivfel mot webForum bara? :)

Medlem sedan sep. 2001287 inlägg
#3

samma sak med ditt exempel. jag har datum 0000-00-00 i databasen. men det är juh knappast dagens datum så det borde juh fungera. =(
suckar, vad kan vara fel?

Medlem sedan mars 20007 896 inlägg
#4

Det bör vara enkelfnuttar runt $datumet i din SQL-fråga:
SELECT id FROM tabellen WHERE datum = '$datumet'

Medlem sedan aug. 20021 752 inlägg
#5

DELETE

/Viktor

Medlem sedan sep. 2001287 inlägg
#6

Hur vet man när man skall använda enkel eller dubbel-fnuttar i sql sattser och annars?

Medlem sedan mars 20007 896 inlägg
#7

Dubbelfnutt och enkelfnutt brukar fungera likadant i de flesta DBMS's, och de används på BLOB:ar ( I MySQL även på timestamp-fält har jag för mig ). På tal-fält så används inte enkel- eller dubbelfnutt.

Medlem sedan dec. 200012 464 inlägg
#8

Det är bara ' som fungerar som strängavgränsare i alla DBMS. Använd aldrig ", det har inget med strängar att göra i standard SQL.

324 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
143 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
146 ms — ändringar (db)