php bzw mysql prob

Seite 1 von 2 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_bzw_mysql_prob_45114/page_1 - zur Vollversion wechseln!


Luki schrieb am 19.08.2002 um 15:31

Also folgendes skript will net in die mysql datenbank schreiben :(

Code:
<center>
<?php

if($s == "")
{

$conn_id = mysql_connect("localhost","root","");
mysql_select_db("test",$conn_id);
$result = mysql_query("SELECT nr , zeit , ip , port , game , beschreibung FROM games order by zeit");

$i=0;
while($zeile = mysql_fetch_array($result)) 
{
$i++;
$data[1][$i] = $zeile['nr'];
$data[2][$i] = $zeile['zeit'];
$data[3][$i] = $zeile['ip'];
$data[4][$i] = $zeile['port'];
$data[5][$i] = $zeile['game'];
$data[6][$i] = $zeile['beschreibung'];
}

$j = 0 ;

while($i != $j)
{
$j++;
$stu = substr($data[2][$j],1,2);
$min = substr($data[2][$j],3,2);
$wot = substr($data[2][$j],0,1);
if($wot == "1") {$wot = "Freitag";}
if($wot == "2") {$wot = "Samstag";}
if($wot == "3") {$wot = "Sonntag";}
echo "<table width=35% border='1'>";
echo "  <tr>";
/* echo "    <td width=75% bgcolor='lightsteelblue'> <b>Game:</b>",$data[4][$i],"</td>";    */
echo "<td bgcolor='lightsteelblue'><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td><b> Game: </b>", $data[5][$j] , "</td><td align='right' bgcolor='lightsteelblue'><b>" , $wot , " um " , $stu , ":" , $min , "</b></td></tr></table></td> ";

echo "  </tr> ";
echo "  <tr> ";
echo "     <td colspan = '2'><b>IP: </b>", $data[3][$j] , " <b>Port: </b>", $data[4][$j] , "<p><b>Beschreibung: </B><br>" , $data[6][$j],"</td>";
echo "   </tr>";
echo "<p>";
echo "<br>";
echo "</table>";
}  /* eowhile , ausgabe */
echo "<p>";

echo "<p><a href ='gsrv.php?s=1'>Neuer Eintrag </A>";
}  /* eoif, kontrolliert ob geschrieben wird */
if($s=="1")
{
?>
<form action="gsrv.php?s=2" method="post">
<table width="75%" border="0">
  <tr><td><div align="right">Uhrzeit (HH:MM): </div>
    </td><td>
      <input type="text" name="Zeit">
    </td></tr><tr>
    <td><div align="right">Tag: </div>
    </td><td>
      <select name="WoT">
        <option value="1">Freitag</option>
        <option value="2">Samstag</option>
        <option value="3">Sonntag</option>
      </select>
    </td></tr>
  <tr><td><div align="right">Game: </div>
    </td><td><input type="text" name="Game">
    </td></tr><tr>
    <td><div align="right">IP: </div>
    </td><td>
      <input type="text" name="Ip">
    </td></tr>
  <tr><td>
      <div align="right">Port: </div>
    </td><td>
      <input type="text" name="Port">
    </td></tr>
  <tr><td>
      <div align="right">Beschreibung: </div>
    </td><td>
    <textarea name="Beschreibung" rows="4" cols="70" wrap="virtual" tabindex="1"></textarea> </td>
  </tr>
</table>
<input type="submit" value="Go">
<?php
}
if($s=="2")
{
$stun = substr($Zeit,0,2);
$min = substr($Zeit,3,2);
$zeit = "$WoT$stun$min";
$conn_id = mysql_connect("localhost","root","");
mysql_select_db("test",$conn_id);
$result = mysql_query("Insert into games (zeit , ip , port , game , beschreibung)
 			values(".$zeit.", ".$Ip." , ".$Port." , ".$Game." , ".$Beschreibung.")");
 			
 			echo "Daten wurden geschrieben<br>";
 			echo "<a href='gsrv.php'>Startseite</A>";
}



?>

ausgeben usw tut er ja eh schön


wobbo schrieb am 19.08.2002 um 15:58

keine ahnung wie es bei dir ist, aber auf meinem server würde er einen Insert nur so nehmen ->

Code:
$result = mysql_query("INSERT INTO `games` (`zeit`, `ip`, `port`, `game`, `beschreibung`)
                       VALUES('$zeit', '$Ip', '$Port', '$Game', '$Beschreibung')");
aber ich hab bei mir auch schon längere zeit kein update vorgenommen am server, weil derzeit alles so rennt, wie ich es brauche ;)


Philipp schrieb am 19.08.2002 um 16:22

Zum debuggen ist es auch empfehlenswert folgendes nach einer $result = mysql_query("... Zeile hinzuzufügen:

Code: PHP
	if (!$result)
	{
		echo mysql_errno(). ": ".mysql_error(). "<br />";
		return;
	}

Dadurch findet man so manchen kleinen Fehler :)


Jehul schrieb am 19.08.2002 um 19:03

strings musst in hockomma machen, damit er weis, wo er anfängt und endet.
also:
"insert... values (...,'$Beschreibung',...)"


schrieb am 19.08.2002 um 19:13

vor allem ist diese ".$var." - notation a bisserl braindead.


funka schrieb am 19.08.2002 um 20:39

entweder '.$parseme.' oder gleich "...$igetparsedanyway..."
bei arrays kanns natuerlich wieder rum anders aussehen


Luki schrieb am 20.08.2002 um 02:03

funzt immer noch net, er schreibt noch nichts in die datenbank
ich habe jetzt die wobbo und funker methode ausprobiert und es geht noch net


funka schrieb am 20.08.2002 um 02:25

das war kein loesungs ansatz ansich
hau mal ein if (!$result) die(mysql_error()); drunter


Luki schrieb am 20.08.2002 um 09:52

ok, bei der 3.seite (s=2)
gibt er mir 1064: Fehler in der Syntax bei ''nr' , 'zeit' , 'ip' , 'port' , 'game' , 'beschreibung') va' in Zeile 1.

aus, nur ich finde einfach keinen fehler.


watchout schrieb am 20.08.2002 um 10:00

Zitat von Luki
ok, bei der 3.seite (s=2)
gibt er mir 1064: Fehler in der Syntax bei ''nr' , 'zeit' , 'ip' , 'port' , 'game' , 'beschreibung') va' in Zeile 1.

aus, nur ich finde einfach keinen fehler.
lol, schau mal deine zeile genau an ;)
<DOUBLE quote>nr<SINGLE QUOTE> , <SINGLE QUOTE>ip<SINGLE QUOTE> ,<SINGLE QUOTE>port<SINGLE QUOTE> ....
du solltest übrigens wo's nur geht single quotes verwenden, bringt einiges an leistung ;)

edit: mist, verschaut :bash: das sind ja zwei single :rolleyes:


Snoop schrieb am 20.08.2002 um 10:11

Zitat von funka
das war kein loesungs ansatz ansich
hau mal ein if (!$result) die(mysql_error()); drunter

warum so umständlich mit einer If klammern ???? mach doch einfach nach dem query mysql_db_query($mysql_db,$select,$verbindung) or die (mysql_error() );
das einzig blöde an der sache ist, dass wenn man mehrere Querys hat. man meistens raten muss wo der Fehler liegt...... :(


watchout schrieb am 20.08.2002 um 10:36

denke ich habs gefunden..:
$result = mysql_query("Insert into games (zeit , ip , port , game , beschreibung)
values(".$zeit.", ".$Ip." , ".$Port." , ".$Game." , ".$Beschreibung.")");
string-werte sollten schon gequoted sein... :rolleyes:
$result = mysql_query("Insert into games (zeit , ip , port , game , beschreibung)
values(' ".$zeit." ', ' ".$Ip." ' , ' ".$Port." ' , ' ".$Game." ' , ' ".$Beschreibung." ')");
Edit: hab blanks zwischen " und ' gemacht damit man's besser erkennt... ;)
Edit: @Luki&wobbo: machts bitte den code etwas forumfreundlicher -> enter's bei den 4m-zeilen ;)


Luki schrieb am 20.08.2002 um 11:04

thx watchout jetzt funzt es :)


Jehul schrieb am 20.08.2002 um 11:56

Zitat von watchout
string-werte sollten schon gequoted sein... :rolleyes:

hab i a paar beiträge weiter oben schon geschrieben... :bash:


alexsb schrieb am 20.08.2002 um 18:21

a bisserl ot aber ich muss da mal fragen:

Warum verwendets ihr (bitte nur die angesprochen fühlen dies wirklich tun) immer echo um html zu schreiben? Ich beend php mit ?> und danach gehts mit <? wider los. Hat das irgendeinen Sinn oder ist das nur Gewohnheit, bzw wie sollt manns denn machen?

edit: dass hat mich da drauf gebracht:

Zitat


echo "<table width=35% border='1'>";
echo " <tr>";
/* echo " <td width=75% bgcolor='lightsteelblue'> <b>Game:</b>",$data[4][$i],"</td>"; */
echo "<td bgcolor='lightsteelblue'><table border=0 cellpadding=0 cellspacing=0 width=100%><tr><td><b> Game: </b>", $data[5][$j] , "</td><td align='right' bgcolor='lightsteelblue'><b>" , $wot , " um " , $stu , ":" , $min , "</b></td></tr></table></td> ";

echo " </tr> ";
echo " <tr> ";
echo " <td colspan = '2'><b>IP: </b>", $data[3][$j] , " <b>Port: </b>", $data[4][$j] , "<p><b>Beschreibung: </B><br>" , $data[6][$j],"</td>";
echo " </tr>";
echo "<p>";
echo "<br>";
echo "</table>";
} /* eowhile , ausgabe */
echo "<p>";




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026