webForumDet fria alternativet

Skriva ut text när databasen är tom

PHP

30 svar · 1 420 visningar · startad av Emil W · sida 2 av 2

Frågan, av Emil W

Kommer ej på hur man ska göra när man vill att det ska skrivas ut en text när man inte har något i databasen i tabellen typ det finns inga inlägg /Emil W

Läs frågan i sin helhet →
Medlem sedan juni 20006 031 inlägg
#21

Nu missförstår du mig.
I din kod från igår 14:52 så hade du koden:

if(!empty($row['omos']))

Eftersom din variabel hette $myrow så blev resultatet på if-satsen att $row['omos'] alltid returnerade true (att den var tom) då den inte ens existerade. Och därför skrevs aldrig något ut.
Ändrar du if-satsen till att kolla $myrow['omos'] istället så kommer du få ett annat resultat.

Medlem sedan feb. 2003173 inlägg
#22

Får det ändå inte att fungera.

	<?php 
	if(!empty($myrow['omoss'])) 
	{ 
	     echo '<tr><td >';   
	     echo '<b>Om oss:</b>'; 
	     echo '</td><td>'; 
	     echo '$myrow["omoss"]'; 
	     echo '</td></tr>'; 
	} 
	?>

Och det blir detta resultatet:

Om oss: $myrow["omoss"]

Fältet heter omoss
Vissa har text i - andra inte.
När det är tomt funkar allt ok men om fältet har något tecken i sig blir resultatet detta.
Min querysats ser ut så här

	$result = mysql_query("SELECT * FROM Artikel, Admin WHERE Artikel.adminid = Admin.adminid AND medlemsid = $medlemsid");

        $myrow = mysql_fetch_array($result);

Vad gör jag fel eller skall jag ägna mig åt :birp istället.....

Medlem sedan aug. 20039 340 inlägg
#23

Det är skillnad på enkel-och dubbelfnuttar. Med dubbelfnuttar kan du skriva in variabler mitt i strängar, samt lägga till ett flertal tecken mha escape-koder. (T ex \n för radbrytning eller \t för tabbtecken) Med enkelfnuttar kan du däremot skriva in vilka tecken du vill mitt i strängen och de skrivs ut utan modifikation. (Utom ' som måste skrivas som \' samt \ som måste skrivas \\ om du har flera backslash på raken)
Du kan t ex skriva ut just den raden utan fnuttar runt:

echo $myrow["omoss"];

Skulle du vilja sätta ett variabeluttryck mitt i en sträng kan du dels sammanfoga olika strängar:

echo "<td>".$myrow["omoss"].'</td>';

Punkterna sammanbinder strängarna. Notera hur jag blandar ' och " bara för att visa att det går utmärkt, så länge du använder en typ i taget.
Du kan också göra så här, och med den metoden måste du använda dubbelfnuttar ytterst:

echo "<td>${myrow['omoss']}</td>";
Medlem sedan feb. 2003173 inlägg
#24

Tack för informationen, men grundproblemet återstår.
När fältet är tomt, vill jag att vara sig ledtext skrivs ut eller radbyte sker.
Med ändingen om texten i fältet ut, när fältet var ifylld, men när den är tom
kommer ändå ledtexten ut.
Är koden på rad ett rätt i mitt inlägg från 19.50 idag ( nr 22)

Medlem sedan aug. 20039 340 inlägg
#25

Om du ändrar utskriften så att du ser vad som skrivs, vad skrivs ut? Pröva även att lägga ett par bokstäver runt den utskrivna variablen för att kolla om det kanske finns ett blanksteg lagrat i databasen.

echo "X${myrow['omoss']}X";

Om så är fallet, kan du ändra if-satsen till följande:

if(!empty(trim($myrow['omoss'])))
Medlem sedan mars 2009512 inlägg
#26

Pedda vilket exempel ska jag titta på exempel 1 ?

Medlem sedan juni 20006 031 inlägg
#27

Kolla om mysql_num_rows returnerar noll.

if(mysql_num_rows($result) == 0)
{
     echo 'Inget resultat att visa';
}
else
{
     // loopa ut resultaten som vanligt
     while...
     {
          // skriv ut resultatet...
     }
}
Medlem sedan mars 2009512 inlägg
#28

Tack pedda

Medlem sedan feb. 2003173 inlägg
#29

:e
Tackar Pedda och nitro2k01.

Tillslut fick jag det att funka ok, men jag var tvyngen att ha
" runt echo "$myrow[omoss]";
Så här:

	<?php 
	$omoss = $myrow['omoss'];
	if(!empty($myrow['omoss'])) 
	{ 
	    echo '<tr><td >';
        echo '<b>Om oss:</b>'; 
	    echo '</td><td>'; 
	    echo "$myrow[omoss]"; 
	    echo '</td></tr>'; 
	} 
	?>

Men med enkel ' funkade det inte.

Kanon - tack båda!

Medlem sedan dec. 2004736 inlägg
#30

Din kod innehåller lite onödiga saker och kan kortas ner :)

    <?php 
    if(!empty($myrow['omoss'])) 
    { 
        echo '<tr><td>';
        echo '<b>Om oss:</b>'; 
        echo '</td><td>'; 
        echo $myrow["omoss"]; 
        echo '</td></tr>'; 
    } 
    ?>

Du använder ju exempelvis aldrig variablen $omoss, så den behöver du inte skapa!

Medlem sedan feb. 2003173 inlägg
#31

Tackar, mindre variablar och mindre kod är alltid positivt.

Men jag har en fråga.
Du skriver

        echo $myrow["omoss"];

Och jag har lagt in

        echo "$myrow[omoss]";

Vad är skillnaden - funktionsmässigt?
Som Du förstår är jag nybörjare i kodning.

268 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)