webForumDet fria alternativet

Mysql problem med att skapa tabell

PHP

6 svar · 394 visningar · startad av vic

Medlem sedan apr. 2006244 inlägg
Frågan#1

Varför lyckas jag inte med detta?


////////////////////////////  NYTT INLÄGG
if(isset($_POST['new_post']))
	{
	if(strlen($text) < 5 || strlen($rub) < 5) 
			{
			$vadsomhent = '<div class="obs">
<p style="margin:10px 0"><b>Något eller några av följande fel inträffade</b></p>
<ul>
<li>'  .$felet. '</li>
</ul>
</div>';
			$error = "JA";
			}
	if($error !== "JA")
			{
			$tabellnamn = "xblogg_$mappen";
			mysql_query("INSERT INTO ".$tabellnamn." (rubrik, ingress, text, tid) VALUES ('$rub', '$ingress', '$text', '$time')");
			$vadsomhent = "<p class=\"blue\">Ditt blogginlägg är postat</p><p><a href=\"../extra/blogg.php?art=" .$mappen. "&amp;from=znap\" onclick=\"NewWindow(this.href,'','650','650','no','center');return false\" onfocus=\"this.blur()\">Klicka här för att se din bloggen på znap </a></p><p><a href=\"../lalal/blogg.php?art=" .$mappen. "\">Klicka här för att se bloggen från des direktlänk (blogg.php?art=" .$mappen. ")</a></p>";
			$text = "";
			$rub = "";
			$ingress = "";
			}
	}
	
	
///////////////////////////////// AKTIVERING

if(isset($_POST['activate_blogg']))
{  
				mysql_query("UPDATE members SET blogg = 'JA' WHERE link = '$mappen'");
				
				$tabellnamn = "xblogg_$mappen";
				
				$sql = "CREATE TABLE ".$tabellnamn." 
(
id int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(id),
rubrik varchar(50),
ingress text,
texten longtext,
tid varchar(30),
)";
mysql_query($sql,$con);
				
				
				echo "<script type=\"text/javascript\"><!--

if (navigator.appName == 'Netscape')
var language = navigator.language;
else
var language = navigator.browserLanguage;
document.location.href = 'index.php?act=blogg';

//--></script>";

}

?>

Detta är bara ett utdrag ur koden, problemet är att jag lyckas inte skapa tabllen, $mappen är en unik användare förövrigt som anges långt tidigare tillsammans med uppkopplingen mot databasen. Kan nämna att mina kunskaper är rätt så färska

// Vic

Medlem sedan nov. 20041 740 inlägg
#2

Sätt ut

echo mysql_error();

så ser du vad mysql-databasen tycker går snett. Felmeddelanden brukar vara bra när man ska lösa fel.

Medlem sedan juni 20006 031 inlägg
#3

Du har ett likamed tecken för mycket
if($error !== "JA")
ska vara
if($error != "JA")

Medlem sedan apr. 2006244 inlägg
#4

Men det är ju en fråga och inte ett påstående. Det funkar inte med endast ett likamed-tecken? eller har jag förstått det där helt fel, det var i varje fall inte där problemet låg.

Kan säga att det berode på ett kommatecken för mycket i SQL-syntaxen

Medlem sedan juni 20006 031 inlägg
#5

Något felmeddelande?

Medlem sedan apr. 2006244 inlägg
#6

Pedda skrev:

Något felmeddelande?

Felmeddelandet sa att det var fel på SQL-syntax, jag hade ett komma för mycket

$sql = "CREATE TABLE ".$tabellnamn."
(
id int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
rubrik varchar(50),
ingress text,
texten longtext,
tid varchar(30),
)";

Tar tillfället i akt och frågar en sak till.

Användare kan ta emot meddelande som lagras i en databas då har jag satt ihop följande function för att räkna ut hur många meddelanden som finns och hur många som är nya. Poängen med koden är också att när man klickar på länken skall den ändra färg

<?

	function brevlada($link, $slutlink)
		{
		$total = "0";
		$nya = "0";
		
$foundmess = mysql_query("SELECT * FROM artistmess WHERE artist ='$artistnamn'");
		while($row = mysql_fetch_array($foundmess))
		{

			 $total = $total + "1";
			 
			 if($row['red'] == null)
			 	{
				$nya = $nya + "1";
				}
		}
		
		 echo $link. "Meddelanden:" .$total ;
	
		 if($nya > 0)
			{
			echo " <b>(" .$nya. " nya)</b>" .$slutlink;
			}
		else
			{ 
			echo " (0 nya)" .$slutlink;
			}
		
		}
		
		if($act !== mails) 
			{
			$link = "<a href=\"?act=mails\">";
			$slutlink = "</a>";
			brevlada($link, $slutlink);
			}
			
		if($act == mails) 
			{
			$link = "<span class=\"blue\">";
			$slutlink = "</span>";
			brevlada($link, $slutlink);
			}

?>

Den lyckas dock inte räkna rätt :e Det anses alltid vara noll meddelanden i databasen, vad har jag gjort fel?

Medlem sedan nov. 20041 740 inlägg
#7

Det ser ut som om du använder talen som strängar. Byt ut "0" och "1" mot 0 och 1 så ska du se att det fungerar bättre.

Sedan finns det en trevlig funktion som heter mysql_num_rows(); som du kanske vill kika närmare på.

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